command-code 0.22.8 → 0.22.9

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/index.mjs CHANGED
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
- import*as e from"path";import t,{join as n,dirname as r,parse as o,relative as s,isAbsolute as i,resolve as a,extname as l,basename as u}from"path";import{fileURLToPath as d,pathToFileURL as m,URL as g}from"url";import h,{z as f}from"zod";import*as y from"os";import w,{tmpdir as S,homedir as E}from"os";import*as C from"fs";import v,{existsSync as k,promises as T,readFileSync as _,constants as x,mkdirSync as P,writeFileSync as A,readdirSync as I,statSync as N,createReadStream as R,appendFileSync as M}from"fs";import{execSync as L,exec as $,spawn as D,execFile as O}from"child_process";import*as F from"fs/promises";import q,{mkdir as j,writeFile as B,rm as U,readFile as z,unlink as H,readdir as W}from"fs/promises";import*as G from"crypto";import V,{randomUUID as Q}from"crypto";import*as K from"http";import{createServer as Y}from"http";import J,{memo as X,useState as Z,useRef as ee,useEffect as te,useMemo as ne,useCallback as re}from"react";import{Box as oe,Text as se,Static as ie,useStdout as ae,useInput as le,render as ce,useApp as ue,Newline as de}from"ink";import me from"chalk";import pe from"picocolors";import ge from"strip-ansi";import he from"sharp";import fe from"open";import ye from"@opentelemetry/sdk-node";import we from"@opentelemetry/exporter-trace-otlp-http";import Se from"@opentelemetry/resources";import be from"@opentelemetry/semantic-conventions";import Ee from"@opentelemetry/sdk-trace-node";import{trace as Ce,SpanStatusCode as ve,context as ke}from"@opentelemetry/api";import{v4 as Te}from"uuid";import{Command as _e,Option as xe}from"commander";import Pe from"figures";import Ae from"ora";import*as Ie from"net";import Ne from"net";import Re from"tls";import Me from"stream";import{performance as Le}from"perf_hooks";import $e from"@sindresorhus/slugify";import{EventEmitter as De}from"events";import Oe from"ink-spinner";import*as Fe from"@clack/prompts";import{multiselect as qe,confirm as je,note as Be,cancel as Ue,select as ze,isCancel as He,password as We}from"@clack/prompts";import Ge from"gray-matter";import"dotenv/config";import Ve from"dedent";import Qe from"log-symbols";import{minimatch as Ke}from"minimatch";import{glob as Ye}from"glob";import{quote as Je}from"shell-quote";import Xe from"@crosscopy/clipboard";import{createRequire as Ze}from"module";import et from"ansi-escapes";import tt from"string-width";import*as nt from"readline";import rt from"readline";import{promisify as ot}from"util";import st from"semver";import it from"strip-json-comments";import at from"ink-select-input";import*as lt from"diff";import{Marked as ct}from"marked";import ut from"marked-terminal";import dt from"open-editor";import mt from"ignore";import pt from"is-unicode-supported";import{wrapAnsi as gt}from"fast-wrap-ansi";import ht from"terminal-link";import*as ft from"process";var yt,wt,St,bt,Et,Ct,vt,kt,Tt,_t,xt,Pt,At,It,Nt,Rt,Mt,Lt,$t,Dt,Ot,Ft,qt,jt,Bt,Ut,zt,Ht,Wt,Gt,Vt,Qt,Kt,Yt,Jt,Xt,Zt=Object.defineProperty,en=Object.getOwnPropertyNames,__name=(e,t)=>Zt(e,"name",{value:t,configurable:!0}),__esm=(e,t)=>function __init(){return e&&(t=(0,e[en(e)[0]])(e=0)),t},__export=(e,t)=>{for(var n in t)Zt(e,n,{get:t[n],enumerable:!0})},tn=__esm({"../../node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.6_tsx@4.21.0_typescript@5.9.3_yaml@2.8.2/node_modules/tsup/assets/esm_shims.js"(){}}),nn=__esm({"../shared/src/constants/tracing.ts"(){tn(),yt="command_code_cli_tracing"}}),rn=__esm({"src/utils/telemetry/constants.ts"(){tn(),nn(),wt="https://api.axiom.co/v1/traces",St="xaat-818bfed7-bc54-45bc-8bfa-d1198174064a",bt="xaat-fde9e569-4a3c-4994-aa0d-7a632332d220",Et="xaat-add69148-8f73-4833-921d-bc843285c95f",Ct="command-code-cli",vt=["apikey","api_key","api-key","token","secret","authorization","auth","password","passwd","credential","auth_key","authkey","access_token","access-token","refresh_token","refresh-token","client_secret","clientsecret","private_key","privatekey","bearer","key"],kt=["content","body"],Tt=1e3}});function getModelCategory({provider:e,model:t}){if(e===Rt.VERCEL_AI_GATEWAY||e===Rt.CLOUDFLARE_AI_GATEWAY)return"opensource";const n=Dt[e];if(!n)return null;const r=`${e}:${t}`,o=n.find(e=>e.id===r);return o?.category??null}function buildModelGroups(e){const t=Object.values(Ht),n=[];for(const r of Object.values(Qt)){if(!("co"===e?r.visibleInCoMode:r.visibleInNormalMode))continue;const o=t.filter(e=>r.supportedModelProviders.includes(e.provider));o.length>0&&n.push({providerId:r.id,label:r.label,models:o})}return n}var on,sn=__esm({"../shared/src/constants.ts"(){tn(),xt="--xco",Pt={INTERNAL_TEAM_FLAG_HEADER:`x-${(_t="--co").replace("--","")}-flag`,OAUTH_TOKEN:"x-oauth-token",OAUTH_PROVIDER:"x-oauth-provider",PROJECT_SLUG:"x-project-slug",TASTE_LEARNING:"x-taste-learning",TASTE_USAGE:"x-taste-usage",CLI_ENVIRONMENT:"x-cli-environment",CLI_VERSION:"x-command-code-version",OSS_PRIMARY_PROVIDER:"x-oss-primary-provider",SESSION_ID:"x-session-id"},At={ALPHA:{GENERATE:"/alpha/generate",WHOAMI:"/alpha/whoami",NAMESPACES:"/alpha/namespaces",AGENT:{GENERATE:"/alpha/agent/generate"},SANDBOX:{START:"/alpha/sandbox/start",STREAM:"/alpha/sandbox/stream",STATUS:"/alpha/sandbox/status",STOP:"/alpha/sandbox/stop",SESSIONS:"/alpha/sandbox/sessions"},SHARE:{CREATE:"/alpha/share/create",DELETE:"/alpha/share/delete",DATA:"/alpha/share/data",APPEND:"/alpha/share/append",CONNECT:"/alpha/share/connect"},DEVREL_THREAD:{CREATE:"/alpha/devrel-thread/create",DELETE:"/alpha/devrel-thread/delete",DATA:"/alpha/devrel-thread/data",UPDATE:"/alpha/devrel-thread/update"},TASTE:{GET:"/alpha/taste/:projectSlug",UPDATE:"/alpha/taste/:projectSlug/update",DELETE:"/alpha/taste/:projectSlug",LEARN:"/alpha/learn"},BILLING:{CREDITS:"/alpha/billing/credits",SUBSCRIPTIONS:"/alpha/billing/subscriptions"},USAGE:{SUMMARY:"/alpha/usage/summary"},LIFECYCLE_EVENTS:{TRACK:"/alpha/lifecycle-events"}},BETA:{TASTE:{PACKAGES:{UPLOAD:"/beta/taste/packages/:namespace",LIST:"/beta/taste/packages",GET:"/beta/taste/packages/:namespace/:packageName",FILES:"/beta/taste/packages/:namespace/:packageName/files",DOWNLOAD:"/beta/taste/packages/:namespace/:packageName/download",DELETE:"/beta/taste/packages/:namespace/:packageName"}}},INTERNAL:{ADMIN:{USERS:"/internal/admin/users",GRANT_CREDITS:"/internal/admin/grant-credits",ORGS:"/internal/admin/orgs",GRANT_ORG_CREDITS:"/internal/admin/grant-org-credits",ENTITY_TYPE:"/internal/admin/entity-type",BAN_USER:"/internal/admin/ban-user",BAN_ORG:"/internal/admin/ban-org",UNBAN_USER:"/internal/admin/unban-user",UNBAN_ORG:"/internal/admin/unban-org",DELETE_USER:"/internal/admin/delete-user",DELETE_ORG:"/internal/admin/delete-org",MIGRATE:{PLAN_IDS:"/internal/admin/migrations/plan-ids"}},PROFILE:{GET:"/internal/profile/:login",PACKAGES:"/internal/profile/:login/packages",PACKAGE_GET:"/internal/profile/:login/packages/:packageName",PACKAGE_DOWNLOAD:"/internal/profile/:login/packages/:packageName/download",FOLLOWERS:"/internal/profile/:login/followers",FOLLOWING:"/internal/profile/:login/following"},API_KEYS:{CREATE:"/internal/api-keys/create",LIST:"/internal/api-keys/list",DELETE:"/internal/api-keys/delete"},BILLING:{CREDITS:{GET:"/internal/billing/credits"},CUSTOMERS:{GET:"/internal/billing/customers",UPSERT:"/internal/billing/customers",SETUP_INTENT:"/internal/billing/customers/setup-intent",PAYMENT_METHOD:"/internal/billing/customers/payment-method",SET_DEFAULT_PAYMENT_METHOD:"/internal/billing/customers/payment-method/set-default",INVOICES:"/internal/billing/customers/invoices"},CHECKOUT_ELIGIBILITY:"/internal/billing/checkout/eligibility",SUBSCRIPTIONS:{GET:"/internal/billing/subscriptions"},WEBHOOK:"/internal/billing/webhook"},ORGS:{LIST:"/internal/orgs",GET:"/internal/orgs/:login",CREATE:"/internal/orgs",UPDATE:"/internal/orgs/:id",DELETE:"/internal/orgs/:id",AVATAR:"/internal/orgs/:id/avatar",MEMBERS:{LIST:"/internal/orgs/:id/members",ADD:"/internal/orgs/:id/members",UPDATE:"/internal/orgs/:id/members/:userId",REMOVE:"/internal/orgs/:id/members/:userId"},INVITATIONS:{LIST:"/internal/orgs/:id/invitations",SEND:"/internal/orgs/:id/invitations",ACCEPT:"/internal/invitations/:token/accept",CANCEL:"/internal/invitations/:id"},FOLLOW:"/internal/orgs/:orgId/follow",FOLLOWERS:"/internal/orgs/:orgId/followers"},USER:{SETTINGS:"/internal/user/settings",AVATAR:"/internal/user/avatar",FOLLOW:"/internal/users/:userId/follow",FOLLOWERS:"/internal/users/:userId/followers",FOLLOWING:"/internal/users/:userId/following"},USAGE:{LIST:"/internal/usage",SUMMARY:"/internal/usage/summary",CHARTS:"/internal/usage/charts"},TASTE:{PACKAGES:{LIST:"/internal/taste/packages",BATCH:"/internal/taste/packages",GET:"/internal/taste/packages/:namespace/:packageName",FILES:"/internal/taste/packages/:namespace/:packageName/files",DOWNLOAD:"/internal/taste/packages/:namespace/:packageName/download",DELETE:"/internal/taste/packages/:namespace/:packageName",UPDATE:"/internal/taste/packages/:namespace/:packageName/update",STAR:"/internal/taste/packages/:namespace/:packageName/star",PIN:"/internal/taste/packages/:namespace/:packageName/pin"}}}},It={ALPHA:{TASTE:{GET:new RegExp("/alpha/taste/[a-z0-9-]+"),UPDATE:new RegExp("/alpha/taste/[a-z0-9-]+/update"),DELETE:new RegExp("/alpha/taste/[a-z0-9-]+/rules/[a-z0-9-]+"),LIST:new RegExp("/alpha/taste/[a-z0-9-]+/rules")},PACKAGES:{FILES:new RegExp("/alpha/v1/taste/packages/[a-zA-Z0-9_-]+/files"),GET:new RegExp("/alpha/v1/taste/packages/[a-zA-Z0-9_-]+"),DOWNLOAD:new RegExp("/alpha/v1/taste/packages/[a-zA-Z0-9_-]+/download")}},BETA:{TASTE_PACKAGES:{UPLOAD:new RegExp("^/beta/taste/packages/[a-zA-Z0-9_-]+$"),FILES:new RegExp("/beta/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/files"),GET:new RegExp("/beta/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+"),DOWNLOAD:new RegExp("/beta/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/download")}},INTERNAL:{ORGS:{GET:new RegExp("/internal/orgs/[a-zA-Z0-9_-]+"),FOLLOW:new RegExp("/internal/orgs/[a-zA-Z0-9-]+/follow"),FOLLOWERS:new RegExp("/internal/orgs/[a-zA-Z0-9-]+/followers")},USER:{FOLLOW:new RegExp("/internal/users/[a-zA-Z0-9-]+/follow"),FOLLOWERS:new RegExp("/internal/users/[a-zA-Z0-9-]+/followers"),FOLLOWING:new RegExp("/internal/users/[a-zA-Z0-9-]+/following")},TASTE:{PACKAGES:{GET:new RegExp("/internal/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+"),FILES:new RegExp("/internal/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/files"),DOWNLOAD:new RegExp("/internal/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/download"),UPDATE:new RegExp("/internal/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/update"),STAR:new RegExp("/internal/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/star"),PIN:new RegExp("/internal/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/pin")}}}},Object.values(It.ALPHA.TASTE),Object.values(It.BETA.TASTE_PACKAGES),new RegExp("^/alpha/sandbox/status/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"),new RegExp("^/alpha/sandbox/stop/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"),new RegExp("^/alpha/sandbox/stream/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"),At.ALPHA.GENERATE,At.ALPHA.AGENT.GENERATE,At.ALPHA.WHOAMI,At.ALPHA.NAMESPACES,At.ALPHA.SANDBOX.START,At.ALPHA.SHARE.CREATE,At.ALPHA.SHARE.DELETE,At.ALPHA.SHARE.APPEND,At.ALPHA.DEVREL_THREAD.CREATE,At.ALPHA.DEVREL_THREAD.DELETE,At.ALPHA.DEVREL_THREAD.UPDATE,At.ALPHA.TASTE.LEARN,At.ALPHA.TASTE.DELETE,At.ALPHA.TASTE.GET,At.ALPHA.TASTE.UPDATE,Object.values(At.BETA.TASTE.PACKAGES),At.ALPHA.BILLING.CREDITS,At.ALPHA.BILLING.SUBSCRIPTIONS,At.ALPHA.USAGE.SUMMARY,At.ALPHA.LIFECYCLE_EVENTS.TRACK,At.INTERNAL.ADMIN.USERS,At.INTERNAL.ADMIN.ORGS,At.INTERNAL.ADMIN.ENTITY_TYPE,At.INTERNAL.USER.AVATAR,At.INTERNAL.USER.SETTINGS,At.INTERNAL.API_KEYS.LIST,At.INTERNAL.API_KEYS.CREATE,At.INTERNAL.API_KEYS.DELETE,At.INTERNAL.USAGE.LIST,At.INTERNAL.USAGE.SUMMARY,At.INTERNAL.USAGE.CHARTS,At.INTERNAL.ADMIN.GRANT_CREDITS,At.INTERNAL.ADMIN.GRANT_ORG_CREDITS,At.INTERNAL.ADMIN.BAN_USER,At.INTERNAL.ADMIN.BAN_ORG,At.INTERNAL.ADMIN.UNBAN_USER,At.INTERNAL.ADMIN.UNBAN_ORG,At.INTERNAL.ADMIN.DELETE_USER,At.INTERNAL.ADMIN.DELETE_ORG,At.INTERNAL.BILLING.CREDITS.GET,At.INTERNAL.BILLING.CUSTOMERS.GET,At.INTERNAL.BILLING.CUSTOMERS.UPSERT,At.INTERNAL.BILLING.CUSTOMERS.SETUP_INTENT,At.INTERNAL.BILLING.CUSTOMERS.PAYMENT_METHOD,At.INTERNAL.BILLING.CUSTOMERS.SET_DEFAULT_PAYMENT_METHOD,At.INTERNAL.BILLING.CUSTOMERS.INVOICES,At.INTERNAL.BILLING.SUBSCRIPTIONS.GET,At.INTERNAL.BILLING.CHECKOUT_ELIGIBILITY,At.INTERNAL.ORGS.LIST,At.INTERNAL.ORGS.GET,At.INTERNAL.ORGS.CREATE,At.INTERNAL.ORGS.UPDATE,At.INTERNAL.ORGS.DELETE,At.INTERNAL.ORGS.MEMBERS.LIST,At.INTERNAL.ORGS.MEMBERS.ADD,At.INTERNAL.ORGS.MEMBERS.UPDATE,At.INTERNAL.ORGS.MEMBERS.REMOVE,At.INTERNAL.ORGS.INVITATIONS.LIST,At.INTERNAL.ORGS.INVITATIONS.SEND,At.INTERNAL.ORGS.INVITATIONS.ACCEPT,At.INTERNAL.ORGS.INVITATIONS.CANCEL,At.INTERNAL.TASTE.PACKAGES.LIST,At.INTERNAL.ADMIN.MIGRATE.PLAN_IDS,Object.values(It.INTERNAL.ORGS),Object.values(It.INTERNAL.USER),Object.values(It.INTERNAL.TASTE.PACKAGES),Nt={INTERNAL:{PROFILE:{GET:new RegExp("/internal/profile/[a-zA-Z0-9_-]+"),PACKAGES:new RegExp("/internal/profile/[a-zA-Z0-9_-]+/packages"),FOLLOWING:new RegExp("/internal/profile/[a-zA-Z0-9_-]+/following"),FOLLOWERS:new RegExp("/internal/profile/[a-zA-Z0-9_-]+/followers"),PACKAGE_GET:new RegExp("/internal/profile/[a-zA-Z0-9_-]+/packages/[a-zA-Z0-9_-]+"),PACKAGE_DOWNLOAD:new RegExp("/internal/profile/[a-zA-Z0-9_-]+/packages/[a-zA-Z0-9_-]+/download")}}},Object.values(Nt.INTERNAL.PROFILE),Mt={"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},Lt=[(Rt={ANTHROPIC:"anthropic",OPENAI:"openai",BASETEN:"baseten",VERCEL_AI_GATEWAY:"vercel-ai-gateway",CLOUDFLARE_AI_GATEWAY:"cloudflare-ai-gateway"}).VERCEL_AI_GATEWAY,Rt.BASETEN,Rt.CLOUDFLARE_AI_GATEWAY],$t=Lt[0],Dt={[Rt.ANTHROPIC]:[{id:"anthropic:claude-sonnet-4-20250514",provider:"Anthropic",category:"premium",promptCost:3,completionCost:15,cacheWrite5mCost:3.75,cacheWrite1hCost:6,cacheHitCost:.3},{id:"anthropic:claude-sonnet-4-5-20250929",provider:"Anthropic",category:"premium",promptCost:3,completionCost:15,cacheWrite5mCost:3.75,cacheWrite1hCost:6,cacheHitCost:.3},{id:"anthropic:claude-opus-4-5-20251101",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-sonnet-4-6",provider:"Anthropic",category:"premium",promptCost:3,completionCost:15,cacheWrite5mCost:3.75,cacheWrite1hCost:6,cacheHitCost:.3},{id:"anthropic:claude-opus-4-7",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-opus-4-6",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-haiku-4-5-20251001",provider:"Anthropic",category:"premium",promptCost:1,completionCost:5,cacheWrite5mCost:1.25,cacheWrite1hCost:2,cacheHitCost:.1}],[Rt.OPENAI]:[{id:"openai:gpt-5.5",provider:"OpenAI",category:"premium",promptCost:5,completionCost:30,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.5},{id:"openai:gpt-5.4",provider:"OpenAI",category:"premium",promptCost:2.5,completionCost:15,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.25},{id:"openai:gpt-5.3-codex",provider:"OpenAI",category:"premium",promptCost:2,completionCost:8,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.5},{id:"openai:gpt-5.4-mini",provider:"OpenAI",category:"premium",promptCost:.75,completionCost:4.5,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.075}],[Rt.BASETEN]:[{id:"baseten:zai-org/GLM-5",provider:"Baseten",category:"opensource",promptCost:.95,completionCost:3.15,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:0},{id:"baseten:moonshotai/Kimi-K2.5",provider:"Baseten",category:"opensource",promptCost:.6,completionCost:3,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:0},{id:"baseten:moonshotai/Kimi-K2.6",provider:"Baseten",category:"opensource",promptCost:.95,completionCost:4,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.16},{id:"baseten:MiniMaxAI/MiniMax-M2.5",provider:"Baseten",category:"opensource",promptCost:.5,completionCost:2,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:0}],[Rt.VERCEL_AI_GATEWAY]:[]},__name(getModelCategory,"getModelCategory"),Ot={"individual-go":{premium:0,opensource:10,total:10},"individual-pro":{premium:15,opensource:15,total:30},"individual-max":{premium:100,opensource:50,total:150},"individual-ultra":{premium:200,opensource:100,total:300},"teams-pro":{premium:40,opensource:0,total:40}},Ft={"individual-go":"Go","individual-pro":"Pro","individual-max":"Max","individual-ultra":"Ultra","teams-pro":"Teams Pro"},qt=[50,75,90],h.enum(["owner","admin","member"]),jt={LEARN_TASTE:"learn-taste",TASTE:"taste",TERMINAL_SETUP:"terminal-setup"},Bt={MAX_PROMPT_TOKENS:25e3,MAX_PROMPT_CHARS:1e5,DB_PROMPT_MAX_WORDS:10},Ut="chatComplete",zt="responses",(Ht={SONNET_4_6:{id:"claude-sonnet-4-6",provider:Rt.ANTHROPIC,spec:Ut,label:"Claude Sonnet 4.6",name:"Claude Sonnet 4.6",description:"best combo of speed & intelligence (recommended)"},OPUS_4_7:{id:"claude-opus-4-7",provider:Rt.ANTHROPIC,spec:Ut,label:"Claude Opus 4.7",name:"Claude Opus 4.7",description:"most intelligent for agents and coding",reasoning:!0},OPUS_4_6:{id:"claude-opus-4-6",provider:Rt.ANTHROPIC,spec:Ut,label:"Claude Opus 4.6",name:"Claude Opus 4.6",description:"most capable for complex work"},HAIKU_4_5:{id:"claude-haiku-4-5-20251001",provider:Rt.ANTHROPIC,spec:Ut,label:"Claude Haiku 4.5",name:"Claude Haiku 4.5",description:"fastest & most compact, great for quick tasks"},GPT_5_5:{id:"gpt-5.5",provider:Rt.OPENAI,spec:zt,label:"GPT-5.5",name:"GPT-5.5",description:"latest frontier model for general complex work",reasoning:!0},GPT_5_4:{id:"gpt-5.4",provider:Rt.OPENAI,spec:zt,label:"GPT-5.4",name:"GPT-5.4",description:"frontier model for general complex work",reasoning:!0},GPT_5_3_CODEX:{id:"gpt-5.3-codex",provider:Rt.OPENAI,spec:zt,label:"GPT-5.3 Codex",name:"GPT-5.3 Codex",description:"frontier coding model",reasoning:!0},GPT_5_4_MINI:{id:"gpt-5.4-mini",provider:Rt.OPENAI,spec:zt,label:"GPT-5.4 Mini",name:"GPT-5.4 Mini",description:"fast, cost-effective model for everyday tasks",reasoning:!0},KIMI_K2_6:{id:"moonshotai/Kimi-K2.6",provider:$t,spec:Ut,label:"Kimi K2.6",name:"Kimi K2.6",description:"long-horizon coding with vision"},KIMI_K2_5:{id:"moonshotai/Kimi-K2.5",provider:$t,spec:Ut,label:"Kimi K2.5",name:"Kimi K2.5",description:"multimodal frontend coding"},GLM_5_1:{id:"zai-org/GLM-5.1",provider:$t,spec:Ut,label:"GLM-5.1",name:"GLM-5.1",description:"long-horizon autonomous coding agent"},GLM_5:{id:"zai-org/GLM-5",provider:$t,spec:Ut,label:"GLM-5",name:"GLM-5",description:"multi-mode thinking & long-range planning"},MINIMAX_M2_7:{id:"MiniMaxAI/MiniMax-M2.7",provider:$t,spec:Ut,label:"MiniMax M2.7",name:"MiniMax M2.7",description:"end-to-end software engineering agent"},MINIMAX_M2_5:{id:"MiniMaxAI/MiniMax-M2.5",provider:$t,spec:Ut,label:"MiniMax M2.5",name:"MiniMax M2.5",description:"cross-platform full-stack agentic dev"},DEEPSEEK_V4_PRO:{id:"deepseek/deepseek-v4-pro",provider:$t,spec:Ut,label:"DeepSeek V4 Pro",name:"DeepSeek V4 Pro",description:"hybrid-attention long-context reasoning",reasoning:!0},DEEPSEEK_V4_FLASH:{id:"deepseek/deepseek-v4-flash",provider:$t,spec:Ut,label:"DeepSeek V4 Flash",name:"DeepSeek V4 Flash",description:"fast hybrid-attention reasoning",reasoning:!0},QWEN_3_6_MAX_PREVIEW:{id:"Qwen/Qwen3.6-Max-Preview",provider:$t,spec:Ut,label:"Qwen 3.6 Max Preview",name:"Qwen 3.6 Max Preview",description:"vibe coding & efficient agent execution",reasoning:!0},QWEN_3_6_PLUS:{id:"Qwen/Qwen3.6-Plus",provider:$t,spec:Ut,label:"Qwen 3.6 Plus",name:"Qwen 3.6 Plus",description:"agentic coding & reasoning",reasoning:!0}}).SONNET_4_6.id,Ht.OPUS_4_7.id,Ht.OPUS_4_6.id,Ht.HAIKU_4_5.id,Rt.VERCEL_AI_GATEWAY,Rt.BASETEN,Rt.VERCEL_AI_GATEWAY,Rt.VERCEL_AI_GATEWAY,Rt.BASETEN,Rt.CLOUDFLARE_AI_GATEWAY,Rt.VERCEL_AI_GATEWAY,Rt.BASETEN,Rt.CLOUDFLARE_AI_GATEWAY,Rt.VERCEL_AI_GATEWAY,Rt.BASETEN,Rt.VERCEL_AI_GATEWAY,Rt.VERCEL_AI_GATEWAY,Rt.VERCEL_AI_GATEWAY,Rt.VERCEL_AI_GATEWAY,Rt.VERCEL_AI_GATEWAY,Wt={"claude-sonnet-4-20250514":Ht.SONNET_4_6.id,"claude-sonnet-4-5-20250929":Ht.SONNET_4_6.id,"claude-opus-4-5-20251101":Ht.OPUS_4_7.id,"claude-opus-4-6":Ht.OPUS_4_7.id},Gt=Ht.KIMI_K2_5.id,Vt={[Rt.ANTHROPIC]:"Anthropic",[Rt.OPENAI]:"OpenAI",[Rt.BASETEN]:"Open Source",[Rt.VERCEL_AI_GATEWAY]:"Open Source"},Qt={"command-code":{id:"command-code",label:"Command Code",shortLabel:"cmd",description:"recommended",supportedModelProviders:[Rt.ANTHROPIC,Rt.OPENAI,Rt.BASETEN,Rt.VERCEL_AI_GATEWAY],requiresAuth:!1,visibleInCoMode:!0,visibleInNormalMode:!0,showProviderLabelInSelector:!0},anthropic:{id:"anthropic",label:"Anthropic",shortLabel:"anth",description:"Claude Pro/Max",supportedModelProviders:[Rt.ANTHROPIC],requiresAuth:!0,visibleInCoMode:!0,visibleInNormalMode:!1,showProviderLabelInSelector:!1},"github-copilot":{id:"github-copilot",label:"GitHub Copilot",shortLabel:"copilot",description:"Copilot subscription",supportedModelProviders:[Rt.ANTHROPIC,Rt.OPENAI],requiresAuth:!0,visibleInCoMode:!0,visibleInNormalMode:!1,showProviderLabelInSelector:!0},codex:{id:"codex",label:"ChatGPT (Codex)",shortLabel:"codex",description:"ChatGPT Pro/Plus subscription",supportedModelProviders:[Rt.OPENAI],requiresAuth:!0,visibleInCoMode:!0,visibleInNormalMode:!1,showProviderLabelInSelector:!1}},__name(buildModelGroups,"buildModelGroups"),Kt=buildModelGroups("co"),Yt=buildModelGroups("normal"),new Set(["cc2@www3.in","cc3@www3.in","cc4@www3.in","cc5@www3.in","cc6@www3.in","cc7@www3.in","cc8@www3.in","cc9@www3.in","cc10@www3.in"].map(e=>e.toLowerCase())),Jt=["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/.svn/**","**/.hg/**","**/coverage/**","**/*.log","**/tmp/**","**/temp/**","**/.DS_Store","**/Thumbs.db","**/*.tmp","**/*.cache"],Xt={TIER_1_THRESHOLD:.5,TIER_2_THRESHOLD:.8,TIER_3_THRESHOLD:.9,TIER_1_KEEP_COUNT:20,TIER_2_KEEP_COUNT:10,KEEP_RECENT_TOKENS:3e4}}}),an=__esm({"src/utils/env.ts"(){tn(),on=__name(()=>{const e=process.argv.includes("--local"),t=process.argv.includes("--staging");return e?"local":t?"staging":"prod"},"getApiEnv")}});function getAuthDir(){return t.join(w.homedir(),".commandcode")}function getAuthFile(e){const n=e??on(),r="local"===n?"auth.local.json":"staging"===n?"auth.staging.json":"auth.json";return t.join(getAuthDir(),r)}function getConfigFile(e){const n=e??on(),r="local"===n?"config.local.json":"staging"===n?"config.staging.json":"config.json";return t.join(getAuthDir(),r)}var ln,cn,un=__esm({"src/utils/auth/auth-paths.ts"(){tn(),sn(),an(),__name(getAuthDir,"getAuthDir"),__name(getAuthFile,"getAuthFile"),__name(getConfigFile,"getConfigFile")}});function normalizePathForComparison(e){const n=t.normalize(e);return"win32"===process.platform?n.toLowerCase():n}function areSamePath(e,t){return normalizePathForComparison(e)===normalizePathForComparison(t)}function getCanonicalPath(e){try{return v.realpathSync(e)}catch(n){const r=n.code;return"ENOENT"!==r&&console.error(`Warning: Could not resolve canonical path for "${e}" (${r}). Path comparison may be less reliable.`),t.normalize(e)}}function canonicalizeForLookup(e){try{let n=t.resolve(e);const r=[];for(;!v.existsSync(n);){const o=t.dirname(n);if(o===n)return t.normalize(e);r.unshift(t.basename(n)),n=o}return t.join(getCanonicalPath(n),...r)}catch{return t.normalize(e)}}function formatDirectoryForDisplay(e){const n=canonicalizeForLookup(t.normalize(e)),r=getCanonicalPath(process.cwd()),o=w.homedir();if(isPathInDirectory(n,r)){const e=t.relative(r,n);return e?`./${e}`:"."}if(o&&isPathInDirectory(n,o)){const e=t.relative(o,n);return e?`~/${e}`:"~"}return n}function isPathInDirectory(e,n){const r=normalizePathForComparison(e),o=normalizePathForComparison(n),s=o.endsWith(t.sep)?o:o+t.sep;return r===o||r.startsWith(s)}function findSensitiveDirectoryConflict(e){const n=[t.normalize(e),getCanonicalPath(e)];for(const e of ln){const r=[t.normalize(e),getCanonicalPath(e)];for(const e of n)for(const t of r)if(isPathInDirectory(e,t)||isPathInDirectory(t,e))return t}return null}function resolveDirectoryPath(e){let n=e.trim();return n.startsWith("~")&&(n=t.join(w.homedir(),n.slice(1))),t.isAbsolute(n)||(n=t.resolve(process.cwd(),n)),t.normalize(n)}function createSkippedResult(e){const{inputPath:t,absolutePath:n,code:r}=e,o=formatDirectoryForDisplay(n);return{status:"skipped",inputPath:t,absolutePath:n,displayPath:o,code:r,message:"ALREADY_IN_WORKSPACE"===r?`${o} is already accessible from the current workspace`:`${o} is already added`}}function createErrorResult(e){const{inputPath:t,code:n,message:r}=e;return{status:"error",inputPath:t,code:n,message:r}}function addDirectory(e){const t=e.trim();if(!t)return createErrorResult({inputPath:e,code:"EMPTY_PATH",message:"Directory path cannot be empty"});const n=resolveDirectoryPath(e);let r,o;try{r=v.statSync(n)}catch(n){return"ENOENT"===n.code?createErrorResult({inputPath:e,code:"NOT_FOUND",message:`Directory does not exist: ${t}`}):createErrorResult({inputPath:e,code:"NOT_READABLE",message:`Directory is not readable: ${t}`})}if(!r.isDirectory())return createErrorResult({inputPath:e,code:"NOT_A_DIRECTORY",message:`${formatDirectoryForDisplay(n)} is not a directory`});try{v.accessSync(n,v.constants.R_OK),o=getCanonicalPath(n)}catch{return createErrorResult({inputPath:e,code:"NOT_READABLE",message:`Directory is not readable: ${t}`})}const s=findSensitiveDirectoryConflict(o);if(s)return createErrorResult({inputPath:e,code:"SENSITIVE_DIRECTORY",message:`Cannot add ${formatDirectoryForDisplay(o)} because it overlaps sensitive path ${formatDirectoryForDisplay(s)}`});const i=getCanonicalPath(process.cwd());return isPathInDirectory(o,i)?createSkippedResult({inputPath:e,absolutePath:o,code:"ALREADY_IN_WORKSPACE"}):cn.some(e=>isPathInDirectory(o,e)||isPathInDirectory(e,o))?createSkippedResult({inputPath:e,absolutePath:o,code:"ALREADY_ADDED"}):(cn.push(o),{status:"added",inputPath:e,absolutePath:o,displayPath:formatDirectoryForDisplay(o)})}function getAdditionalDirectories(){return[...cn]}function removeAdditionalDirectory(e){if(!e.trim())return!1;const t=getCanonicalPath(resolveDirectoryPath(e)),n=cn.findIndex(e=>areSamePath(t,e));return-1!==n&&(cn.splice(n,1),!0)}function isPathInAdditionalDirs(e){const t=canonicalizeForLookup(e);return cn.some(e=>isPathInDirectory(t,e))}function isPathInWorkspace(e){const t=canonicalizeForLookup(e);return isPathInDirectory(t,getCanonicalPath(process.cwd()))||isPathInAdditionalDirs(t)}function getWorkspaceDirectories(){return[t.resolve(process.cwd()),...getAdditionalDirectories()]}var dn=__esm({"src/utils/additional-dirs.ts"(){tn(),ln=new Set(["/etc","/root","/proc","/sys","/dev",t.join(w.homedir(),".ssh"),t.join(w.homedir(),".gnupg"),t.join(w.homedir(),".aws")]),cn=[],__name(normalizePathForComparison,"normalizePathForComparison"),__name(areSamePath,"areSamePath"),__name(getCanonicalPath,"getCanonicalPath"),__name(canonicalizeForLookup,"canonicalizeForLookup"),__name(formatDirectoryForDisplay,"formatDirectoryForDisplay"),__name(isPathInDirectory,"isPathInDirectory"),__name(findSensitiveDirectoryConflict,"findSensitiveDirectoryConflict"),__name(resolveDirectoryPath,"resolveDirectoryPath"),__name(createSkippedResult,"createSkippedResult"),__name(createErrorResult,"createErrorResult"),__name(addDirectory,"addDirectory"),__name(getAdditionalDirectories,"getAdditionalDirectories"),__name(removeAdditionalDirectory,"removeAdditionalDirectory"),__name(isPathInAdditionalDirs,"isPathInAdditionalDirs"),__name(isPathInWorkspace,"isPathInWorkspace"),__name(getWorkspaceDirectories,"getWorkspaceDirectories")}});function getCurrentWorkingDirectory(){return global.COMMAND_CODE_CWD||process.cwd()}function getCurrentDate(){return(new Date).toISOString().split("T")[0]}function getEnvironmentInfo(){return`${w.platform()}-${w.arch()}, Node.js ${process.version}`}function getRootDirectoryStructure(){const e=getCurrentWorkingDirectory(),t=new Set(["node_modules","dist","build",".git",".svn",".hg","coverage",".nyc_output",".cache","tmp","temp",".next",".nuxt","out"]);try{return v.readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()).filter(e=>!e.name.startsWith(".")).filter(e=>!t.has(e.name)).map(e=>e.name).sort()}catch{return[]}}function getAccessibleDirectoryStructure(){return[...getRootDirectoryStructure(),...getAdditionalDirectories().map(e=>`scope:${formatDirectoryForDisplay(e)}`)]}function isGitRepository(){try{return L("git rev-parse --git-dir",{stdio:"ignore",cwd:getCurrentWorkingDirectory()}),!0}catch{return!1}}function getCurrentBranch(){try{return L("git branch --show-current",{encoding:"utf8",cwd:getCurrentWorkingDirectory(),stdio:["pipe","pipe","ignore"]}).trim()}catch{return""}}function getMainBranch(){try{const e=L("git branch -r",{encoding:"utf8",cwd:getCurrentWorkingDirectory(),stdio:["pipe","pipe","ignore"]});return e.includes("origin/main")?"main":e.includes("origin/master")?"master":"main"}catch{return""}}function getGitStatus(){try{const e=L("git status --porcelain",{encoding:"utf8",cwd:getCurrentWorkingDirectory(),stdio:["pipe","pipe","ignore"]}).trim();if(!e)return"Working tree clean";const t=e.split("\n"),n=t.filter(e=>e.startsWith(" M")).length,r=t.filter(e=>e.startsWith("A ")).length,o=t.filter(e=>e.startsWith(" D")).length,s=t.filter(e=>e.startsWith("??")).length,i=[];return n>0&&i.push(`M ${n}`),r>0&&i.push(`A ${r}`),o>0&&i.push(`D ${o}`),s>0&&i.push(`?? ${s}`),i.join(", ")||e}catch{return""}}function getRecentCommits(){try{const e=L("git log --oneline -3",{encoding:"utf8",cwd:getCurrentWorkingDirectory(),stdio:["pipe","pipe","ignore"]}).trim();return e?e.split("\n"):[]}catch{return[]}}function getEnvironmentContext(){const e=isGitRepository(),t=getAdditionalDirectories();return{workingDir:getCurrentWorkingDirectory(),date:getCurrentDate(),environment:getEnvironmentInfo(),structure:getAccessibleDirectoryStructure(),isGitRepo:e,currentBranch:e?getCurrentBranch():"",mainBranch:e?getMainBranch():"",gitStatus:e?getGitStatus():"",recentCommits:e?getRecentCommits():[],...t.length>0?{additionalDirectories:t}:{}}}function detectTerminal(){const e=process.env;if(e.TERM_PROGRAM){const t=e.TERM_PROGRAM;if("vscode"===t)return{name:"Visual Studio Code",type:"vscode",details:{termProgram:t,termProgramVersion:e.TERM_PROGRAM_VERSION}};if("iTerm.app"===t)return{name:"iTerm2",type:"iterm2",details:{termProgram:t,termProgramVersion:e.TERM_PROGRAM_VERSION,iterm2Profile:e.ITERM_PROFILE}};if("Apple_Terminal"===t)return{name:"macOS Terminal",type:"terminal",details:{termProgram:t,termProgramVersion:e.TERM_PROGRAM_VERSION}};if("WarpTerminal"===t)return{name:"Warp",type:"warp",details:{termProgram:t,termProgramVersion:e.TERM_PROGRAM_VERSION}};if("Hyper"===t)return{name:"Hyper",type:"hyper",details:{termProgram:t,termProgramVersion:e.TERM_PROGRAM_VERSION}};if("ghostty"===t)return{name:"Ghostty",type:"ghostty",details:{termProgram:t,termProgramVersion:e.TERM_PROGRAM_VERSION}}}if(e.WT_SESSION||e.WT_PROFILE_ID)return{name:"Windows Terminal",type:"windows-terminal",details:{wtSession:e.WT_SESSION,wtProfileId:e.WT_PROFILE_ID}};if(e.ALACRITTY_SOCKET||e.ALACRITTY_WINDOW_ID)return{name:"Alacritty",type:"alacritty",details:{alacrittySocket:e.ALACRITTY_SOCKET,alacrittyWindowId:e.ALACRITTY_WINDOW_ID}};if(e.KITTY_WINDOW_ID||e.KITTY_PID)return{name:"Kitty",type:"kitty",details:{kittyWindowId:e.KITTY_WINDOW_ID,kittyPid:e.KITTY_PID}};if(e.GNOME_TERMINAL_SERVICE||e.VTE_VERSION)return{name:"GNOME Terminal",type:"gnome-terminal",details:{gnomeTerminalService:e.GNOME_TERMINAL_SERVICE,vteVersion:e.VTE_VERSION}};if(e.KONSOLE_VERSION||e.KONSOLE_PROFILE_NAME)return{name:"Konsole",type:"konsole",details:{konsoleVersion:e.KONSOLE_VERSION,konsoleProfile:e.KONSOLE_PROFILE_NAME}};if(e.TMUX)return{name:"tmux",type:"tmux",details:{tmux:e.TMUX,tmuxPane:e.TMUX_PANE}};if(e.ConEmuPID||e.ConEmuBuild)return{name:"ConEmu",type:"conemu",details:{conEmuPid:e.ConEmuPID,conEmuBuild:e.ConEmuBuild}};if(e.SSH_CLIENT||e.SSH_TTY)return{name:"SSH",type:"ssh",details:{sshClient:e.SSH_CLIENT,sshTty:e.SSH_TTY}};if(e.CI){const t=e.GITHUB_ACTIONS?"GitHub Actions":e.GITLAB_CI?"GitLab CI":e.JENKINS_URL?"Jenkins":e.CIRCLECI?"CircleCI":"Unknown CI";return{name:t,type:"ci",details:{ci:e.CI,ciName:t}}}const t=e.TERM||"unknown";return{name:`Unknown Terminal (${t})`,type:"unknown",details:{term:t,colorterm:e.COLORTERM,shell:e.SHELL}}}function getIsTerminalIterm2(){return"iTerm2"===detectTerminal().name}var mn,pn,gn,hn,fn,yn,wn,Sn,bn,En,Cn,vn,kn=__esm({"src/utils/environment.ts"(){tn(),dn(),__name(getCurrentWorkingDirectory,"getCurrentWorkingDirectory"),__name(getCurrentDate,"getCurrentDate"),__name(getEnvironmentInfo,"getEnvironmentInfo"),__name(getRootDirectoryStructure,"getRootDirectoryStructure"),__name(getAccessibleDirectoryStructure,"getAccessibleDirectoryStructure"),__name(isGitRepository,"isGitRepository"),__name(getCurrentBranch,"getCurrentBranch"),__name(getMainBranch,"getMainBranch"),__name(getGitStatus,"getGitStatus"),__name(getRecentCommits,"getRecentCommits"),__name(getEnvironmentContext,"getEnvironmentContext"),__name(detectTerminal,"detectTerminal"),__name(getIsTerminalIterm2,"getIsTerminalIterm2")}});function isWordLeftSequence(e){return!!mn.has(e)||!!En.test(e)}function isWordRightSequence(e){return!!pn.has(e)||!!Cn.test(e)}function isHomeSequence(e){return gn.has(e)}function isEndSequence(e){return hn.has(e)}function isForwardDeleteSequence(e){return fn.has(e)}function isDeleteWordSequence(e){return yn.has(e)}function isCtrlA(e){return 1===e.length&&e.charCodeAt(0)===wn.CTRL_A}function isCtrlE(e){return 1===e.length&&e.charCodeAt(0)===wn.CTRL_E}function isCtrlK(e){return 1===e.length&&e.charCodeAt(0)===wn.CTRL_K}function isCtrlU(e){return 1===e.length&&e.charCodeAt(0)===wn.CTRL_U}function isAltP(e){return bn.has(e)}function isCtrlKey({inputChar:e,key:t,letter:n,ctrlCode:r}){return!(!t.ctrl||e.toLowerCase()!==n.toLowerCase())||void 0!==r&&e.charCodeAt(0)===r}function isNewlineShortcutKey(e){const{inputChar:t,key:n,isPasting:r}=e;return!r&&(!(!n.return||!n.shift)||!(!n.ctrl||!n.return)||!(!n.ctrl||"j"!==t)||!("\r"!==t||n.return||n.ctrl||n.shift||n.meta)||vn.includes(t))}var Tn,_n,xn,Pn,An,In,Nn,Rn,Mn,Ln=__esm({"src/utils/keyboard-sequences.ts"(){tn(),mn=new Set(["","b","","",""]),pn=new Set(["","f","","",""]),gn=new Set(["","[1~","[7~","OH"]),hn=new Set(["","[4~","[8~","OF"]),fn=new Set(["[3~"]),yn=new Set(["",""]),wn={CTRL_A:1,CTRL_B:2,CTRL_E:5,CTRL_F:6,CTRL_G:7,CTRL_K:11,CTRL_U:21,CTRL_W:23},Sn={ALT_P:112,ALT_P_NO_META:960},bn=new Set([String.fromCharCode(27,Sn.ALT_P),String.fromCharCode(Sn.ALT_P_NO_META),""]),En=/^\x1b\[1;[359]D$/,Cn=/^\x1b\[1;[359]C$/,__name(isWordLeftSequence,"isWordLeftSequence"),__name(isWordRightSequence,"isWordRightSequence"),__name(isHomeSequence,"isHomeSequence"),__name(isEndSequence,"isEndSequence"),__name(isForwardDeleteSequence,"isForwardDeleteSequence"),__name(isDeleteWordSequence,"isDeleteWordSequence"),__name(isCtrlA,"isCtrlA"),__name(isCtrlE,"isCtrlE"),__name(isCtrlK,"isCtrlK"),__name(isCtrlU,"isCtrlU"),__name(isAltP,"isAltP"),__name(isCtrlKey,"isCtrlKey"),vn=["\n","\r","","[27;2;13~","[27;2;13~","[13;2u"],__name(isNewlineShortcutKey,"isNewlineShortcutKey")}}),$n=__esm({"src/auth/index.ts"(){tn(),sn(),an(),(e=>{e.OAuth=f.object({type:f.literal("oauth"),refresh:f.string(),access:f.string(),expires:f.number(),accountId:f.string().optional()}),e.ApiKey=f.object({type:f.literal("api"),key:f.string()}),e.Info=f.discriminatedUnion("type",[e.OAuth,e.ApiKey]);const n=__name(()=>t.join(w.homedir(),".commandcode"),"getAuthDir"),r=__name(()=>{const e=on(),r="local"===e?"auth.local.json":"staging"===e?"auth.staging.json":"auth.json";return t.join(n(),r)},"getAuthFile");async function get(e){try{const t=await q.readFile(r(),"utf-8");return JSON.parse(t)[e]}catch{return}}async function set(e,t){const o=n(),s=r();await q.mkdir(o,{recursive:!0});let i={};try{const e=await q.readFile(s,"utf-8");i=JSON.parse(e)}catch{}i[e]=t,await q.writeFile(s,JSON.stringify(i,null,2)),await q.chmod(s,384)}async function remove(e){const t=r();try{const n=await q.readFile(t,"utf-8"),r=JSON.parse(n);delete r[e],0===Object.keys(r).length?await q.unlink(t):(await q.writeFile(t,JSON.stringify(r,null,2)),await q.chmod(t,384))}catch{}}async function list2(){try{const e=await q.readFile(r(),"utf-8");return JSON.parse(e)}catch{return{}}}e.get=get,__name(get,"get"),e.set=set,__name(set,"set"),e.remove=remove,__name(remove,"remove"),e.list=list2,__name(list2,"list")})(Tn||(Tn={}))}}),Dn=__esm({"src/utils/constants.ts"(){tn(),sn(),_n="You have insufficient credits to make this request. Please purchase more credits to continue using Command Code: https://commandcode.ai/settings/billing",xn="OAuth authentication required. Please use /provider command\nSelect your provider and complete the OAuth setup.",Pn=">"}}),On=__esm({"src/auth/anthropic.ts"(){tn(),$n(),Dn(),jo(),(e=>{const t="9d1c250a-e61b-44d9-88ed-5944d1962f5e",n="https://console.anthropic.com/v1/oauth/token",r="https://console.anthropic.com/oauth/code/callback";function generateCodeVerifier(){return V.randomBytes(32).toString("base64url")}function generateCodeChallenge(e){return V.createHash("sha256").update(e).digest("base64url")}function generateState(){return V.randomBytes(32).toString("base64url")}function createAuthorizationUrl(){const e=generateCodeVerifier(),n=generateCodeChallenge(e),o=generateState();return{url:`https://claude.ai/oauth/authorize?${new URLSearchParams({code:"true",client_id:t,response_type:"code",redirect_uri:r,scope:"org:create_api_key user:profile user:inference",code_challenge:n,code_challenge_method:"S256",state:o}).toString()}`,verifier:e,state:o}}async function exchangeCodeForTokens2(e,o,s){const i=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"authorization_code",client_id:t,code:e,redirect_uri:r,code_verifier:o,state:s})});if(!i.ok){const e=await i.text(),t=new Error(`Token exchange failed: ${e}`);throw trackError({error:sanitizeErrorForTelemetry({error:t,label:"token_exchange_failed"}),context:{component:$o.ANTHROPIC_OAUTH,heading:"OAuth token exchange failed"}}),t}const a=await i.json();await Tn.set("anthropic",{type:"oauth",refresh:a.refresh_token,access:a.access_token,expires:Date.now()+1e3*a.expires_in})}async function refreshAccessToken2(){const e=await Tn.get("anthropic");if(e&&"oauth"===e.type){if(e.expires>Date.now()+3e5)return e.access;try{const r=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"refresh_token",client_id:t,refresh_token:e.refresh})});if(!r.ok)return void trackError({error:sanitizeErrorForTelemetry({error:new Error("OAuth token refresh failed"),label:"token_refresh_failed"}),context:{component:$o.ANTHROPIC_OAUTH,heading:"OAuth token refresh failed"}});const o=await r.json();return await Tn.set("anthropic",{type:"oauth",refresh:o.refresh_token,access:o.access_token,expires:Date.now()+1e3*o.expires_in}),o.access_token}catch(e){return void trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"token_refresh_exception"}),context:{component:$o.ANTHROPIC_OAUTH,heading:"OAuth token refresh exception"}})}}}async function getValidAccessToken2(){const e=await Tn.get("anthropic");if(e)return"api"===e.type?e.key:"oauth"===e.type?await refreshAccessToken2():void 0}__name(generateCodeVerifier,"generateCodeVerifier"),__name(generateCodeChallenge,"generateCodeChallenge"),__name(generateState,"generateState"),e.createAuthorizationUrl=createAuthorizationUrl,__name(createAuthorizationUrl,"createAuthorizationUrl"),e.exchangeCodeForTokens=exchangeCodeForTokens2,__name(exchangeCodeForTokens2,"exchangeCodeForTokens"),e.refreshAccessToken=refreshAccessToken2,__name(refreshAccessToken2,"refreshAccessToken"),e.getValidAccessToken=getValidAccessToken2,__name(getValidAccessToken2,"getValidAccessToken")})(An||(An={}))}});function getIcon(e){if(Rn[e])return Rn[e];const t=e.split(":")[0];return Rn[t]?Rn[t]:Rn.default}function formatTime(e){return`${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}:${e.getSeconds().toString().padStart(2,"0")}.${e.getMilliseconds().toString().padStart(3,"0")}`}function parseMessage(e){const t=e.match(/^\[([^\]]+)\]\s*(.*)/);return t?{category:t[1],text:t[2]}:{category:"",text:e}}function showStartup(){if(!Mn){Mn=!0;try{C.mkdirSync(In,{recursive:!0});const e=new Date,t=`\n════════════════════════════════════════════════════════════════\n CommandCode Debug Log\n Started: ${e.toLocaleDateString()} ${formatTime(e)}\n Log: ${Nn}\n════════════════════════════════════════════════════════════════\n\n`;C.appendFileSync(Nn,t,"utf-8")}catch{}}}function dlog(e,t){if("true"===process.env.DEBUG){showStartup();try{const n=formatTime(new Date),{category:r,text:o}=parseMessage(e);let s;if(r){s=`${n} ${getIcon(r)} ${`[${r}]`.padEnd(16)} ${o}`}else s=`${n} ${Rn.default} ${e}`;if(t){s+=`\n${("string"==typeof t?t:JSON.stringify(t,null,2)).split("\n").map(e=>` ${e}`).join("\n")}`}s+="\n",C.appendFileSync(Nn,s,"utf-8")}catch{}}}function dlogSection(e){if("true"===process.env.DEBUG){showStartup();try{const t=`\n──── ${e} ${"─".repeat(Math.max(0,50-e.length))}\n`;C.appendFileSync(Nn,t,"utf-8")}catch{}}}var Fn,qn,jn,Bn=__esm({"src/utils/dlog.ts"(){tn(),In=e.join(y.homedir(),".commandcode","logs"),Nn=e.join(In,"command.log"),Rn={Startup:">",CLI:"$",Config:"#",Auth:"@",Onboarding:"*",LearningAgent:"&",Import:"<",API:"~",Sessions:"+",Observer:"!",Flow:"^",Handler:">",Helper:"-",Codex:"+",UI:"|",Hook:"%",ObserverAPI:"~",ContextEngine:"~",Updater:"^",MCP:"&",default:"-"},__name(getIcon,"getIcon"),__name(formatTime,"formatTime"),__name(parseMessage,"parseMessage"),Mn=!1,__name(showStartup,"showStartup"),"true"===process.env.DEBUG&&showStartup(),__name(dlog,"dlog"),__name(dlogSection,"dlogSection")}}),Un=__esm({"src/auth/codex.ts"(){tn(),$n(),Dn(),jo(),Bn(),(e=>{const t="app_EMoamEEZ73f0CkXaXp7hrann",n="https://auth.openai.com",r="openid profile email offline_access",o="http://localhost:1455/auth/callback";function base64UrlEncode(e){return Buffer.from(e).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function generateRandomString2(e){const t=V.randomBytes(e);let n="";for(let r=0;r<e;r++)n+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~"[t[r]%66];return n}function generatePKCE2(){const e=generateRandomString2(64);return{verifier:e,challenge:base64UrlEncode(V.createHash("sha256").update(e).digest())}}function buildAuthorizeUrl(e,s){const i=new URLSearchParams({response_type:"code",client_id:t,redirect_uri:o,scope:r,code_challenge:e.challenge,code_challenge_method:"S256",id_token_add_organizations:"true",codex_cli_simplified_flow:"true",state:s,originator:"codex_cli_rs"});return`${n}/oauth/authorize?${i.toString()}`}function parseJwtClaims(e){const t=e.split(".");if(3===t.length)try{return JSON.parse(Buffer.from(t[1],"base64url").toString("utf8"))}catch{return}}function extractAccountId(e){const t=[e.id_token,e.access_token].filter(Boolean);for(const e of t){const t=parseJwtClaims(e);if(!t)continue;const n=t.chatgpt_account_id||t["https://api.openai.com/auth"]?.chatgpt_account_id||t.organizations?.[0]?.id;if(n)return n}}async function exchangeCodeForTokens2(e,r,s){const i=await fetch(`${n}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",code:e,redirect_uri:o,client_id:t,code_verifier:r.verifier}).toString(),signal:s});if(!i.ok){const e=await i.text();throw new Error(`Codex token exchange failed: ${i.status} ${e}`)}return i.json()}async function refreshTokens(e){const o=await fetch(`${n}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:e,client_id:t,scope:r}).toString()});if(!o.ok){const e=await o.text();throw new Error(`Codex token refresh failed: ${o.status} ${e}`)}return o.json()}function waitForCallback(e){const{state:t,signal:n}=e;return new Promise((e,r)=>{let o,s,i=!1;const a=__name(()=>{if(s&&clearTimeout(s),o){if(o.listening)try{o.close(()=>{})}catch{}o=void 0}n?.removeEventListener("abort",u)},"cleanup"),l=__name((t,n)=>{i||(i=!0,a(),t?r(t):e(n))},"finish"),u=__name(()=>{l(new Error("Authentication cancelled"))},"onAbort");n?.aborted?r(new Error("Authentication cancelled")):(n?.addEventListener("abort",u,{once:!0}),o=Y(__name((e,n)=>{try{const r=new URL(e.url||"/","http://localhost:1455");if("/auth/callback"!==r.pathname)return n.writeHead(404),void n.end("Not found");const o=r.searchParams.get("code"),s=r.searchParams.get("state"),i=r.searchParams.get("error"),a=r.searchParams.get("error_description");if(i){const e=a||i;return n.writeHead(400,{"Content-Type":"text/html"}),n.end(renderErrorPage(e)),void l(new Error(`Codex OAuth error: ${e}`))}if(!o||!s)return n.writeHead(400,{"Content-Type":"text/html"}),n.end(renderErrorPage("Missing code or state")),void l(new Error("Codex OAuth: missing code or state"));if(s!==t)return n.writeHead(400,{"Content-Type":"text/html"}),n.end(renderErrorPage("State mismatch — possible CSRF attempt")),void l(new Error("Codex OAuth: state mismatch"));n.writeHead(200,{"Content-Type":"text/html"}),n.end("<!doctype html>\n<html>\n <head><title>Command Code — Codex Authorization Successful</title>\n <style>body{font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#0f0f0f;color:#eee}h1{color:#7ee787}</style>\n </head>\n <body><div><h1>Authorization successful</h1><p>You can close this window and return to Command Code.</p></div>\n <script>setTimeout(()=>window.close(),2000)<\/script></body>\n</html>"),l(null,o)}catch(e){n.writeHead(500),n.end("Internal error"),l(e instanceof Error?e:new Error(String(e)))}},"handler")),o.on("error",e=>l(e)),o.listen(1455,"127.0.0.1",()=>{s=setTimeout(()=>{l(new Error("Codex OAuth timed out waiting for browser callback"))},3e5)}))})}function renderSuccessPage(){return"<!doctype html>\n<html>\n <head><title>Command Code — Codex Authorization Successful</title>\n <style>body{font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#0f0f0f;color:#eee}h1{color:#7ee787}</style>\n </head>\n <body><div><h1>Authorization successful</h1><p>You can close this window and return to Command Code.</p></div>\n <script>setTimeout(()=>window.close(),2000)<\/script></body>\n</html>"}function renderErrorPage(e){return`<!doctype html>\n<html>\n <head><title>Command Code — Codex Authorization Failed</title>\n <style>body{font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#0f0f0f;color:#eee}h1{color:#ff7b72}</style>\n </head>\n <body><div><h1>Authorization failed</h1><p>${e.replace(/[&<>]/g,e=>"&"===e?"&amp;":"<"===e?"&lt;":"&gt;")}</p></div></body>\n</html>`}async function refreshAccessToken2(){const e=await Tn.get("codex");if(e&&"oauth"===e.type){if(e.expires>Date.now()+3e5)return e.access;dlog("[Auth] codex: refreshing access token");try{const t=await refreshTokens(e.refresh),n=extractAccountId(t)??e.accountId;return await Tn.set("codex",{type:"oauth",refresh:t.refresh_token||e.refresh,access:t.access_token,expires:Date.now()+1e3*(t.expires_in??3600),...n?{accountId:n}:{}}),t.access_token}catch(e){return void trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"codex_token_refresh_exception"}),context:{component:$o.CODEX_OAUTH,heading:"Codex token refresh exception"}})}}}async function getValidAccessToken2(){const e=await Tn.get("codex");if(e)return"api"===e.type?e.key:"oauth"===e.type?refreshAccessToken2():void 0}async function getAccountId(){const e=await Tn.get("codex");if(e&&"oauth"===e.type)return e.accountId}async function login(e){const{onAuth:t,onProgress:n,signal:r}=e;dlog("[Auth] codex: starting browser oauth flow");const o=generatePKCE2(),s=base64UrlEncode(V.randomBytes(32)),i=buildAuthorizeUrl(o,s),a=waitForCallback({state:s,signal:r});let l;t({authorizeUrl:i}),n?.("Waiting for authorization in browser...");try{l=await a}catch(e){const t=e instanceof Error?e:new Error(String(e));throw trackError({error:sanitizeErrorForTelemetry({error:t,label:"codex_oauth_callback_failed"}),context:{component:$o.CODEX_OAUTH,heading:"Codex oauth callback failed"}}),t}if(r?.aborted)throw new Error("Authentication cancelled");n?.("Exchanging authorization code...");const u=await exchangeCodeForTokens2(l,o,r);if(r?.aborted)throw new Error("Authentication cancelled");if(!u.refresh_token)throw new Error("Codex OAuth: issuer did not return a refresh_token");const d=extractAccountId(u);dlog("[Auth] codex: login success",{hasAccountId:!!d}),await Tn.set("codex",{type:"oauth",refresh:u.refresh_token,access:u.access_token,expires:Date.now()+1e3*(u.expires_in??3600),...d?{accountId:d}:{}})}__name(base64UrlEncode,"base64UrlEncode"),__name(generateRandomString2,"generateRandomString"),__name(generatePKCE2,"generatePKCE"),__name(buildAuthorizeUrl,"buildAuthorizeUrl"),e.parseJwtClaims=parseJwtClaims,__name(parseJwtClaims,"parseJwtClaims"),e.extractAccountId=extractAccountId,__name(extractAccountId,"extractAccountId"),__name(exchangeCodeForTokens2,"exchangeCodeForTokens"),__name(refreshTokens,"refreshTokens"),__name(waitForCallback,"waitForCallback"),__name(renderSuccessPage,"renderSuccessPage"),__name(renderErrorPage,"renderErrorPage"),e.refreshAccessToken=refreshAccessToken2,__name(refreshAccessToken2,"refreshAccessToken"),e.getValidAccessToken=getValidAccessToken2,__name(getValidAccessToken2,"getValidAccessToken"),e.getAccountId=getAccountId,__name(getAccountId,"getAccountId"),e.login=login,__name(login,"login")})(Fn||(Fn={}))}}),zn=__esm({"src/auth/copilot.ts"(){tn(),$n(),Dn(),sn(),jo(),Bn(),(e=>{const t=atob("SXYxLmI1MDdhMDhjODdlY2ZlOTg="),n=["COPILOT_GITHUB_TOKEN","GH_TOKEN","GITHUB_TOKEN"];async function startDeviceFlow(e){const n=e?.domain||"github.com",r=`https://${n}/login/device/code`;dlog("[Auth] startDeviceFlow",{domain:n,url:r});const o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({client_id:t,scope:"read:user"})});if(!o.ok){const e=await o.text(),t=new Error(`Device code request failed: ${e}`);throw trackError({error:sanitizeErrorForTelemetry({error:t,label:"device_flow_start_failed"}),context:{component:$o.COPILOT_OAUTH,heading:"Device code flow start failed"}}),t}const s=await o.json();return dlog("[Auth] startDeviceFlow success",{userCode:s.user_code,interval:s.interval,expiresIn:s.expires_in}),s}async function pollForGitHubAccessToken(e){const{deviceCode:n,interval:r,expiresIn:o,signal:s}=e,i=e.domain||"github.com",a=`https://${i}/login/oauth/access_token`,l=Date.now()+1e3*o;let u=1e3*r;for(dlog("[Auth] pollForGitHubAccessToken started",{domain:i,pollInterval:u,deadline:new Date(l).toISOString()});Date.now()<l;){if(s?.aborted)throw new Error("Authentication cancelled");if(await new Promise((e,t)=>{if(!s)return void setTimeout(e,u);const n=__name(()=>{clearTimeout(r),t(new Error("Authentication cancelled"))},"onAbort"),r=setTimeout(()=>{s.removeEventListener("abort",n),e()},u);s.addEventListener("abort",n,{once:!0})}),s?.aborted)throw new Error("Authentication cancelled");const e=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({client_id:t,device_code:n,grant_type:"urn:ietf:params:oauth:grant-type:device_code"})}),r=await e.json();if("error"in r){if(dlog("[Auth] poll response error",r.error),"authorization_pending"===r.error)continue;if("slow_down"===r.error){u+=5e3,dlog("[Auth] poll slow_down, new interval",u);continue}if("expired_token"===r.error)throw new Error("Device code expired. Please try again.");if("access_denied"===r.error)throw new Error("Authorization was denied. Please try again.");throw new Error(`GitHub OAuth error: ${r.error}`)}if("access_token"in r)return dlog("[Auth] pollForGitHubAccessToken success, got access_token"),r}throw new Error("Device code expired. Please try again.")}async function refreshCopilotToken(e){const{refreshToken:t,enterpriseDomain:n}=e;dlog("[Auth] refreshCopilotToken called",{hasRefreshToken:!!t,enterpriseDomain:n});let r="https://api.github.com/copilot_internal/v2/token";n&&(r=`https://${n}/api/v3/copilot_internal/v2/token`);const o=await fetch(r,{method:"GET",headers:{Authorization:`token ${t}`,Accept:"application/json",...Mt}});if(!o.ok){const e=await o.text(),t=new Error(`Copilot token refresh failed: ${e}`);throw trackError({error:sanitizeErrorForTelemetry({error:t,label:"copilot_token_refresh_failed"}),context:{component:$o.COPILOT_OAUTH,heading:"Copilot token refresh failed"}}),t}const s=await o.json(),i=1e3*s.expires_at-3e5;return dlog("[Auth] refreshCopilotToken success",{expiresAt:new Date(i).toISOString(),refreshIn:s.refresh_in}),{token:s.token,expires:i}}async function refreshAccessToken2(){const e=await Tn.get("github-copilot");if(e&&"oauth"===e.type){if(e.expires>Date.now()+3e5)return dlog("[Auth] refreshAccessToken: token still valid",{expires:new Date(e.expires).toISOString()}),e.access;dlog("[Auth] refreshAccessToken: token expired, refreshing...");try{const t=await refreshCopilotToken({refreshToken:e.refresh});return await Tn.set("github-copilot",{type:"oauth",refresh:e.refresh,access:t.token,expires:t.expires}),t.token}catch(e){return trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"copilot_token_refresh_exception"}),context:{component:$o.COPILOT_OAUTH,heading:"Copilot token refresh exception"}}),void dlog("[Auth] refreshAccessToken: refresh failed, keeping auth for retry")}}else dlog("[Auth] refreshAccessToken: no copilot oauth auth found")}async function getValidAccessToken2(){dlog("[Auth] getValidAccessToken called for copilot");const e=await Tn.get("github-copilot");if(e){if(dlog("[Auth] getValidAccessToken: found stored auth",{type:e.type}),"api"===e.type)return e.key;if("oauth"===e.type)return await refreshAccessToken2()}dlog("[Auth] getValidAccessToken: no stored auth, checking env vars");for(const e of n){const t=process.env[e];if(t)try{const e=await refreshCopilotToken({refreshToken:t});return await Tn.set("github-copilot",{type:"oauth",refresh:t,access:e.token,expires:e.expires}),e.token}catch{continue}}}async function login(e){const{onAuth:t,onProgress:n,signal:r}=e;dlog("[Auth] login: starting copilot device code flow"),n?.("Starting device code flow...");const o=await startDeviceFlow();t({userCode:o.user_code,verificationUri:o.verification_uri}),n?.("Waiting for authorization...");const s=await pollForGitHubAccessToken({deviceCode:o.device_code,interval:o.interval,expiresIn:o.expires_in,signal:r});n?.("Getting Copilot access...");const i=await refreshCopilotToken({refreshToken:s.access_token});dlog("[Auth] login: storing copilot tokens"),await Tn.set("github-copilot",{type:"oauth",refresh:s.access_token,access:i.token,expires:i.expires}),dlog("[Auth] login: copilot login complete")}e.startDeviceFlow=startDeviceFlow,__name(startDeviceFlow,"startDeviceFlow"),e.pollForGitHubAccessToken=pollForGitHubAccessToken,__name(pollForGitHubAccessToken,"pollForGitHubAccessToken"),e.refreshCopilotToken=refreshCopilotToken,__name(refreshCopilotToken,"refreshCopilotToken"),e.refreshAccessToken=refreshAccessToken2,__name(refreshAccessToken2,"refreshAccessToken"),e.getValidAccessToken=getValidAccessToken2,__name(getValidAccessToken2,"getValidAccessToken"),e.login=login,__name(login,"login")})(qn||(qn={}))}});function isWordBoundary(e){return!e||0===e.length||jn.test(e)}function findPreviousWordBoundary(e,t){if(!e||t<=0)return 0;let n=Math.min(t,e.length);for(;n>0&&isWordBoundary(e[n-1]||"");)n--;for(;n>0&&!isWordBoundary(e[n-1]||"");)n--;return n}function findNextWordBoundary(e,t){if(!e)return 0;if(t>=e.length)return e.length;let n=Math.max(0,t);for(;n<e.length&&isWordBoundary(e[n]||"");)n++;for(;n<e.length&&!isWordBoundary(e[n]||"");)n++;return n}function deleteWordBackwards(e,t){if(!e||t<=0)return{text:e||"",cursor:0};const n=findPreviousWordBoundary(e,t);return{text:e.slice(0,n)+e.slice(t),cursor:n}}function clampCursor(e,t){return Math.max(0,Math.min(e,t))}function findLineStart(e,t){if(!e||t<=0)return 0;for(let n=Math.min(t,e.length)-1;n>=0;n--)if("\n"===e[n])return n+1;return 0}function findLineEnd(e,t){if(!e)return 0;if(t>=e.length)return e.length;for(let n=Math.max(0,t);n<e.length;n++)if("\n"===e[n])return n;return e.length}function moveCursorUp(e,t){if(!e)return 0;const n=findLineStart(e,t);if(0===n)return t;const r=t-n,o=n-1,s=findLineStart(e,o),i=o-s;return s+Math.min(r,i)}function moveCursorDown(e,t){if(!e)return 0;const n=findLineStart(e,t),r=findLineEnd(e,t);if(r===e.length)return t;const o=t-n,s=r+1,i=findLineEnd(e,s)-s;return s+Math.min(o,i)}function insertTextAt(e,t,n){const r=e||"",o=clampCursor(t,r.length);return{text:r.slice(0,o)+n+r.slice(o),cursor:o+n.length}}function deleteCharBefore(e,t){return!e||t<=0?{text:e||"",cursor:0}:{text:e.slice(0,t-1)+e.slice(t),cursor:t-1}}function deleteCharAt(e,t){return!e||t>=e.length?{text:e||"",cursor:t}:{text:e.slice(0,t)+e.slice(t+1),cursor:t}}var Hn,Wn,Gn=__esm({"src/utils/text-navigation.ts"(){tn(),jn=/\s|[(){}[\]<>.,;:'"!?+\-=*/\\|&%^$#@~`]/,__name(isWordBoundary,"isWordBoundary"),__name(findPreviousWordBoundary,"findPreviousWordBoundary"),__name(findNextWordBoundary,"findNextWordBoundary"),__name(deleteWordBackwards,"deleteWordBackwards"),__name(clampCursor,"clampCursor"),__name(findLineStart,"findLineStart"),__name(findLineEnd,"findLineEnd"),__name(moveCursorUp,"moveCursorUp"),__name(moveCursorDown,"moveCursorDown"),__name(insertTextAt,"insertTextAt"),__name(deleteCharBefore,"deleteCharBefore"),__name(deleteCharAt,"deleteCharAt")}});function stripBracketedPaste(e){return e.includes(Hn)||e.includes(Wn)?e.replaceAll(Hn,"").replaceAll(Wn,""):null}function processBracketedPasteInput({input:e,value:t,cursor:n}){const r=stripBracketedPaste(e);if(null===r)return{value:t,cursor:n,handled:!1};if(0===r.length)return{value:t,cursor:n,handled:!0};const o=insertTextAt(t,n,r);return{value:o.text,cursor:o.cursor,handled:!0}}function processWordLeft(e,t){return{value:e,cursor:findPreviousWordBoundary(e,t),handled:!0}}function processWordRight(e,t){return{value:e,cursor:findNextWordBoundary(e,t),handled:!0}}function processLineStart(e,t){return{value:e,cursor:findLineStart(e,t),handled:!0}}function processLineEnd(e,t){return{value:e,cursor:findLineEnd(e,t),handled:!0}}function processDeleteWord(e,t){const n=deleteWordBackwards(e,t);return{value:n.text,cursor:n.cursor,handled:!0}}function processDeleteToEnd(e,t){const n=findLineEnd(e,t);return{value:e.slice(0,t)+e.slice(n),cursor:t,handled:!0}}function processDeleteToStart(e,t){const n=findLineStart(e,t);return{value:e.slice(0,n)+e.slice(t),cursor:n,handled:!0}}function processForwardDelete(e,t){const n=deleteCharAt(e,t);return{value:n.text,cursor:n.cursor,handled:!0}}function processBackspace(e,t){const n=deleteCharBefore(e,t);return{value:n.text,cursor:n.cursor,handled:!0}}function processCursorLeft(e,t,n){return n?t<=0?{value:e,cursor:t,handled:!0}:{value:e,cursor:t-1,handled:!0}:{value:e,cursor:t,handled:!0}}function processCursorRight(e,t,n){return n?t>=e.length?{value:e,cursor:t,handled:!0}:{value:e,cursor:t+1,handled:!0}:{value:e,cursor:t,handled:!0}}function processCursorUp(e,t,n){return n?{value:e,cursor:moveCursorUp(e,t),handled:!0}:{value:e,cursor:t,handled:!0}}function processCursorDown(e,t,n){return n?{value:e,cursor:moveCursorDown(e,t),handled:!0}:{value:e,cursor:t,handled:!0}}function processCharacterInput(e,t,n){const r=n.replace(/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]|\x1b.*/g,"");if(0===r.length)return{value:e,cursor:t,handled:!1};const o=insertTextAt(e,t,r);return{value:o.text,cursor:o.cursor,handled:!0}}function processRawInput(e,t,n){return isWordLeftSequence(e)?processWordLeft(t,n):isWordRightSequence(e)?processWordRight(t,n):isHomeSequence(e)?processLineStart(t,n):isEndSequence(e)?processLineEnd(t,n):isCtrlA(e)?processLineStart(t,n):isCtrlE(e)?processLineEnd(t,n):isDeleteWordSequence(e)?processDeleteWord(t,n):isCtrlK(e)?processDeleteToEnd(t,n):isCtrlU(e)?processDeleteToStart(t,n):isForwardDeleteSequence(e)?processForwardDelete(t,n):{value:t,cursor:n,handled:!1}}function isIgnoredKey(e,t){return!(!t.ctrl||"c"!==e)||!!t.tab||!(!t.shift||!t.tab)}function processInkInput(e,t,n,r,o){const s=t;return s.meta&&t.leftArrow?processLineStart(n,r):s.meta&&t.rightArrow?processLineEnd(n,r):s.meta&&"b"===e?processWordLeft(n,r):s.meta&&"f"===e?processWordRight(n,r):t.ctrl&&"a"===e?processLineStart(n,r):t.ctrl&&"e"===e?processLineEnd(n,r):t.ctrl&&"w"===e?processDeleteWord(n,r):t.ctrl&&"k"===e?processDeleteToEnd(n,r):t.ctrl&&"u"===e?processDeleteToStart(n,r):t.leftArrow?processCursorLeft(n,r,o):t.rightArrow?processCursorRight(n,r,o):t.upArrow?processCursorUp(n,r,o):t.downArrow?processCursorDown(n,r,o):t.backspace||t.delete?processBackspace(n,r):!t.ctrl&&!s.meta&&e.length>0?processCharacterInput(n,r,e):{value:n,cursor:r,handled:!1}}var Vn,Qn,Kn,Yn=__esm({"src/tui/text/input-handlers.ts"(){tn(),Gn(),Ln(),Hn="[200~",Wn="[201~",__name(stripBracketedPaste,"stripBracketedPaste"),__name(processBracketedPasteInput,"processBracketedPasteInput"),__name(processWordLeft,"processWordLeft"),__name(processWordRight,"processWordRight"),__name(processLineStart,"processLineStart"),__name(processLineEnd,"processLineEnd"),__name(processDeleteWord,"processDeleteWord"),__name(processDeleteToEnd,"processDeleteToEnd"),__name(processDeleteToStart,"processDeleteToStart"),__name(processForwardDelete,"processForwardDelete"),__name(processBackspace,"processBackspace"),__name(processCursorLeft,"processCursorLeft"),__name(processCursorRight,"processCursorRight"),__name(processCursorUp,"processCursorUp"),__name(processCursorDown,"processCursorDown"),__name(processCharacterInput,"processCharacterInput"),__name(processRawInput,"processRawInput"),__name(isIgnoredKey,"isIgnoredKey"),__name(processInkInput,"processInkInput")}});function startEarlyInputCapture(){Vn||(Vn=!0,Qn=[],Kn=__name(e=>{const t=e.toString();t&&!isControlSequenceToSkip(t)&&Qn.push(t)},"earlyInputHandler"),process.stdin.on("data",Kn))}function stopEarlyInputCapture(){Vn&&Kn&&(process.stdin.off("data",Kn),Kn=null,Vn=!1)}function consumeBufferedInput(){const e=Qn.join("");return Qn=[],e}function hasBufferedInput(){return Qn.length>0}function isControlSequenceToSkip(e){return!!(e.startsWith("[200~")||e.startsWith("[201~")||e.startsWith("")||e.startsWith(""))}var Jn=__esm({"src/utils/early-input-buffer.ts"(){tn(),Vn=!1,Qn=[],Kn=null,__name(startEarlyInputCapture,"startEarlyInputCapture"),__name(stopEarlyInputCapture,"stopEarlyInputCapture"),__name(consumeBufferedInput,"consumeBufferedInput"),__name(hasBufferedInput,"hasBufferedInput"),__name(isControlSequenceToSkip,"isControlSequenceToSkip")}});function useCursorState({value:e,focus:t,showCursor:n,initialCursor:r}){const[o,s]=Z(r??(e||"").length),i=ee(o),a=ee(e);te(()=>{i.current=o},[o]),te(()=>{const r=a.current;if(a.current=e,e===r)return;if(!t)return;if(!n)return;const l=(e||"").length;o>l&&(s(l),i.current=l)},[e,t,n,o]);const l=re(e=>{s(e),i.current=e},[]);return{cursor:o,setCursor:l,cursorRef:i}}function useRawStdinHandler({focus:e,valueRef:t,cursorRef:n,onUpdate:r,setHandled:o,stripBracketedPaste:s=!1}){const i=ee(!1);te(()=>{if(!e)return;const a=process.stdin,l=__name(e=>{o(!0);const t=clampCursor(e.cursor,e.value.length);r(e.value,t),setTimeout(()=>o(!1),0)},"emitStdinResult"),u=__name(e=>{const r=e.toString();if(s){const e=processBracketedPasteInput({input:r,value:t.current,cursor:n.current});if(e.handled)return void l(e)}const o=processRawInput(r,t.current,n.current);o.handled&&l(o)},"handleRawInput");if(a.on("data",u),!i.current&&hasBufferedInput()){i.current=!0;const e=consumeBufferedInput();e&&u(Buffer.from(e))}return stopEarlyInputCapture(),()=>{a.off("data",u)}},[e,t,n,r,o,s])}function useInkInputHandler({focus:e,showCursor:t,valueRef:n,cursorRef:r,isHandledByStdin:o,onUpdate:s,onSubmit:i}){le((e,a)=>{if(o())return;if(isIgnoredKey(e,a))return;if(a.return)return void i?.(n.current);const l=processInkInput(e,a,n.current,r.current,t);if(!l.handled)return;const u=clampCursor(l.cursor,l.value.length);s(l.value,u)},{isActive:e})}function useSyncedRef(e){const t=ee(e);return t.current=e,t}var Xn,Zn,er,tr,nr,rr,sr,ir,ar,lr,cr,ur,dr,mr,pr,gr,hr,fr,yr,wr,Sr,br,Er,Cr,vr=__esm({"src/tui/text/hooks.ts"(){tn(),Gn(),Yn(),Jn(),__name(useCursorState,"useCursorState"),__name(useRawStdinHandler,"useRawStdinHandler"),__name(useInkInputHandler,"useInkInputHandler"),__name(useSyncedRef,"useSyncedRef")}}),kr=__esm({"src/tui/colors.ts"(){tn(),Zn="#E4CCFF",er={BADGE_BG:"#08575B",BADGE_FG:"#f4f4f4",TEXT:"#02888E"},tr="#E4CCFF",nr="#F5B731",rr={REMOVED_BG:"#5C0112",ADDED_BG:"#04473A",REMOVED_TEXT:"#D95A6A",ADDED_TEXT:"#4CC88E",REMOVED_HIGHLIGHT_BG:"#7D2233",ADDED_HIGHLIGHT_BG:"#2E6B4A",LINE_NUM:"#636D83"},sr={BG:"#5945B1",FG:"#f4f4f4"},ir={BG:"#2D2B55",FG:"#E4CCFF"},ar={BG:"#6943FF",FG:"#f4f4f4"},lr={SUCCESS:"#35AD68",ERROR:"#E84057",WARNING:"#F5B731",IN_PROGRESS:"#E4CCFF"},cr="#B1BAF9",ur="#636D83",dr={BG:"#2D2B55",POINTER:"#A599E9"},mr="#A599E9",pr="#F5B731",gr="#8367F4",hr={OPEN:"#F5B731",MERGED:"#A78BFA"},fr="#F49D2A",yr={CODE:"#B1BAF9",HEADING:"#A599E9"},wr=["#A599E9","#E4CCFF","#ABA5CE","#CCC7E1","#FFFFFF","#EADAFF","#ABA5CE","#E4CCFF","#A599E9"],Sr="#6E61A3",br=(Xn={CYAN:"#7AD4D6",GREEN:"#2EBD8E",GRAY:"#636D83",WHITE:"#E5E5E5",YELLOW:"#F5B731",RED:"#E84057",BLUE:"#5945B1",MAGENTA:"#F2608A",DIM:"#636D83",DIMMER:"#4C556A",DIMMEST:"#353D50"}).DIM,Er={TEXT:"#B1BAF9",BG:"#5646AB"}}});function renderPlaceholder(e,t){return t?0===e.length?pe.inverse(" "):pe.inverse(e[0])+Cr(e.slice(1)):Cr(e)}function renderValue(e,t,n){if(!n)return e;if(0===e.length)return pe.inverse(" ");let r="";for(let n=0;n<e.length;n++)n===t?"\n"===e[n]?r+=pe.inverse(" ")+"\n":r+=pe.inverse(e[n]):r+=e[n];return t===e.length&&(r+=pe.inverse(" ")),r}function wrapWithIndent(e,t,n){if(t<=n)return e;const r=" ".repeat(n),o=t-n,s=t;if(ge(e).length<=s)return e;const i=e.split(/(\s+)/);let a="",l=0,u=!0;for(const e of i){const t=ge(e).length;if(l+t>(u?s:o)&&l>0&&(a+="\n"+r,l=n,u=!1),a+=e,l+=t,e.includes("\n")){const t=e.substring(e.lastIndexOf("\n")+1);l=ge(t).length,u=!0}}return a}function getDisplayValue(e,t,n,r,o){const s=r&&o;return t&&0===e.length?renderPlaceholder(t,s):renderValue(e,n,s)}function getMaskedValue(e,t){return t?t.repeat(e.length):e}var Tr,_r=__esm({"src/tui/text/render-utils.ts"(){tn(),kr(),Cr=me.hex(Xn.DIM),__name(renderPlaceholder,"renderPlaceholder"),__name(renderValue,"renderValue"),__name(wrapWithIndent,"wrapWithIndent"),__name(getDisplayValue,"getDisplayValue"),__name(getMaskedValue,"getMaskedValue")}});function createStdinUpdateHandler(e,t,n){return(r,o)=>{e(o),r!==t.current&&(n.current(r),t.current=r)}}function createInkUpdateHandler(e,t,n){return(r,o)=>{e(o),r!==t.current&&(n.current(r),t.current=r)}}function TextInput({value:e,placeholder:t="",focus:n=!0,mask:r,showCursor:o=!0,onChange:s,onSubmit:i,onCursorChange:a,prefix:l="",prefixColor:u,stripBracketedPaste:d=!1,initialCursor:m}){const g=ee(!1),h=useSyncedRef(e),f=useSyncedRef(s),{cursor:y,setCursor:w,cursorRef:S}=useCursorState({value:e,focus:n,showCursor:o,initialCursor:m});J.useEffect(()=>{a?.(y)},[y,a]);const E=re(createStdinUpdateHandler(w,h,f),[w,h,f]),C=re(createInkUpdateHandler(w,h,f),[w,h,f]),v=re(e=>{g.current=e},[]),k=re(()=>g.current,[]);useRawStdinHandler({focus:n,valueRef:h,cursorRef:S,onUpdate:E,setHandled:v,stripBracketedPaste:d}),useInkInputHandler({focus:n,showCursor:o,valueRef:h,cursorRef:S,isHandledByStdin:k,onUpdate:C,onSubmit:i});const{stdout:T}=ae(),_=T?.columns??80,x=getMaskedValue(e,r),P=u?Tr[u]:void 0,A=wrapWithIndent((l?P?P(l):l:"")+getDisplayValue(x,t,y,o,n),_,l?.length??0);return J.createElement(se,{wrap:"wrap"},A)}var xr=__esm({"src/tui/text/text-input.tsx"(){tn(),vr(),_r(),Gn(),Tr={white:pe.white,green:pe.green,red:pe.red,blue:pe.blue,yellow:pe.yellow,cyan:pe.cyan,magenta:pe.magenta,gray:pe.gray,grey:pe.gray},__name(createStdinUpdateHandler,"createStdinUpdateHandler"),__name(createInkUpdateHandler,"createInkUpdateHandler"),__name(TextInput,"TextInput")}});async function compressImageForSharing(e,t="image/png"){try{const n=Buffer.from(e,"base64"),r=n.length,o=he(n),s=await o.metadata();if(!s.width||!s.height)return console.warn("[ImageCompression] Could not determine image dimensions"),null;const i=1200;let a,l,{width:u,height:d}=s;(u>i||d>i)&&(u>d?(d=Math.round(d*i/u),u=i):(u=Math.round(u*i/d),d=i)),t.includes("png")&&s.hasAlpha?(a=await o.resize(u,d,{fit:"inside",withoutEnlargement:!0}).png({quality:95,compressionLevel:4}).toBuffer(),l="image/png"):(a=await o.resize(u,d,{fit:"inside",withoutEnlargement:!0}).jpeg({quality:95,progressive:!0}).toBuffer(),l="image/jpeg");const m=a.length;return{compressedBase64:a.toString("base64"),mediaType:l,originalSizeBytes:r,compressedSizeBytes:m,compressionRatio:r/m}}catch(e){return console.error("[ImageCompression] Failed to compress image:",e),null}}var Pr,Ar=__esm({"src/utils/image-compression.ts"(){tn(),__name(compressImageForSharing,"compressImageForSharing")}});async function detectDroppedImageFile(e){try{if(!e||0===e.trim().length)return null;let t=e.trim();if((t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"'))&&(t=t.slice(1,-1)),t.startsWith("file://")&&(t=decodeURIComponent(t.slice(7))),t=t.replace(/\\(.)/g,"$1"),t.includes("\n")||t.includes("\r"))return null;const n=l(t).toLowerCase(),r=Pr[n];if(!r)return null;const o=a(t);if(!k(o))return null;const s=_(o).toString("base64");if(!s||0===s.length)return null;if(s.length>32e6)return null;const i=await compressImageForSharing(s,r);return i?{data:i.compressedBase64,mediaType:i.mediaType}:null}catch(e){return null}}async function detectClipboardImage(){try{const e=await import("@crosscopy/clipboard");if(!e.default.hasImage())return null;let t=null;try{if(t=await e.default.getImageBase64(),!t){const n=e.default.getImageBase64();t=n&&"function"==typeof n.then?await n:n}}catch(e){return null}if(!t||0===t.length)return null;if(t.length>32e6)return console.log("Image too large:",t.length,"bytes"),null;try{const e=await compressImageForSharing(t,"image/png");return e?{data:e.compressedBase64,mediaType:e.mediaType}:(console.log("Failed to compress clipboard image"),null)}catch(e){return console.log("Failed to process clipboard image:",e),null}}catch(e){return null}}async function detectClipboardText(){try{const e=await import("@crosscopy/clipboard");if(!e.default.hasText())return null;let t=null;try{if(t=await e.default.getText(),!t){const n=e.default.getText();t=n&&"function"==typeof n.then?await n:n}}catch(e){return null}return t&&0!==t.length?t:null}catch(e){return null}}var Ir=__esm({"src/utils/clipboard-image.ts"(){tn(),Ar(),Pr={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".bmp":"image/png",".tiff":"image/png"},__name(detectDroppedImageFile,"detectDroppedImageFile"),__name(detectClipboardImage,"detectClipboardImage"),__name(detectClipboardText,"detectClipboardText")}});function stripBracketedPasteMarkers(e){return e.replace(/\x1B\[200~/g,"").replace(/\[200~/g,"").replace(/\x1B\[201~/g,"").replace(/\[201~/g,"")}function processBracketedPaste(e){const t=e.includes("[200~")||e.includes("[200~"),n=e.includes("[201~")||e.includes("[201~");if(!t&&!n)return{isPasteStart:!1,isPasteEnd:!1,cleanedContent:e};const r=stripBracketedPasteMarkers(e);let o,s;if(t){const t=e.match(/(\x1B)?\[200~/);if(t&&void 0!==t.index){o=e.slice(0,t.index);const r=e.slice(t.index+t[0].length);if(n){const e=r.match(/(\x1B)?\[201~/);e&&void 0!==e.index&&(s=r.slice(0,e.index))}else s=r}}return{isPasteStart:t,isPasteEnd:n,cleanedContent:r,textBeforePaste:o,pastedContent:s}}function enableBracketedPasteMode(){process.stdout.write("[?2004h")}function disableBracketedPasteMode(){process.stdout.write("[?2004l")}var Nr,Rr,Mr,Lr,$r=__esm({"src/utils/bracketed-paste.ts"(){tn(),__name(stripBracketedPasteMarkers,"stripBracketedPasteMarkers"),__name(processBracketedPaste,"processBracketedPaste"),__name(enableBracketedPasteMode,"enableBracketedPasteMode"),__name(disableBracketedPasteMode,"disableBracketedPasteMode")}});async function loadUserConfig(){try{const e=getConfigFile();return parseJSON(await F.readFile(e,"utf-8"))||{}}catch{return{}}}async function saveUserConfig(e){try{const t=getConfigFile();C.writeFileSync(t,JSON.stringify(e,null,2)),C.chmodSync(t,384)}catch(e){throw new Error(`Failed to save user config: ${e}`)}}async function updateUserConfig(e){const t=await loadUserConfig(),n=getConfiguredModel(),r={...t,...e,model:e.model??n};await saveUserConfig(r)}async function isTasteLearningEnabled(){return(await loadUserConfig()).tasteLearning??!0}async function setTasteLearning(e){const{tasteLearning:t}=e;await updateUserConfig({tasteLearning:t})}async function isOAuthEnforced(){if(null!==Nr)return Nr;if(isInternalTeamDisableFlagPresent())return dlog("[Auth] OAuth disabled via --xco flag"),await updateUserConfig({forceOAuth:!1}),Nr=!1,!1;if(isInternalTeamFlagPresent()){dlog("[Auth] OAuth enabled via --co flag");const e=await loadUserConfig(),t=await resolveOAuthProvider({currentProvider:e.provider});return dlog("[Auth] --co resolved provider",t),await updateUserConfig({provider:t,forceOAuth:!0}),Nr=!0,!0}const e=await loadUserConfig();return(Nr=e.forceOAuth??!1)&&dlog("[Auth] using OAuth (persisted from previous --co)"),Nr}async function resolveOAuthProvider(e){const{currentProvider:t}=e;if(t&&Mr.includes(t))return t;const n=await Tn.get("github-copilot"),r=await Tn.get("codex"),o=(await Tn.get("anthropic"),n?"github-copilot":r?"codex":"anthropic");return dlog("[Auth] resolveOAuthProvider fallback",{from:t,to:o}),o}function validateOAuthToken(e){const{token:t,provider:n}=e;if(n&&Mr.includes(n)&&!t)throw new Error(xn)}async function getOAuthCredentials(e){const{provider:t}=e;return"anthropic"===t?{token:await An.getValidAccessToken(),oauthProvider:"anthropic"}:"github-copilot"===t?{token:await qn.getValidAccessToken(),oauthProvider:"github-copilot"}:"codex"===t?{token:await Fn.getValidAccessToken(),oauthProvider:"codex"}:{token:void 0,oauthProvider:void 0}}async function getSelectedModel(){return(await loadUserConfig()).model??Gt}function setModelOverride(e){Lr=e}function getConfiguredModel(){if(Lr)return Lr;try{const e=getConfigFile();return(parseJSON(C.readFileSync(e,"utf-8"))||{}).model??Gt}catch{return Gt}}async function setSelectedModel(e){const{model:t}=e;await updateUserConfig({model:t})}function isExperimentalEnabled(){return process.argv.includes("--experimental")}async function migrateDeprecatedModel(){try{const e=await loadUserConfig();if(!e.model)return;const t=Wt[e.model];if(!t)return;dlog(`[Migration] Upgrading model ${e.model} → ${t}`),await saveUserConfig({...e,model:t})}catch(e){dlog(`[Migration] Failed to migrate model: ${e}`)}}function getCompactMode(){if(null!==Rr)return Rr;try{const e=getConfigFile(),t=(parseJSON(C.readFileSync(e,"utf-8"))||{}).compactMode;return Rr="default"===t||"fast"===t?t:"default"}catch{return Rr="default","default"}}async function setCompactMode(e){const{mode:t}=e;Rr=t,await updateUserConfig({compactMode:t})}var Dr,Or,Fr=__esm({"src/utils/user-config.ts"(){tn(),sn(),un(),$n(),On(),Un(),zn(),Dn(),Bn(),Vr(),Qr(),__name(loadUserConfig,"loadUserConfig"),__name(saveUserConfig,"saveUserConfig"),__name(updateUserConfig,"updateUserConfig"),__name(isTasteLearningEnabled,"isTasteLearningEnabled"),__name(setTasteLearning,"setTasteLearning"),Nr=null,Rr=null,__name(isOAuthEnforced,"isOAuthEnforced"),Mr=["anthropic","github-copilot","codex"],__name(resolveOAuthProvider,"resolveOAuthProvider"),__name(validateOAuthToken,"validateOAuthToken"),__name(getOAuthCredentials,"getOAuthCredentials"),__name(getSelectedModel,"getSelectedModel"),__name(setModelOverride,"setModelOverride"),__name(getConfiguredModel,"getConfiguredModel"),__name(setSelectedModel,"setSelectedModel"),__name(isExperimentalEnabled,"isExperimentalEnabled"),__name(migrateDeprecatedModel,"migrateDeprecatedModel"),__name(getCompactMode,"getCompactMode"),__name(setCompactMode,"setCompactMode")}}),qr=__esm({"src/tui/terminal-link.tsx"(){tn(),kr(),Dr=__name(({url:e,text:t,dimColor:n=!1,color:r})=>{const o=`]8;;${e}${t}]8;;`,s=r??(n?Xn.DIM:void 0);return J.createElement(se,{dimColor:n&&!!r,color:s},o)},"TerminalLink")}}),jr=__esm({"src/tui/anthropic-auth.tsx"(){tn(),xr(),On(),Dn(),Ir(),$r(),Fr(),kr(),qr(),Or=__name(({onSuccess:e,onCancel:t,onFailure:n})=>{const[r,o]=Z(""),[s,i]=Z(null),[a,l]=Z(!1),[u,d]=Z(null),[m,g]=Z(!0),[h,f]=Z(!1),[y,w]=Z(!1);te(()=>{const{url:e,verifier:t,state:n}=An.createAuthorizationUrl();i({url:e,verifier:t,state:n})},[]);const S=re(async e=>{const t=processBracketedPaste(e);if(!t.isPasteStart||y){if(!y||t.isPasteEnd){if(y&&t.isPasteEnd){w(!1);const e=await detectClipboardText();if(e){const t=e.split("#")[0].trim();return void o(t)}if(t.cleanedContent){const e=t.cleanedContent.split("#")[0].trim();o(e)}return}o(e)}}else if(w(!0),t.isPasteEnd){w(!1);const e=await detectClipboardText();if(e){const t=e.split("#")[0].trim();return void o(t)}if(t.cleanedContent){const e=t.cleanedContent.split("#")[0].trim();o(e)}return}},[y]);le((e,n)=>{if(n.escape&&t(),m&&!h)if(n.return||"y"===e||"Y"===e){if(!s)return;fe(s.url).then(()=>{f(!0),g(!1)}).catch(()=>{d(`Failed to open browser. Please manually open: ${s.url}`),f(!0),g(!1)})}else"n"!==e&&"N"!==e||t()});const E=__name(async()=>{if(r.trim()&&s&&!a){l(!0),d(null);try{const t=r.split("#")[0].trim();await An.exchangeCodeForTokens(t,s.verifier,s.state),await updateUserConfig({provider:"anthropic"}),e()}catch(e){const t=e instanceof Error?e.message:"Authentication failed";d(t),l(!1),n&&n(t)}}},"handleSubmit");return m&&!h?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"Anthropic Authentication")),J.createElement(oe,{marginBottom:1},J.createElement(se,null,"Open the Anthropic auth page?",J.createElement(se,{color:Xn.DIM}," (Y/n)")))):J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"Anthropic Authentication")),s&&J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"Login: "),J.createElement(Dr,{url:s.url,text:"Open auth page ↗",color:Xn.CYAN})),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"After authorizing, copy the code and paste it below:")),u&&J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.RED},"Error: ",u)),J.createElement(oe,null,J.createElement(se,null,"Authorization code: "),J.createElement(TextInput,{mask:"*",focus:!0,value:r,onChange:S,onSubmit:E,placeholder:"Paste code here..."})),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press Enter to submit or ESC to cancel")))},"AnthropicAuth")}});function createOSC8Link(e,t,n=!0){return`${n?"":""}]8;;${e}${t||e}]8;;${n?"":""}`}var Br,Ur,zr,Hr=__esm({"src/utils/osc8-link.ts"(){tn(),__name(createOSC8Link,"createOSC8Link")}}),Wr=__esm({"src/tui/codex-auth.tsx"(){tn(),Un(),Dn(),Fr(),Hr(),kr(),Br=__name(({onSuccess:e,onCancel:t,onFailure:n})=>{const[r,o]=Z("confirm"),[s,i]=Z(""),[a,l]=Z(null),[u,d]=Z(""),m=ee(null),g=re(async()=>{const t=new AbortController;m.current=t;try{await Fn.login({onAuth:__name(({authorizeUrl:e})=>{i(e),o("waiting"),fe(e).catch(()=>{})},"onAuth"),onProgress:__name(e=>{d(e),e.startsWith("Exchanging")&&o("exchanging")},"onProgress"),signal:t.signal}),await updateUserConfig({provider:"codex"}),o("success"),e()}catch(e){if(t.signal.aborted)return;const r=e instanceof Error?e.message:"Authentication failed";l(r),o("error"),n?.(r)}},[e,n]);return te(()=>()=>{m.current?.abort()},[]),le((e,n)=>{if(n.escape)return m.current?.abort(),void t();if("confirm"===r){if(n.return||"y"===e||"Y"===e)return void g();"n"!==e&&"N"!==e||t()}}),"confirm"===r?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"ChatGPT (Codex) Authentication")),J.createElement(oe,{marginBottom:1},J.createElement(se,null,"This will open your browser to sign in with ChatGPT.")),J.createElement(oe,{marginBottom:1},J.createElement(se,null,"Continue?",J.createElement(se,{color:Xn.DIM}," (Y/n)")))):"waiting"===r||"exchanging"===r?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"ChatGPT (Codex) Authentication")),J.createElement(oe,{marginBottom:1},J.createElement(se,null,createOSC8Link(s,"Open auth page ↗"))),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},u||"Waiting for authorization...")),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"Press ESC to cancel"))):"error"===r?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"ChatGPT (Codex) Authentication")),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.RED},"Error: ",a)),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"Press ESC to go back"))):null},"CodexAuth")}}),Gr=__esm({"src/tui/copilot-auth.tsx"(){tn(),zn(),Dn(),Fr(),kr(),Ur=__name(({onSuccess:e,onCancel:t,onFailure:n})=>{const[r,o]=Z("confirm"),[s,i]=Z(""),[a,l]=Z(""),[u,d]=Z(null),[m,g]=Z(""),h=ee(null),f=re(async()=>{const t=new AbortController;h.current=t;try{await qn.login({onAuth:__name(({userCode:e,verificationUri:t})=>{i(e),l(t),o("device-code"),fe(t).catch(()=>{})},"onAuth"),onProgress:__name(e=>{g(e),"Waiting for authorization..."===e&&o("polling")},"onProgress"),signal:t.signal}),await updateUserConfig({provider:"github-copilot"}),o("success"),e()}catch(e){if(t.signal.aborted)return;const r=e instanceof Error?e.message:"Authentication failed";d(r),o("error"),n&&n(r)}},[e,n]);return te(()=>()=>{h.current?.abort()},[]),le((e,n)=>{if(n.escape)return h.current?.abort(),void t();if("confirm"===r){if(n.return||"y"===e||"Y"===e)return void f();"n"!==e&&"N"!==e||t()}}),"confirm"===r?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"GitHub Copilot Authentication")),J.createElement(oe,{marginBottom:1},J.createElement(se,null,"This will open GitHub to authorize Copilot access.")),J.createElement(oe,{marginBottom:1},J.createElement(se,null,"Continue?",J.createElement(se,{color:Xn.DIM}," (Y/n)")))):"device-code"===r||"polling"===r?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"GitHub Copilot Authentication")),J.createElement(oe,{marginBottom:1},J.createElement(se,null,"Enter this code on GitHub:"," ",J.createElement(se,{bold:!0,color:Xn.GREEN},s))),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"Open: ",a)),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"polling"===r?"Waiting for authorization...":m||"Starting...")),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"Press ESC to cancel"))):"error"===r?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"GitHub Copilot Authentication")),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.RED},"Error: ",u)),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"Press ESC to go back"))):null},"CopilotAuth")}});function getProviderDisplayName(e){return e?Qt[e]?.label??e:"None"}function getProviderConfig(e){return zr[e]}function isInternalTeamFlagPresent(){return process.argv.includes(_t)}function isInternalTeamDisableFlagPresent(){return process.argv.includes(xt)}function isInternalTeamFlagEnforced(){if(isInternalTeamDisableFlagPresent())return!1;if(isInternalTeamFlagPresent())return!0;try{const e=getConfigFile();return(parseJSON(C.readFileSync(e,"utf-8"))||{}).forceOAuth??!1}catch{return!1}}function getProviderOptions(){const e=isInternalTeamFlagEnforced();return Object.values(zr).filter(t=>!t.hidden||e).map(e=>({label:`${e.displayName} (${e.description})`,value:e.id}))}var Vr=__esm({"src/utils/provider-config.ts"(){tn(),sn(),On(),Un(),zn(),jr(),Wr(),Gr(),un(),Qr(),(zr=Object.fromEntries(Object.values(Qt).map(e=>[e.id,{id:e.id,displayName:e.label,description:e.description,requiresAuth:e.requiresAuth,hidden:!e.visibleInNormalMode}]))).anthropic&&(zr.anthropic.authComponent=Or,zr.anthropic.checkAuth=async()=>!!await An.getValidAccessToken()),zr["github-copilot"]&&(zr["github-copilot"].authComponent=Ur,zr["github-copilot"].checkAuth=async()=>!!await qn.getValidAccessToken()),zr.codex&&(zr.codex.authComponent=Br,zr.codex.checkAuth=async()=>!!await Fn.getValidAccessToken()),__name(getProviderDisplayName,"getProviderDisplayName"),__name(getProviderConfig,"getProviderConfig"),__name(isInternalTeamFlagPresent,"isInternalTeamFlagPresent"),__name(isInternalTeamDisableFlagPresent,"isInternalTeamDisableFlagPresent"),__name(isInternalTeamFlagEnforced,"isInternalTeamFlagEnforced"),__name(getProviderOptions,"getProviderOptions")}});function isInternalTeamDisableOAuthFlagPresent(){return process.argv.includes(xt)}function formatDate(e=new Date){return e.toISOString().split("T")[0]}function parseJSON(e){try{return JSON.parse(e)}catch{return null}}async function getConfiguredProvider(){try{const e=getConfigFile(),t=await q.readFile(e,"utf-8"),n=JSON.parse(t),r=n.provider||null,o=n.forceOAuth||!1,s=isInternalTeamFlagPresent();if(isInternalTeamDisableOAuthFlagPresent())return await updateUserConfig({provider:Qt["command-code"].id,forceOAuth:!1}),Qt["command-code"].id;if(s||o){if(r)return await updateUserConfig({forceOAuth:!0}),r;const e=await resolveOAuthProvider({currentProvider:r});return await updateUserConfig({provider:e,forceOAuth:!0}),e}return r}catch{return null}}function getIsExpandToolShortcut(e,t){const n=getIsTerminalIterm2();return!(!n||!e.shift||"O"!==t)||!(n||!isCtrlKey({inputChar:t,key:e,letter:"o",ctrlCode:15}))}function formatTime2(e){return e<60?`${e}s`:`${Math.floor(e/60)}m ${e%60}s`}function formatTokens(e){return e<1e3?`${e} tokens`:`${(e/1e3).toFixed(1)}k tokens`}var Qr=__esm({"src/utils/utils.ts"(){tn(),sn(),un(),kn(),Ln(),Vr(),Fr(),__name(isInternalTeamDisableOAuthFlagPresent,"isInternalTeamDisableOAuthFlagPresent"),__name(formatDate,"formatDate"),__name(parseJSON,"parseJSON"),__name(getConfiguredProvider,"getConfiguredProvider"),__name(getIsExpandToolShortcut,"getIsExpandToolShortcut"),__name(formatTime2,"formatTime"),__name(formatTokens,"formatTokens")}});function isLocalDevelopmentBuild(){try{const e=process.argv[1];if(!e)return!1;if(e.includes("/usr/local/bin/dmd"))return!0;const t=v.realpathSync(e);return!(!t.includes("/dist/index.mjs")||t.includes("node_modules"))}catch{return!1}}var Kr=__esm({"src/utils/is-local-dev.ts"(){tn(),__name(isLocalDevelopmentBuild,"isLocalDevelopmentBuild")}});function getTelemetryEnv(){return isLocalDevelopmentBuild()?"local":on()}function getAxiomToken(){switch(getTelemetryEnv()){case"staging":return bt;case"local":return Et;default:return St}}function isTelemetryEnabled(){if("1"===process.env.DO_NOT_TRACK||"true"===process.env.DO_NOT_TRACK)return!1;try{const e=getConfigFile();return!1!==(parseJSON(C.readFileSync(e,"utf-8"))||{}).telemetry}catch{return!0}}function hasAxiomToken(){return Boolean(getAxiomToken())}var Yr=__esm({"src/utils/telemetry/config.ts"(){tn(),un(),Qr(),an(),Kr(),rn(),rn(),__name(getTelemetryEnv,"getTelemetryEnv"),__name(getAxiomToken,"getAxiomToken"),__name(isTelemetryEnabled,"isTelemetryEnabled"),__name(hasAxiomToken,"hasAxiomToken")}}),Jr={};function getPackageJson(){const e=import.meta.url,t=d(e);let s=r(t);const{root:i}=o(s);for(;;){const e=n(s,"package.json");if(k(e))return JSON.parse(_(e,"utf8"));if(s===i)throw new Error("Could not find package.json");s=r(s)}}__export(Jr,{getPackageJson:()=>getPackageJson});var Xr,Zr,eo,to,no,ro,oo=__esm({"src/utils/package.ts"(){tn(),__name(getPackageJson,"getPackageJson")}});function createAxiomExporter(){return new Zr({url:wt,headers:{Authorization:`Bearer ${getAxiomToken()}`,"X-Axiom-Dataset":yt}})}function createServiceResource(){const e=getPackageJson(),t=process.execPath.split("/").pop()||"unknown";return eo({[to]:Ct,[no]:e.version,"process.executable.name":t,"process.runtime.name":"node","process.runtime.version":process.version,"process.pid":process.pid})}function createTelemetrySDK(){const e=createAxiomExporter(),t=createServiceResource();return new Xr({resource:t,spanProcessors:[new ro(e)],autoDetectResources:!1})}var so,io,ao,lo,co,uo=__esm({"src/utils/telemetry/sdk-factory.ts"(){tn(),rn(),Yr(),oo(),({NodeSDK:Xr}=ye),({OTLPTraceExporter:Zr}=we),({resourceFromAttributes:eo}=Se),({ATTR_SERVICE_NAME:to,ATTR_SERVICE_VERSION:no}=be),({SimpleSpanProcessor:ro}=Ee),__name(createAxiomExporter,"createAxiomExporter"),__name(createServiceResource,"createServiceResource"),__name(createTelemetrySDK,"createTelemetrySDK")}});function generateSessionId(){return`sess_${Te().replace(/-/g,"").substring(0,16)}`}function hashPath(e){return G.createHash("sha256").update(e).digest("hex").substring(0,12)}function getCliVersion(){try{const e=getPackageJson();if("string"==typeof e.version&&""!==e.version.trim())return e.version}catch{}return"unknown"}function buildSessionAttributes(e){const{sessionId:t,projectPath:n,gitBranch:r,cliVersion:o}=e;return{"session.id":t,"session.start_time":(new Date).toISOString(),"session.project_hash":hashPath(n),"session.branch_hash":r?hashPath(r):"unknown","session.cli_version":o,"session.platform":`${y.platform()}-${y.arch()}`,"session.node_version":process.version}}function startSession(){co={},io=null,ao=null,so=generateSessionId(),lo=Date.now();try{const e=Ce.getTracer(Ct),t=getCliVersion(),n=getCurrentWorkingDirectory(),r=getCurrentBranch(),o=buildSessionAttributes({sessionId:so,projectPath:n,gitBranch:r,cliVersion:t});io=e.startSpan("session:cli",{attributes:o}),ao=io.spanContext(),io.end()}catch{io=null,ao=null}return so}function getSessionId(){return so}function getTraceId(){return ao?ao.traceId:null}function getSessionContext(){return ao?Ce.setSpanContext(ke.active(),ao):ke.active()}function endSession(e={}){const{status:t="success"}=e;if(ao&&lo){const e=Ce.getTracer(Ct),n=Date.now()-lo,r=Ce.setSpanContext(ke.active(),ao),o=e.startSpan("session:end",{attributes:{"session.id":so||"unknown","session.duration_ms":n,"session.end_time":(new Date).toISOString(),"session.status":t,...co}},r);"error"===t?o.setStatus({code:ve.ERROR}):o.setStatus({code:ve.OK}),o.end()}io=null,ao=null,so=null,lo=null,co={}}var mo=__esm({"src/utils/telemetry/session.ts"(){tn(),rn(),oo(),kn(),so=null,io=null,ao=null,lo=null,co={},__name(generateSessionId,"generateSessionId"),__name(hashPath,"hashPath"),__name(getCliVersion,"getCliVersion"),__name(buildSessionAttributes,"buildSessionAttributes"),__name(startSession,"startSession"),__name(getSessionId,"getSessionId"),__name(getTraceId,"getTraceId"),__name(getSessionContext,"getSessionContext"),__name(endSession,"endSession")}});function setSpanStatus(e,t){"error"===t?e.setStatus({code:ve.ERROR}):e.setStatus({code:ve.OK})}function createSpan(e){const{name:t,attributes:n}=e,r=Ce.getTracer(Ct),o=getSessionContext();return r.startSpan(t,{attributes:n},o)}function endSpan(e){const{span:t,status:n="success"}=e;setSpanStatus(t,n),t.end()}function recordError(e){const{span:t,error:n,additionalAttributes:r}=e;if(t.recordException(n),t.setStatus({code:ve.ERROR,message:n.message}),t.setAttribute("error.type",n.name),t.setAttribute("error.message",n.message),n.stack&&t.setAttribute("error.stack",n.stack),r)for(const[e,n]of Object.entries(r))void 0!==n&&t.setAttribute(e,n)}var po,ho,fo,yo,wo,So,bo,Eo,Co,vo,ko,To,_o,xo,Po,Ao,Io,No,Ro=__esm({"src/utils/telemetry/spans.ts"(){tn(),rn(),mo(),__name(setSpanStatus,"setSpanStatus"),__name(createSpan,"createSpan"),__name(endSpan,"endSpan"),__name(recordError,"recordError")}});function dedentText(e){const t=e.split("\n");let n=1/0;for(const e of t){if(0===e.trim().length)continue;const t=e.length-e.trimStart().length;t>0&&t<n&&(n=t)}return n===1/0||0===n?e:t.map(e=>0===e.trim().length?e:e.length-e.trimStart().length>=n?e.slice(n):e).join("\n")}function getEffectiveWidth({padding:e=So}={}){let t=80;return process.stdout.columns?t=process.stdout.columns:process.stderr.columns?t=process.stderr.columns:process.env.COLUMNS&&(t=Number(process.env.COLUMNS)),Math.max(40,t-e)}function truncateString({text:e,maxChars:t}){return e.length<=t?e:t<=3?e.slice(0,t):`${e.slice(0,t-3)}...`}function truncateCommand({command:e}){const t=e.replace(/\/Users\/[^/]+/g,"~").replace(/\/home\/[^/]+/g,"~").replace(/C:\\Users\\[^\\]+/g,"~");if(t.length<=bo)return t;if(t.includes(" && ")){const e=t.split(" && ")[0].trim();return e.length<=bo-5?`${e} && ...`:truncateString({text:e,maxChars:bo})}return truncateString({text:t,maxChars:bo})}function truncateToVisualLines({output:e,maxVisualLines:t=po,padding:n=So,maxChars:r}){const o=getEffectiveWidth({padding:n}),s=r??t*o,i=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n").replace(/\u00A0/g," ").trim().split("\n");let a=0,l=i.length;for(let e=0;e<i.length;e++){const n=i[e];if(0===n.trim().length)continue;const r=Math.max(1,Math.ceil(n.length/o));if(!(a+r<=t)){l=Math.max(1,e);break}a+=r}const u=l<i.length,d=i.slice(l).reduce((e,t)=>e+Math.max(1,Math.ceil(t.length/o)),0),m=i.slice(0,l).filter(e=>e.trim().length>0).join("\n");if(m.length>s){const e=m.slice(0,s-3).trimEnd(),t=e.lastIndexOf("\n"),n=t>0?e.slice(0,t):e;return{text:u?n:`${n}...`,isTruncated:!0,remainingLines:d}}return{text:m,isTruncated:u,remainingLines:d}}var Mo=__esm({"src/utils/truncation.ts"(){tn(),po=2,ho=10,fo=10,yo=10,wo=20,So=4,bo=100,Eo=100,Co=50,vo=100,ko=60,To=80,_o=2,xo=1e5,Po=5e4,Ao=25e3,Io=1e3,No=200,__name(dedentText,"dedentText"),__name(getEffectiveWidth,"getEffectiveWidth"),__name(truncateString,"truncateString"),__name(truncateCommand,"truncateCommand"),__name(truncateToVisualLines,"truncateToVisualLines")}});function isSecretKey(e){const t=e.toLowerCase();return vt.some(e=>t.includes(e))}function isContentKey(e){const t=e.toLowerCase();return kt.some(e=>t.includes(e))}function safeStringify(e){try{return JSON.stringify(e)}catch{return"[Unserializable]"}}function truncateString2(e){return e.length<=No?e:`${e.substring(0,No-3)}...`}function normalizeError(e){return e instanceof Error?e:new Error(String(e))}function sanitizeErrorForTelemetry(e){const{error:t,label:n="error"}=e,r=new Error(n);return r.name=t.name||"Error",r}function sanitizeValue(e){const{value:t,key:n,visited:r}=e;if(isContentKey(n)||isSecretKey(n))return"[redacted]";if(null==t)return t;if("string"==typeof t)return t.length>No?truncateString2(t):t;if("number"==typeof t||"boolean"==typeof t)return t;if("object"==typeof t){if(r.has(t))return"[Circular]";if(r.add(t),Array.isArray(t))return t.map((e,t)=>sanitizeValue({value:e,key:String(t),visited:r}));const e={};for(const[n,o]of Object.entries(t))e[n]=sanitizeValue({value:o,key:n,visited:r});return e}return"[Unsupported]"}function sanitizeParams(e){const t=new WeakSet;t.add(e);const n={};for(const[r,o]of Object.entries(e))n[r]=sanitizeValue({value:o,key:r,visited:t});return n}function sanitizeEndpoint(e){return e.split("?")[0]}var Lo=__esm({"src/utils/telemetry/sanitization.ts"(){tn(),rn(),Mo(),__name(isSecretKey,"isSecretKey"),__name(isContentKey,"isContentKey"),__name(safeStringify,"safeStringify"),__name(truncateString2,"truncateString"),__name(normalizeError,"normalizeError"),__name(sanitizeErrorForTelemetry,"sanitizeErrorForTelemetry"),__name(sanitizeValue,"sanitizeValue"),__name(sanitizeParams,"sanitizeParams"),__name(sanitizeEndpoint,"sanitizeEndpoint")}});function createTrackingHandle(e){const{span:t,startTime:n,durationAttr:r,statusAttr:o}=e;return{span:t,end:__name(e=>{const s=Date.now()-n;if(t.setAttribute(r,s),"status"in e)t.setAttribute(o,e.status),e.error&&recordError({span:t,error:e.error}),endSpan({span:t,status:e.status});else{const{statusCode:n,error:r,errorBody:o}=e;if(t.setAttribute("http.status_code",n),o){const e="string"==typeof o?o:safeStringify(o);t.setAttribute("http.response_body",e.substring(0,Tt))}r?(recordError({span:t,error:r}),endSpan({span:t,status:"error"})):endSpan({span:t,status:n>=400?"error":"success"})}},"end")}}function trackToolStart(e){const{toolName:t,params:n}=e;return createTrackingHandle({span:createSpan({name:`tool:${t}`,attributes:{"tool.name":t,"tool.params":safeStringify(n?sanitizeParams(n):{})}}),startTime:Date.now(),durationAttr:"tool.duration_ms",statusAttr:"tool.status"})}function trackError(e){const{error:t,context:n}=e,r=normalizeError(t),{component:o,heading:s,code:i,...a}=n,l={"error.type":r.name,"error.message":r.message,"error.component":o,"error.heading":s};void 0!==i&&(l["error.code"]=String(i));for(const[e,t]of Object.entries(a))null!=t&&(l[e]="object"==typeof t?safeStringify(t):String(t));const u=createSpan({name:`error:${r.name}`,attributes:l});recordError({span:u,error:r}),u.end()}function trackAPICallStart(e){const{method:t,endpoint:n,cliVersion:r}=e,o=sanitizeEndpoint(n);return createTrackingHandle({span:createSpan({name:`api:${t}:${o}`,attributes:{"http.method":t,"http.url":o,...r?{"cli.version":r}:{}}}),startTime:Date.now(),durationAttr:"http.duration_ms",statusAttr:"http.status"})}function getSupportId(){const e=getTraceId();return e?`req_${e}`:"unknown"}function systemInfo(e){const{userName:t,userId:n,orgLogin:r,orgId:o,nodeVersion:s,platform:i,arch:a}=e,l={"whoami.node_version":s,"whoami.platform":i,"whoami.arch":a,"whoami.os":`${i}-${a}`};t&&(l["whoami.user_name"]=t),n&&(l["whoami.user_id"]=n),r&&(l["whoami.org_login"]=r),o&&(l["whoami.org_id"]=o),endSpan({span:createSpan({name:"whoami",attributes:l}),status:"success"})}var $o,Do,Oo,Fo=__esm({"src/utils/telemetry/events.ts"(){tn(),Ro(),mo(),rn(),Lo(),Lo(),__name(createTrackingHandle,"createTrackingHandle"),__name(trackToolStart,"trackToolStart"),__name(trackError,"trackError"),__name(trackAPICallStart,"trackAPICallStart"),__name(getSupportId,"getSupportId"),__name(systemInfo,"systemInfo")}}),qo=__esm({"src/utils/telemetry/components.ts"(){tn(),$o={AUTH_FLOW:"auth-flow",ANTHROPIC_OAUTH:"anthropic-oauth",COPILOT_OAUTH:"copilot-oauth",CODEX_OAUTH:"codex-oauth",ANTHROPIC_CLIENT:"anthropic-client",UNHANDLED_REJECTION:"unhandled-rejection",UNCAUGHT_EXCEPTION:"uncaught-exception",SESSION_MANAGER:"session-manager",UPDATE_COMMAND:"update-command",LEARN_TASTE_COMMAND:"learn-taste-command",LEARNING_AGENT:"learning-agent",TASTE_REMOTE_STORAGE:"taste-remote-storage",CHECKPOINT_MANAGER:"checkpoint-manager",FILE_HISTORY:"file-history",API_REQUEST:"api-request",CONTEXT_ENGINE:"context-engine",CLI_ERROR_HANDLER:"cli-error-handler"}}});function initTelemetry(){if(Oo)return!0;if(!isTelemetryEnabled())return!1;if(!hasAxiomToken())return!1;try{return(Do=createTelemetrySDK()).start(),Oo=!0,!0}catch{return Do=null,Oo=!1,!1}}async function shutdownTelemetry(){if(Do&&Oo)try{endSession(),await Do.shutdown()}catch{}finally{Do=null,Oo=!1}}function shutdownTelemetrySync(){if(Oo)try{endSession()}catch{}}function isTelemetryInitialized(){return Oo}var jo=__esm({"src/utils/telemetry/telemetry.ts"(){tn(),uo(),Yr(),mo(),Ro(),Fo(),qo(),Do=null,Oo=!1,__name(initTelemetry,"initTelemetry"),__name(shutdownTelemetry,"shutdownTelemetry"),__name(shutdownTelemetrySync,"shutdownTelemetrySync"),__name(isTelemetryInitialized,"isTelemetryInitialized")}});async function readAuthFile(e){try{const t=getAuthFile(e),n=await q.readFile(t,"utf-8");return JSON.parse(n)}catch{return null}}async function getAuthKey(e){const t=await readAuthFile(e);return t&&t.apiKey||null}async function getUserName(e){const t=await readAuthFile(e);return t&&t.userName||""}async function checkAuthStatus(e){const t=await readAuthFile(e);return t&&t.apiKey?{authenticated:!0,apiKey:t.apiKey,userName:t.userName}:{authenticated:!1,apiKey:null}}var Bo=__esm({"src/utils/auth/auth-file.ts"(){tn(),un(),__name(readAuthFile,"readAuthFile"),__name(getAuthKey,"getAuthKey"),__name(getUserName,"getUserName"),__name(checkAuthStatus,"checkAuthStatus")}});function isGenericUserName(e){return!e||"API Key"===e||"Manual API Key"===e}function formatUserSuffix(e){return isGenericUserName(e)?"":` as ${e}`}function formatAlreadyLoggedIn(e){return`Already logged in${formatUserSuffix(e)}`}function formatLogoutSuccess(e){return isGenericUserName(e)?"Logged out successfully":`Logged out as ${e}`}function formatNotAuthenticated(){return"Not currently authenticated"}function formatLogoutFailed(e){return`Logout failed: ${e}`}function formatLogoutWarnings(e){return 0===e.length?"":`Warnings: ${e.join(", ")}`}function formatAuthCancelled(){return"Authentication cancelled"}var Uo,zo=__esm({"src/utils/auth/auth-messages.ts"(){tn(),__name(isGenericUserName,"isGenericUserName"),__name(formatUserSuffix,"formatUserSuffix"),__name(formatAlreadyLoggedIn,"formatAlreadyLoggedIn"),__name(formatLogoutSuccess,"formatLogoutSuccess"),__name(formatNotAuthenticated,"formatNotAuthenticated"),__name(formatLogoutFailed,"formatLogoutFailed"),__name(formatLogoutWarnings,"formatLogoutWarnings"),__name(formatAuthCancelled,"formatAuthCancelled")}});async function statusAction(){const e=Ae("Checking authentication status...").start();try{const t=on(),n=await checkAuthStatus(t);n.error&&(e.fail(pe.red(`Status check failed: ${n.error}`)),process.exit(1)),n.authenticated||(e.fail(pe.red("Not authenticated")),console.log(""),console.log(`${pe.dim("Run")} ${pe.cyan("cmd auth login")} ${pe.dim("to authenticate.")}`),console.log(""),process.exit(1));const r=isGenericUserName(n.userName)?"":` as ${pe.cyan(n.userName)}`;e.succeed("Authentication verified"),console.log(`${pe.green(Pe.tick)} ${pe.bold("Authenticated")}${r}`),console.log(` ${pe.dim("Provider:")} ${pe.cyan("Command Code")}`),console.log(""),process.exit(0)}catch(t){e.fail(pe.red(`Status check failed: ${t instanceof Error?t.message:"Unknown error"}`)),process.exit(1)}}var Ho,Wo,Go,Vo,Qo,Ko,Yo,Jo,Xo,Zo,es,ts=__esm({"src/commands/auth/status.ts"(){tn(),sn(),an(),Bo(),zo(),Bo(),__name(statusAction,"statusAction"),Uo=new _e("status").description("Show authentication status").allowUnknownOption().allowExcessArguments().action(statusAction)}}),ns=__esm({"src/api/errors.ts"(){tn(),Ho=class _APIError extends Error{static{__name(this,"APIError")}status;headers;error;code;param;type;request_id;constructor(e,t,n,r){super(_APIError.makeMessage(e,t,n)),this.status=e,this.headers=r,this.request_id=r?.["lb-request-id"];const o=t;this.error=o,this.code=o?.code,null!=o?.status&&(this.status=o.status)}static makeMessage(e,t,n){const r=t?.message?"string"==typeof t.message?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||"(no status code or body)"}static generate(e,t,n,r){if(!e)return new Wo({cause:t instanceof Error?t:void 0});const o=t?.error;switch(e){case 400:return new Go(e,o,n,r);case 401:return new Vo(e,o,n,r);case 403:return new Qo(e,o,n,r);case 404:return new Ko(e,o,n,r);case 409:return new Yo(e,o,n,r);case 422:return new Jo(e,o,n,r);case 429:return new Xo(e,o,n,r);default:return e>=500?new Zo(e,o,n,r):new _APIError(e,o,n,r)}}},Wo=class extends Ho{static{__name(this,"APIConnectionError")}status=void 0;constructor({message:e,cause:t}){super(void 0,void 0,e||"Connection error.",void 0),t&&(this.cause=t)}},Go=class extends Ho{static{__name(this,"BadRequestError")}status=400},Vo=class extends Ho{static{__name(this,"AuthenticationError")}status=401},Qo=class extends Ho{static{__name(this,"PermissionDeniedError")}status=403},Ko=class extends Ho{static{__name(this,"NotFoundError")}status=404},Yo=class extends Ho{static{__name(this,"ConflictError")}status=409},Jo=class extends Ho{static{__name(this,"UnprocessableEntityError")}status=422},Xo=class extends Ho{static{__name(this,"RateLimitError")}status=429},Zo=class extends Ho{static{__name(this,"InternalServerError")}}}}),rs=__esm({"../shared/src/types/share.ts"(){tn(),es=f.object({messageId:f.string().optional(),timestamp:f.string(),model:f.string().optional(),duration:f.number().optional(),usage:f.object({inputTokens:f.number(),outputTokens:f.number(),totalTokens:f.number(),cacheReadTokens:f.number().optional(),cacheWriteTokens:f.number().optional(),estimatedCost:f.number().optional()}).optional(),source:f.string().optional(),context:f.object({sessionId:f.string().optional(),threadId:f.string().optional(),userId:f.string().optional()}).optional(),highlight:f.boolean().optional(),isSummary:f.boolean().optional(),isAutomated:f.boolean().optional(),isMeta:f.boolean().optional(),hookContexts:f.record(f.string(),f.object({preToolUse:f.string().optional(),postToolUse:f.string().optional()})).optional()}),f.object({message:f.any(),meta:es}),f.object({sessionId:f.string(),messages:f.array(f.any()).optional()}),f.object({secret:f.string(),url:f.string()}),f.object({sessionId:f.string(),secret:f.string()}),f.object({sessionId:f.string(),secret:f.string(),key:f.string(),content:f.any()}),f.object({sessionId:f.string(),secret:f.string(),message:f.any()}),f.object({shortId:f.string()}),f.object({info:f.any().optional(),messages:f.array(f.any())})}}),os=__esm({"../shared/src/types/whoami.ts"(){tn()}});function parseModelString(e){if(e.includes(":")){const t=e.indexOf(":");return{provider:e.slice(0,t),modelId:e.slice(t+1)}}return{provider:"anthropic",modelId:e}}var ss,as=__esm({"../shared/src/types/messages.ts"(){tn(),__name(parseModelString,"parseModelString")}}),ls=__esm({"../shared/src/types/email.ts"(){tn(),f.object({to:f.union([f.email(),f.array(f.email())]),subject:f.string(),html:f.string().optional(),text:f.string().optional(),template:f.string().optional(),templateData:f.record(f.any(),f.any()).optional(),cc:f.array(f.email()).optional(),bcc:f.array(f.email()).optional(),replyTo:f.array(f.email()).optional(),tags:f.array(f.object({name:f.string(),value:f.string()})).optional()}),f.object({success:f.boolean(),messageId:f.string().optional(),error:f.string().optional()})}});function is(e,t){if(!e||"object"!=typeof e)return!1;if(e instanceof t)return!0;if(!Object.prototype.hasOwnProperty.call(t,ss))throw new Error(`Class "${t.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let n=Object.getPrototypeOf(e).constructor;if(n)for(;n;){if(ss in n&&n[ss]===t[ss])return!0;n=Object.getPrototypeOf(n)}return!1}var cs,us,ds,ms,ps,gs=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/entity.js"(){tn(),ss=Symbol.for("drizzle:entityKind"),__name(is,"is")}}),hs=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/column.js"(){tn(),gs(),cs=class{static{__name(this,"Column")}constructor(e,t){this.table=e,this.config=t,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity}static[ss]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return void 0!==this.config.generated&&"byDefault"!==this.config.generated.type}}}}),fs=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/column-builder.js"(){tn(),gs(),us=class{static{__name(this,"ColumnBuilder")}static[ss]="ColumnBuilder";config;constructor(e,t,n){this.config={name:e,keyAsName:""===e,notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:n,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(e){return this.config.onUpdateFn=e,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(e){""===this.config.name&&(this.config.name=e)}}}}),ys=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/table.utils.js"(){tn(),ds=Symbol.for("drizzle:Name")}}),ws=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/foreign-keys.js"(){tn(),gs(),ys(),ms=class{static{__name(this,"ForeignKeyBuilder")}static[ss]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(e,t){this.reference=()=>{const{name:t,columns:n,foreignColumns:r}=e();return{name:t,columns:n,foreignTable:r[0].table,foreignColumns:r}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=void 0===e?"no action":e,this}onDelete(e){return this._onDelete=void 0===e?"no action":e,this}build(e){return new ps(e,this)}},ps=class{static{__name(this,"ForeignKey")}constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[ss]="PgForeignKey";reference;onUpdate;onDelete;getName(){const{name:e,columns:t,foreignColumns:n}=this.reference(),r=t.map(e=>e.name),o=n.map(e=>e.name),s=[this.table[ds],...r,n[0].table[ds],...o];return e??`${s.join("_")}_fk`}}}});function iife(e,...t){return e(...t)}var Ss,bs,Es=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/tracing-utils.js"(){tn(),__name(iife,"iife")}});function uniqueKeyName(e,t){return`${e[ds]}_${t.join("_")}_unique`}var Cs=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/unique-constraint.js"(){tn(),gs(),ys(),__name(uniqueKeyName,"uniqueKeyName"),Ss=class{static{__name(this,"UniqueConstraintBuilder")}constructor(e,t){this.name=t,this.columns=e}static[ss]="PgUniqueConstraintBuilder";columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new bs(e,this.columns,this.nullsNotDistinctConfig,this.name)}},class{static{__name(this,"UniqueOnConstraintBuilder")}static[ss]="PgUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new Ss(e,this.name)}},bs=class{static{__name(this,"UniqueConstraint")}constructor(e,t,n,r){this.table=e,this.columns=t,this.name=r??uniqueKeyName(this.table,this.columns.map(e=>e.name)),this.nullsNotDistinct=n}static[ss]="PgUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}}}});function parsePgArrayValue(e,t,n){for(let r=t;r<e.length;r++){const o=e[r];if("\\"!==o){if('"'===o)return[e.slice(t,r).replace(/\\/g,""),r+1];if(!n&&(","===o||"}"===o))return[e.slice(t,r).replace(/\\/g,""),r]}else r++}return[e.slice(t).replace(/\\/g,""),e.length]}function parsePgNestedArray(e,t=0){const n=[];let r=t,o=!1;for(;r<e.length;){const s=e[r];if(","===s){(o||r===t)&&n.push(""),o=!0,r++;continue}if(o=!1,"\\"===s){r+=2;continue}if('"'===s){const[t,o]=parsePgArrayValue(e,r+1,!0);n.push(t),r=o;continue}if("}"===s)return[n,r+1];if("{"===s){const[t,o]=parsePgNestedArray(e,r+1);n.push(t),r=o;continue}const[i,a]=parsePgArrayValue(e,r,!1);n.push(i),r=a}return[n,r]}function parsePgArray(e){const[t]=parsePgNestedArray(e,1);return t}function makePgArray(e){return`{${e.map(e=>Array.isArray(e)?makePgArray(e):"string"==typeof e?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${e}`).join(",")}}`}var vs,ks,Ts,_s,xs,Ps,As,Is,Ns,Rs=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/utils/array.js"(){tn(),__name(parsePgArrayValue,"parsePgArrayValue"),__name(parsePgNestedArray,"parsePgNestedArray"),__name(parsePgArray,"parsePgArray"),__name(makePgArray,"makePgArray")}}),Ms=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/common.js"(){tn(),fs(),hs(),gs(),ws(),Es(),Cs(),Rs(),vs=class extends us{static{__name(this,"PgColumnBuilder")}foreignKeyConfigs=[];static[ss]="PgColumnBuilder";array(e){return new xs(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:"always",mode:"stored"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:n,actions:r})=>iife((n,r)=>{const o=new ms(()=>{const t=n();return{columns:[e],foreignColumns:[t]}});return r.onUpdate&&o.onUpdate(r.onUpdate),r.onDelete&&o.onDelete(r.onDelete),o.build(t)},n,r))}buildExtraConfigColumn(e){return new Ts(e,this.config)}},ks=class extends cs{static{__name(this,"PgColumn")}constructor(e,t){t.uniqueName||(t.uniqueName=uniqueKeyName(e,[t.name])),super(e,t),this.table=e}static[ss]="PgColumn"},Ts=class extends ks{static{__name(this,"ExtraConfigColumn")}static[ss]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(e){return this.indexConfig.opClass=e,this}},_s=class{static{__name(this,"IndexedColumn")}static[ss]="IndexedColumn";constructor(e,t,n,r){this.name=e,this.keyAsName=t,this.type=n,this.indexConfig=r}name;keyAsName;type;indexConfig},xs=class extends vs{static{__name(this,"PgArrayBuilder")}static[ss]="PgArrayBuilder";constructor(e,t,n){super(e,"array","PgArray"),this.config.baseBuilder=t,this.config.size=n}build(e){const t=this.config.baseBuilder.build(e);return new Ps(e,this.config,t)}},Ps=class _PgArray extends ks{static{__name(this,"PgArray")}constructor(e,t,n,r){super(e,t),this.baseColumn=n,this.range=r,this.size=t.size}size;static[ss]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${"number"==typeof this.size?this.size:""}]`}mapFromDriverValue(e){return"string"==typeof e&&(e=parsePgArray(e)),e.map(e=>this.baseColumn.mapFromDriverValue(e))}mapToDriverValue(e,t=!1){const n=e.map(e=>null===e?null:is(this.baseColumn,_PgArray)?this.baseColumn.mapToDriverValue(e,!0):this.baseColumn.mapToDriverValue(e));return t?n:makePgArray(n)}}}});function isPgEnum(e){return!!e&&"function"==typeof e&&As in e&&!0===e[As]}function pgEnum(e,t){return pgEnumWithSchema(e,t,void 0)}function pgEnumWithSchema(e,t,n){const r=Object.assign(e=>new Is(e??"",r),{enumName:e,enumValues:t,schema:n,[As]:!0});return r}var Ls,$s,Ds,Os,Fs,qs,js,Bs,Us,zs,Hs,Ws,Gs,Vs=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/enum.js"(){tn(),gs(),Ms(),As=Symbol.for("drizzle:isPgEnum"),__name(isPgEnum,"isPgEnum"),Is=class extends vs{static{__name(this,"PgEnumColumnBuilder")}static[ss]="PgEnumColumnBuilder";constructor(e,t){super(e,"string","PgEnumColumn"),this.config.enum=t}build(e){return new Ns(e,this.config)}},Ns=class extends ks{static{__name(this,"PgEnumColumn")}static[ss]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}},__name(pgEnum,"pgEnum"),__name(pgEnumWithSchema,"pgEnumWithSchema")}}),Qs=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/subquery.js"(){tn(),gs(),Ls=class{static{__name(this,"Subquery")}static[ss]="Subquery";constructor(e,t,n,r=!1){this._={brand:"Subquery",sql:e,selectedFields:t,alias:n,isWith:r}}},$s=class extends Ls{static{__name(this,"WithSubquery")}static[ss]="WithSubquery"}}}),Ks=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/version.js"(){tn()}}),Ys=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/tracing.js"(){tn(),Es(),Ks(),Ds={startActiveSpan:(e,t)=>t()}}}),Js=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/view-common.js"(){tn(),Os=Symbol.for("drizzle:ViewBaseConfig")}});function getTableName(e){return e[ds]}function getTableUniqueName(e){return`${e[Fs]??"public"}.${e[ds]}`}var Xs,Zs,ei,ti,ni,ri,oi,si,ii,ai=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/table.js"(){tn(),gs(),ys(),Fs=Symbol.for("drizzle:Schema"),qs=Symbol.for("drizzle:Columns"),js=Symbol.for("drizzle:ExtraConfigColumns"),Bs=Symbol.for("drizzle:OriginalName"),Us=Symbol.for("drizzle:BaseName"),zs=Symbol.for("drizzle:IsAlias"),Hs=Symbol.for("drizzle:ExtraConfigBuilder"),Ws=Symbol.for("drizzle:IsDrizzleTable"),Gs=class{static{__name(this,"Table")}static[ss]="Table";static Symbol={Name:ds,Schema:Fs,OriginalName:Bs,Columns:qs,ExtraConfigColumns:js,BaseName:Us,IsAlias:zs,ExtraConfigBuilder:Hs};[ds];[Bs];[Fs];[qs];[js];[Us];[zs]=!1;[Ws]=!0;[Hs]=void 0;constructor(e,t,n){this[ds]=this[Bs]=e,this[Fs]=t,this[Us]=n}},__name(getTableName,"getTableName"),__name(getTableUniqueName,"getTableUniqueName")}});function isSQLWrapper(e){return null!=e&&"function"==typeof e.getSQL}function mergeQueries(e){const t={sql:"",params:[]};for(const n of e)t.sql+=n.sql,t.params.push(...n.params),n.typings?.length&&(t.typings||(t.typings=[]),t.typings.push(...n.typings));return t}function isDriverValueEncoder(e){return"object"==typeof e&&null!==e&&"mapToDriverValue"in e&&"function"==typeof e.mapToDriverValue}function sql(e,...t){const n=[];(t.length>0||e.length>0&&""!==e[0])&&n.push(new Xs(e[0]));for(const[r,o]of t.entries())n.push(o,new Xs(e[r+1]));return new Zs(n)}var li,ci,ui=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sql/sql.js"(){tn(),gs(),Vs(),Qs(),Ys(),Js(),hs(),ai(),class{static{__name(this,"FakePrimitiveParam")}static[ss]="FakePrimitiveParam"},__name(isSQLWrapper,"isSQLWrapper"),__name(mergeQueries,"mergeQueries"),Xs=class{static{__name(this,"StringChunk")}static[ss]="StringChunk";value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new Zs([this])}},Zs=class _SQL{static{__name(this,"SQL")}constructor(e){this.queryChunks=e}static[ss]="SQL";decoder=ti;shouldInlineParams=!1;append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return Ds.startActiveSpan("drizzle.buildSQL",t=>{const n=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":n.sql,"drizzle.query.params":JSON.stringify(n.params)}),n})}buildQueryFromSourceParams(e,t){const n=Object.assign({},t,{inlineParams:t.inlineParams||this.shouldInlineParams,paramStartIndex:t.paramStartIndex||{value:0}}),{casing:r,escapeName:o,escapeParam:s,prepareTyping:i,inlineParams:a,paramStartIndex:l}=n;return mergeQueries(e.map(e=>{if(is(e,Xs))return{sql:e.value.join(""),params:[]};if(is(e,ei))return{sql:o(e.value),params:[]};if(void 0===e)return{sql:"",params:[]};if(Array.isArray(e)){const t=[new Xs("(")];for(const[n,r]of e.entries())t.push(r),n<e.length-1&&t.push(new Xs(", "));return t.push(new Xs(")")),this.buildQueryFromSourceParams(t,n)}if(is(e,_SQL))return this.buildQueryFromSourceParams(e.queryChunks,{...n,inlineParams:a||e.shouldInlineParams});if(is(e,Gs)){const t=e[Gs.Symbol.Schema],n=e[Gs.Symbol.Name];return{sql:void 0===t?o(n):o(t)+"."+o(n),params:[]}}if(is(e,cs)){const n=r.getColumnCasing(e);if("indexes"===t.invokeSource)return{sql:o(n),params:[]};const s=e.table[Gs.Symbol.Schema];return{sql:e.table[zs]||void 0===s?o(e.table[Gs.Symbol.Name])+"."+o(n):o(s)+"."+o(e.table[Gs.Symbol.Name])+"."+o(n),params:[]}}if(is(e,ii)){const t=e[Os].schema,n=e[Os].name;return{sql:void 0===t?o(n):o(t)+"."+o(n),params:[]}}if(is(e,ri)){if(is(e.value,oi))return{sql:s(l.value++,e),params:[e],typings:["none"]};const t=null===e.value?null:e.encoder.mapToDriverValue(e.value);if(is(t,_SQL))return this.buildQueryFromSourceParams([t],n);if(a)return{sql:this.mapInlineParam(t,n),params:[]};let r=["none"];return i&&(r=[i(e.encoder)]),{sql:s(l.value++,t),params:[t],typings:r}}return is(e,oi)?{sql:s(l.value++,e),params:[e],typings:["none"]}:is(e,_SQL.Aliased)&&void 0!==e.fieldAlias?{sql:o(e.fieldAlias),params:[]}:is(e,Ls)?e._.isWith?{sql:o(e._.alias),params:[]}:this.buildQueryFromSourceParams([new Xs("("),e._.sql,new Xs(") "),new ei(e._.alias)],n):isPgEnum(e)?e.schema?{sql:o(e.schema)+"."+o(e.enumName),params:[]}:{sql:o(e.enumName),params:[]}:isSQLWrapper(e)?e.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([e.getSQL()],n):this.buildQueryFromSourceParams([new Xs("("),e.getSQL(),new Xs(")")],n):a?{sql:this.mapInlineParam(e,n),params:[]}:{sql:s(l.value++,e),params:[e],typings:["none"]}}))}mapInlineParam(e,{escapeString:t}){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return e.toString();if("string"==typeof e)return t(e);if("object"==typeof e){const n=e.toString();return t("[object Object]"===n?JSON.stringify(e):n)}throw new Error("Unexpected param value: "+e)}getSQL(){return this}as(e){return void 0===e?this:new _SQL.Aliased(this,e)}mapWith(e){return this.decoder="function"==typeof e?{mapFromDriverValue:e}:e,this}inlineParams(){return this.shouldInlineParams=!0,this}if(e){return e?this:void 0}},ei=class{static{__name(this,"Name")}constructor(e){this.value=e}static[ss]="Name";brand;getSQL(){return new Zs([this])}},__name(isDriverValueEncoder,"isDriverValueEncoder"),ti={mapFromDriverValue:__name(e=>e,"mapFromDriverValue")},ni={mapToDriverValue:__name(e=>e,"mapToDriverValue")},ri=class{static{__name(this,"Param")}constructor(e,t=ni){this.value=e,this.encoder=t}static[ss]="Param";brand;getSQL(){return new Zs([this])}},__name(sql,"sql"),(e=>{function empty(){return new Zs([])}function fromList(e){return new Zs(e)}function raw(e){return new Zs([new Xs(e)])}function join29(e,t){const n=[];for(const[r,o]of e.entries())r>0&&void 0!==t&&n.push(t),n.push(o);return new Zs(n)}function identifier(e){return new ei(e)}function placeholder2(e){return new oi(e)}function param2(e,t){return new ri(e,t)}__name(empty,"empty"),e.empty=empty,__name(fromList,"fromList"),e.fromList=fromList,__name(raw,"raw"),e.raw=raw,__name(join29,"join"),e.join=join29,__name(identifier,"identifier"),e.identifier=identifier,__name(placeholder2,"placeholder2"),e.placeholder=placeholder2,__name(param2,"param2"),e.param=param2})(sql||(sql={})),(e=>{class Aliased{static{__name(this,"Aliased")}constructor(e,t){this.sql=e,this.fieldAlias=t}static[ss]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Aliased(this.sql,this.fieldAlias)}}e.Aliased=Aliased})(Zs||(Zs={})),oi=class{static{__name(this,"Placeholder")}constructor(e){this.name=e}static[ss]="Placeholder";getSQL(){return new Zs([this])}},si=Symbol.for("drizzle:IsDrizzleView"),ii=class{static{__name(this,"View")}static[ss]="View";[Os];[si]=!0;constructor({name:e,schema:t,selectedFields:n,query:r}){this[Os]={name:e,originalName:e,schema:t,selectedFields:n,query:r,isExisting:!r,isAlias:!1}}getSQL(){return new Zs([this])}},cs.prototype.getSQL=function(){return new Zs([this])},Gs.prototype.getSQL=function(){return new Zs([this])},Ls.prototype.getSQL=function(){return new Zs([this])}}});function aliasedTable(e,t){return new Proxy(e,new ci(t,!1))}function aliasedTableColumn(e,t){return new Proxy(e,new li(new Proxy(e.table,new ci(t,!1))))}function mapColumnsInAliasedSQLToAlias(e,t){return new Zs.Aliased(mapColumnsInSQLToAlias(e.sql,t),e.fieldAlias)}function mapColumnsInSQLToAlias(e,t){return sql.join(e.queryChunks.map(e=>is(e,cs)?aliasedTableColumn(e,t):is(e,Zs)?mapColumnsInSQLToAlias(e,t):is(e,Zs.Aliased)?mapColumnsInAliasedSQLToAlias(e,t):e))}var di,mi,pi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/alias.js"(){tn(),hs(),gs(),ui(),ai(),Js(),li=class{static{__name(this,"ColumnAliasProxyHandler")}constructor(e){this.table=e}static[ss]="ColumnAliasProxyHandler";get(e,t){return"table"===t?this.table:e[t]}},ci=class{static{__name(this,"TableAliasProxyHandler")}constructor(e,t){this.alias=e,this.replaceOriginalName=t}static[ss]="TableAliasProxyHandler";get(e,t){if(t===Gs.Symbol.IsAlias)return!0;if(t===Gs.Symbol.Name)return this.alias;if(this.replaceOriginalName&&t===Gs.Symbol.OriginalName)return this.alias;if(t===Os)return{...e[Os],name:this.alias,isAlias:!0};if(t===Gs.Symbol.Columns){const t=e[Gs.Symbol.Columns];if(!t)return t;const n={};return Object.keys(t).map(r=>{n[r]=new Proxy(t[r],new li(new Proxy(e,this)))}),n}const n=e[t];return is(n,cs)?new Proxy(n,new li(new Proxy(e,this))):n}},class{static{__name(this,"RelationTableAliasProxyHandler")}constructor(e){this.alias=e}static[ss]="RelationTableAliasProxyHandler";get(e,t){return"sourceTable"===t?aliasedTable(e.sourceTable,this.alias):e[t]}},__name(aliasedTable,"aliasedTable"),__name(aliasedTableColumn,"aliasedTableColumn"),__name(mapColumnsInAliasedSQLToAlias,"mapColumnsInAliasedSQLToAlias"),__name(mapColumnsInSQLToAlias,"mapColumnsInSQLToAlias")}}),gi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/alias.js"(){tn()}});function check(e,t){return new di(e,t)}var hi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/checks.js"(){tn(),gs(),di=class{static{__name(this,"CheckBuilder")}constructor(e,t){this.name=e,this.value=t}static[ss]="PgCheckBuilder";brand;build(e){return new mi(e,this)}},mi=class{static{__name(this,"Check")}constructor(e,t){this.table=e,this.name=t.name,this.value=t.value}static[ss]="PgCheck";name;value},__name(check,"check")}});function orderSelectedFields(e,t){return Object.entries(e).reduce((e,[n,r])=>{if("string"!=typeof n)return e;const o=t?[...t,n]:[n];return is(r,cs)||is(r,Zs)||is(r,Zs.Aliased)?e.push({path:o,field:r}):is(r,Gs)?e.push(...orderSelectedFields(r[Gs.Symbol.Columns],o)):e.push(...orderSelectedFields(r,o)),e},[])}function haveSameKeys(e,t){const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(const[e,t]of n.entries())if(t!==r[e])return!1;return!0}function mapUpdateSet(e,t){const n=Object.entries(t).filter(([,e])=>void 0!==e).map(([t,n])=>is(n,Zs)||is(n,cs)?[t,n]:[t,new ri(n,e[Gs.Symbol.Columns][t])]);if(0===n.length)throw new Error("No values to set");return Object.fromEntries(n)}function applyMixins(e,t){for(const n of t)for(const t of Object.getOwnPropertyNames(n.prototype))"constructor"!==t&&Object.defineProperty(e.prototype,t,Object.getOwnPropertyDescriptor(n.prototype,t)||Object.create(null))}function getTableColumns(e){return e[Gs.Symbol.Columns]}function getTableLikeName(e){return is(e,Ls)?e._.alias:is(e,ii)?e[Os].name:is(e,Zs)?void 0:e[Gs.Symbol.IsAlias]?e[Gs.Symbol.Name]:e[Gs.Symbol.BaseName]}function getColumnNameAndConfig(e,t){return{name:"string"==typeof e&&e.length>0?e:"",config:"object"==typeof e?e:t}}var fi,yi,wi,Si,bi,Ei=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/utils.js"(){tn(),hs(),gs(),ui(),Qs(),ai(),Js(),__name(orderSelectedFields,"orderSelectedFields"),__name(haveSameKeys,"haveSameKeys"),__name(mapUpdateSet,"mapUpdateSet"),__name(applyMixins,"applyMixins"),__name(getTableColumns,"getTableColumns"),__name(getTableLikeName,"getTableLikeName"),__name(getColumnNameAndConfig,"getColumnNameAndConfig")}}),Ci=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/int.common.js"(){tn(),gs(),Ms(),fi=class extends vs{static{__name(this,"PgIntColumnBaseBuilder")}static[ss]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(e){if(e){const{name:t,...n}=e;this.config.generatedIdentity={type:"always",sequenceName:t,sequenceOptions:n}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(e){if(e){const{name:t,...n}=e;this.config.generatedIdentity={type:"byDefault",sequenceName:t,sequenceOptions:n}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}}});function bigint(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"number"===r.mode?new yi(n):new Si(n)}var vi,ki,Ti,_i,xi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/bigint.js"(){tn(),gs(),Ei(),Ms(),Ci(),yi=class extends fi{static{__name(this,"PgBigInt53Builder")}static[ss]="PgBigInt53Builder";constructor(e){super(e,"number","PgBigInt53")}build(e){return new wi(e,this.config)}},wi=class extends ks{static{__name(this,"PgBigInt53")}static[ss]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}},Si=class extends fi{static{__name(this,"PgBigInt64Builder")}static[ss]="PgBigInt64Builder";constructor(e){super(e,"bigint","PgBigInt64")}build(e){return new bi(e,this.config)}},bi=class extends ks{static{__name(this,"PgBigInt64")}static[ss]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(e){return BigInt(e)}},__name(bigint,"bigint")}});function bigserial(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"number"===r.mode?new vi(n):new Ti(n)}var Pi,Ai,Ii=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/bigserial.js"(){tn(),gs(),Ei(),Ms(),vi=class extends vs{static{__name(this,"PgBigSerial53Builder")}static[ss]="PgBigSerial53Builder";constructor(e){super(e,"number","PgBigSerial53"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new ki(e,this.config)}},ki=class extends ks{static{__name(this,"PgBigSerial53")}static[ss]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}},Ti=class extends vs{static{__name(this,"PgBigSerial64Builder")}static[ss]="PgBigSerial64Builder";constructor(e){super(e,"bigint","PgBigSerial64"),this.config.hasDefault=!0}build(e){return new _i(e,this.config)}},_i=class extends ks{static{__name(this,"PgBigSerial64")}static[ss]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(e){return BigInt(e)}},__name(bigserial,"bigserial")}});function boolean(e){return new Pi(e??"")}var Ni,Ri,Mi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/boolean.js"(){tn(),gs(),Ms(),Pi=class extends vs{static{__name(this,"PgBooleanBuilder")}static[ss]="PgBooleanBuilder";constructor(e){super(e,"boolean","PgBoolean")}build(e){return new Ai(e,this.config)}},Ai=class extends ks{static{__name(this,"PgBoolean")}static[ss]="PgBoolean";getSQLType(){return"boolean"}},__name(boolean,"boolean")}});function char(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Ni(n,r)}var Li,$i,Di=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/char.js"(){tn(),gs(),Ei(),Ms(),Ni=class extends vs{static{__name(this,"PgCharBuilder")}static[ss]="PgCharBuilder";constructor(e,t){super(e,"string","PgChar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new Ri(e,this.config)}},Ri=class extends ks{static{__name(this,"PgChar")}static[ss]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"char":`char(${this.length})`}},__name(char,"char")}});function cidr(e){return new Li(e??"")}var Oi,Fi,qi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/cidr.js"(){tn(),gs(),Ms(),Li=class extends vs{static{__name(this,"PgCidrBuilder")}static[ss]="PgCidrBuilder";constructor(e){super(e,"string","PgCidr")}build(e){return new $i(e,this.config)}},$i=class extends ks{static{__name(this,"PgCidr")}static[ss]="PgCidr";getSQLType(){return"cidr"}},__name(cidr,"cidr")}});function customType(e){return(t,n)=>{const{name:r,config:o}=getColumnNameAndConfig(t,n);return new Oi(r,o,e)}}var ji,Bi,Ui,zi,Hi,Wi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/custom.js"(){tn(),gs(),Ei(),Ms(),Oi=class extends vs{static{__name(this,"PgCustomColumnBuilder")}static[ss]="PgCustomColumnBuilder";constructor(e,t,n){super(e,"custom","PgCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=n}build(e){return new Fi(e,this.config)}},Fi=class extends ks{static{__name(this,"PgCustomColumn")}static[ss]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return"function"==typeof this.mapFrom?this.mapFrom(e):e}mapToDriverValue(e){return"function"==typeof this.mapTo?this.mapTo(e):e}},__name(customType,"customType")}}),Gi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/date.common.js"(){tn(),gs(),ui(),Ms(),ji=class extends vs{static{__name(this,"PgDateColumnBaseBuilder")}static[ss]="PgDateColumnBaseBuilder";defaultNow(){return this.default(sql`now()`)}}}});function date(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"date"===r?.mode?new Bi(n):new zi(n)}var Vi,Qi,Ki=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/date.js"(){tn(),gs(),Ei(),Ms(),Gi(),Bi=class extends ji{static{__name(this,"PgDateBuilder")}static[ss]="PgDateBuilder";constructor(e){super(e,"date","PgDate")}build(e){return new Ui(e,this.config)}},Ui=class extends ks{static{__name(this,"PgDate")}static[ss]="PgDate";getSQLType(){return"date"}mapFromDriverValue(e){return new Date(e)}mapToDriverValue(e){return e.toISOString()}},zi=class extends ji{static{__name(this,"PgDateStringBuilder")}static[ss]="PgDateStringBuilder";constructor(e){super(e,"string","PgDateString")}build(e){return new Hi(e,this.config)}},Hi=class extends ks{static{__name(this,"PgDateString")}static[ss]="PgDateString";getSQLType(){return"date"}},__name(date,"date")}});function doublePrecision(e){return new Vi(e??"")}var Yi,Ji,Xi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/double-precision.js"(){tn(),gs(),Ms(),Vi=class extends vs{static{__name(this,"PgDoublePrecisionBuilder")}static[ss]="PgDoublePrecisionBuilder";constructor(e){super(e,"number","PgDoublePrecision")}build(e){return new Qi(e,this.config)}},Qi=class extends ks{static{__name(this,"PgDoublePrecision")}static[ss]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(e){return"string"==typeof e?Number.parseFloat(e):e}},__name(doublePrecision,"doublePrecision")}});function inet(e){return new Yi(e??"")}var Zi,ea,ta=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/inet.js"(){tn(),gs(),Ms(),Yi=class extends vs{static{__name(this,"PgInetBuilder")}static[ss]="PgInetBuilder";constructor(e){super(e,"string","PgInet")}build(e){return new Ji(e,this.config)}},Ji=class extends ks{static{__name(this,"PgInet")}static[ss]="PgInet";getSQLType(){return"inet"}},__name(inet,"inet")}});function integer(e){return new Zi(e??"")}var na,ra,oa=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/integer.js"(){tn(),gs(),Ms(),Ci(),Zi=class extends fi{static{__name(this,"PgIntegerBuilder")}static[ss]="PgIntegerBuilder";constructor(e){super(e,"number","PgInteger")}build(e){return new ea(e,this.config)}},ea=class extends ks{static{__name(this,"PgInteger")}static[ss]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(e){return"string"==typeof e?Number.parseInt(e):e}},__name(integer,"integer")}});function interval(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new na(n,r)}var sa,ia,aa=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/interval.js"(){tn(),gs(),Ei(),Ms(),na=class extends vs{static{__name(this,"PgIntervalBuilder")}static[ss]="PgIntervalBuilder";constructor(e,t){super(e,"string","PgInterval"),this.config.intervalConfig=t}build(e){return new ra(e,this.config)}},ra=class extends ks{static{__name(this,"PgInterval")}static[ss]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){return`interval${this.fields?` ${this.fields}`:""}${this.precision?`(${this.precision})`:""}`}},__name(interval,"interval")}});function json(e){return new sa(e??"")}var la,ca,ua=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/json.js"(){tn(),gs(),Ms(),sa=class extends vs{static{__name(this,"PgJsonBuilder")}static[ss]="PgJsonBuilder";constructor(e){super(e,"json","PgJson")}build(e){return new ia(e,this.config)}},ia=class extends ks{static{__name(this,"PgJson")}static[ss]="PgJson";constructor(e,t){super(e,t)}getSQLType(){return"json"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if("string"==typeof e)try{return JSON.parse(e)}catch{return e}return e}},__name(json,"json")}});function jsonb(e){return new la(e??"")}var da,ma,pa,ga,ha=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/jsonb.js"(){tn(),gs(),Ms(),la=class extends vs{static{__name(this,"PgJsonbBuilder")}static[ss]="PgJsonbBuilder";constructor(e){super(e,"json","PgJsonb")}build(e){return new ca(e,this.config)}},ca=class extends ks{static{__name(this,"PgJsonb")}static[ss]="PgJsonb";constructor(e,t){super(e,t)}getSQLType(){return"jsonb"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if("string"==typeof e)try{return JSON.parse(e)}catch{return e}return e}},__name(jsonb,"jsonb")}});function line(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return r?.mode&&"tuple"!==r.mode?new pa(n):new da(n)}var fa,ya,wa=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/line.js"(){tn(),gs(),Ei(),Ms(),da=class extends vs{static{__name(this,"PgLineBuilder")}static[ss]="PgLineBuilder";constructor(e){super(e,"array","PgLine")}build(e){return new ma(e,this.config)}},ma=class extends ks{static{__name(this,"PgLineTuple")}static[ss]="PgLine";getSQLType(){return"line"}mapFromDriverValue(e){const[t,n,r]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(n),Number.parseFloat(r)]}mapToDriverValue(e){return`{${e[0]},${e[1]},${e[2]}}`}},pa=class extends vs{static{__name(this,"PgLineABCBuilder")}static[ss]="PgLineABCBuilder";constructor(e){super(e,"json","PgLineABC")}build(e){return new ga(e,this.config)}},ga=class extends ks{static{__name(this,"PgLineABC")}static[ss]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(e){const[t,n,r]=e.slice(1,-1).split(",");return{a:Number.parseFloat(t),b:Number.parseFloat(n),c:Number.parseFloat(r)}}mapToDriverValue(e){return`{${e.a},${e.b},${e.c}}`}},__name(line,"line")}});function macaddr(e){return new fa(e??"")}var Sa,ba,Ea=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/macaddr.js"(){tn(),gs(),Ms(),fa=class extends vs{static{__name(this,"PgMacaddrBuilder")}static[ss]="PgMacaddrBuilder";constructor(e){super(e,"string","PgMacaddr")}build(e){return new ya(e,this.config)}},ya=class extends ks{static{__name(this,"PgMacaddr")}static[ss]="PgMacaddr";getSQLType(){return"macaddr"}},__name(macaddr,"macaddr")}});function macaddr8(e){return new Sa(e??"")}var Ca,va,ka=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/macaddr8.js"(){tn(),gs(),Ms(),Sa=class extends vs{static{__name(this,"PgMacaddr8Builder")}static[ss]="PgMacaddr8Builder";constructor(e){super(e,"string","PgMacaddr8")}build(e){return new ba(e,this.config)}},ba=class extends ks{static{__name(this,"PgMacaddr8")}static[ss]="PgMacaddr8";getSQLType(){return"macaddr8"}},__name(macaddr8,"macaddr8")}});function numeric(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Ca(n,r?.precision,r?.scale)}var Ta,_a,xa,Pa,Aa=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/numeric.js"(){tn(),gs(),Ei(),Ms(),Ca=class extends vs{static{__name(this,"PgNumericBuilder")}static[ss]="PgNumericBuilder";constructor(e,t,n){super(e,"string","PgNumeric"),this.config.precision=t,this.config.scale=n}build(e){return new va(e,this.config)}},va=class extends ks{static{__name(this,"PgNumeric")}static[ss]="PgNumeric";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}getSQLType(){return void 0!==this.precision&&void 0!==this.scale?`numeric(${this.precision}, ${this.scale})`:void 0===this.precision?"numeric":`numeric(${this.precision})`}},__name(numeric,"numeric")}});function point(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return r?.mode&&"tuple"!==r.mode?new xa(n):new Ta(n)}var Ia=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/point.js"(){tn(),gs(),Ei(),Ms(),Ta=class extends vs{static{__name(this,"PgPointTupleBuilder")}static[ss]="PgPointTupleBuilder";constructor(e){super(e,"array","PgPointTuple")}build(e){return new _a(e,this.config)}},_a=class extends ks{static{__name(this,"PgPointTuple")}static[ss]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(e){if("string"==typeof e){const[t,n]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(n)]}return[e.x,e.y]}mapToDriverValue(e){return`(${e[0]},${e[1]})`}},xa=class extends vs{static{__name(this,"PgPointObjectBuilder")}static[ss]="PgPointObjectBuilder";constructor(e){super(e,"json","PgPointObject")}build(e){return new Pa(e,this.config)}},Pa=class extends ks{static{__name(this,"PgPointObject")}static[ss]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(e){if("string"==typeof e){const[t,n]=e.slice(1,-1).split(",");return{x:Number.parseFloat(t),y:Number.parseFloat(n)}}return e}mapToDriverValue(e){return`(${e.x},${e.y})`}},__name(point,"point")}});function hexToBytes(e){const t=[];for(let n=0;n<e.length;n+=2)t.push(Number.parseInt(e.slice(n,n+2),16));return new Uint8Array(t)}function bytesToFloat64(e,t){const n=new ArrayBuffer(8),r=new DataView(n);for(let n=0;n<8;n++)r.setUint8(n,e[t+n]);return r.getFloat64(0,!0)}function parseEWKB(e){const t=hexToBytes(e);let n=0;const r=t[n];n+=1;const o=new DataView(t.buffer),s=o.getUint32(n,1===r);if(n+=4,536870912&s&&(o.getUint32(n,1===r),n+=4),1==(65535&s)){const e=bytesToFloat64(t,n);n+=8;const r=bytesToFloat64(t,n);return n+=8,[e,r]}throw new Error("Unsupported geometry type")}var Na,Ra,Ma,La,$a=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/postgis_extension/utils.js"(){tn(),__name(hexToBytes,"hexToBytes"),__name(bytesToFloat64,"bytesToFloat64"),__name(parseEWKB,"parseEWKB")}});function geometry(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return r?.mode&&"tuple"!==r.mode?new Ma(n):new Na(n)}var Da,Oa,Fa=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/postgis_extension/geometry.js"(){tn(),gs(),Ei(),Ms(),$a(),Na=class extends vs{static{__name(this,"PgGeometryBuilder")}static[ss]="PgGeometryBuilder";constructor(e){super(e,"array","PgGeometry")}build(e){return new Ra(e,this.config)}},Ra=class extends ks{static{__name(this,"PgGeometry")}static[ss]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){return parseEWKB(e)}mapToDriverValue(e){return`point(${e[0]} ${e[1]})`}},Ma=class extends vs{static{__name(this,"PgGeometryObjectBuilder")}static[ss]="PgGeometryObjectBuilder";constructor(e){super(e,"json","PgGeometryObject")}build(e){return new La(e,this.config)}},La=class extends ks{static{__name(this,"PgGeometryObject")}static[ss]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){const t=parseEWKB(e);return{x:t[0],y:t[1]}}mapToDriverValue(e){return`point(${e.x} ${e.y})`}},__name(geometry,"geometry")}});function real(e){return new Da(e??"")}var qa,ja,Ba=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/real.js"(){tn(),gs(),Ms(),Da=class extends vs{static{__name(this,"PgRealBuilder")}static[ss]="PgRealBuilder";constructor(e,t){super(e,"number","PgReal"),this.config.length=t}build(e){return new Oa(e,this.config)}},Oa=class extends ks{static{__name(this,"PgReal")}static[ss]="PgReal";constructor(e,t){super(e,t)}getSQLType(){return"real"}mapFromDriverValue=__name(e=>"string"==typeof e?Number.parseFloat(e):e,"mapFromDriverValue")},__name(real,"real")}});function serial(e){return new qa(e??"")}var Ua,za,Ha=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/serial.js"(){tn(),gs(),Ms(),qa=class extends vs{static{__name(this,"PgSerialBuilder")}static[ss]="PgSerialBuilder";constructor(e){super(e,"number","PgSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new ja(e,this.config)}},ja=class extends ks{static{__name(this,"PgSerial")}static[ss]="PgSerial";getSQLType(){return"serial"}},__name(serial,"serial")}});function smallint(e){return new Ua(e??"")}var Wa,Ga,Va=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/smallint.js"(){tn(),gs(),Ms(),Ci(),Ua=class extends fi{static{__name(this,"PgSmallIntBuilder")}static[ss]="PgSmallIntBuilder";constructor(e){super(e,"number","PgSmallInt")}build(e){return new za(e,this.config)}},za=class extends ks{static{__name(this,"PgSmallInt")}static[ss]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=__name(e=>"string"==typeof e?Number(e):e,"mapFromDriverValue")},__name(smallint,"smallint")}});function smallserial(e){return new Wa(e??"")}var Qa,Ka,Ya=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/smallserial.js"(){tn(),gs(),Ms(),Wa=class extends vs{static{__name(this,"PgSmallSerialBuilder")}static[ss]="PgSmallSerialBuilder";constructor(e){super(e,"number","PgSmallSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Ga(e,this.config)}},Ga=class extends ks{static{__name(this,"PgSmallSerial")}static[ss]="PgSmallSerial";getSQLType(){return"smallserial"}},__name(smallserial,"smallserial")}});function text(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Qa(n,r)}var Ja,Xa,Za=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/text.js"(){tn(),gs(),Ei(),Ms(),Qa=class extends vs{static{__name(this,"PgTextBuilder")}static[ss]="PgTextBuilder";constructor(e,t){super(e,"string","PgText"),this.config.enumValues=t.enum}build(e){return new Ka(e,this.config)}},Ka=class extends ks{static{__name(this,"PgText")}static[ss]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}},__name(text,"text")}});function time(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Ja(n,r.withTimezone??!1,r.precision)}var el,tl,nl,rl,ol=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/time.js"(){tn(),gs(),Ei(),Ms(),Gi(),Ja=class extends ji{static{__name(this,"PgTimeBuilder")}constructor(e,t,n){super(e,"string","PgTime"),this.withTimezone=t,this.precision=n,this.config.withTimezone=t,this.config.precision=n}static[ss]="PgTimeBuilder";build(e){return new Xa(e,this.config)}},Xa=class extends ks{static{__name(this,"PgTime")}static[ss]="PgTime";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`time${void 0===this.precision?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}},__name(time,"time")}});function timestamp(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"string"===r?.mode?new nl(n,r.withTimezone??!1,r.precision):new el(n,r?.withTimezone??!1,r?.precision)}var sl,il,al=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/timestamp.js"(){tn(),gs(),Ei(),Ms(),Gi(),el=class extends ji{static{__name(this,"PgTimestampBuilder")}static[ss]="PgTimestampBuilder";constructor(e,t,n){super(e,"date","PgTimestamp"),this.config.withTimezone=t,this.config.precision=n}build(e){return new tl(e,this.config)}},tl=class extends ks{static{__name(this,"PgTimestamp")}static[ss]="PgTimestamp";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${void 0===this.precision?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=__name(e=>new Date(this.withTimezone?e:e+"+0000"),"mapFromDriverValue");mapToDriverValue=__name(e=>e.toISOString(),"mapToDriverValue")},nl=class extends ji{static{__name(this,"PgTimestampStringBuilder")}static[ss]="PgTimestampStringBuilder";constructor(e,t,n){super(e,"string","PgTimestampString"),this.config.withTimezone=t,this.config.precision=n}build(e){return new rl(e,this.config)}},rl=class extends ks{static{__name(this,"PgTimestampString")}static[ss]="PgTimestampString";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${void 0===this.precision?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}},__name(timestamp,"timestamp")}});function uuid(e){return new sl(e??"")}var ll,cl,ul=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/uuid.js"(){tn(),gs(),ui(),Ms(),sl=class extends vs{static{__name(this,"PgUUIDBuilder")}static[ss]="PgUUIDBuilder";constructor(e){super(e,"string","PgUUID")}defaultRandom(){return this.default(sql`gen_random_uuid()`)}build(e){return new il(e,this.config)}},il=class extends ks{static{__name(this,"PgUUID")}static[ss]="PgUUID";getSQLType(){return"uuid"}},__name(uuid,"uuid")}});function varchar(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new ll(n,r)}var dl,ml,pl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/varchar.js"(){tn(),gs(),Ei(),Ms(),ll=class extends vs{static{__name(this,"PgVarcharBuilder")}static[ss]="PgVarcharBuilder";constructor(e,t){super(e,"string","PgVarchar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new cl(e,this.config)}},cl=class extends ks{static{__name(this,"PgVarchar")}static[ss]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"varchar":`varchar(${this.length})`}},__name(varchar,"varchar")}});function bit(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new dl(n,r)}var gl,hl,fl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/vector_extension/bit.js"(){tn(),gs(),Ei(),Ms(),dl=class extends vs{static{__name(this,"PgBinaryVectorBuilder")}static[ss]="PgBinaryVectorBuilder";constructor(e,t){super(e,"string","PgBinaryVector"),this.config.dimensions=t.dimensions}build(e){return new ml(e,this.config)}},ml=class extends ks{static{__name(this,"PgBinaryVector")}static[ss]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}},__name(bit,"bit")}});function halfvec(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new gl(n,r)}var yl,wl,Sl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/vector_extension/halfvec.js"(){tn(),gs(),Ei(),Ms(),gl=class extends vs{static{__name(this,"PgHalfVectorBuilder")}static[ss]="PgHalfVectorBuilder";constructor(e,t){super(e,"array","PgHalfVector"),this.config.dimensions=t.dimensions}build(e){return new hl(e,this.config)}},hl=class extends ks{static{__name(this,"PgHalfVector")}static[ss]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(e=>Number.parseFloat(e))}},__name(halfvec,"halfvec")}});function sparsevec(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new yl(n,r)}var bl,El,Cl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/vector_extension/sparsevec.js"(){tn(),gs(),Ei(),Ms(),yl=class extends vs{static{__name(this,"PgSparseVectorBuilder")}static[ss]="PgSparseVectorBuilder";constructor(e,t){super(e,"string","PgSparseVector"),this.config.dimensions=t.dimensions}build(e){return new wl(e,this.config)}},wl=class extends ks{static{__name(this,"PgSparseVector")}static[ss]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}},__name(sparsevec,"sparsevec")}});function vector(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new bl(n,r)}var vl,kl,Tl,_l=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/vector_extension/vector.js"(){tn(),gs(),Ei(),Ms(),bl=class extends vs{static{__name(this,"PgVectorBuilder")}static[ss]="PgVectorBuilder";constructor(e,t){super(e,"array","PgVector"),this.config.dimensions=t.dimensions}build(e){return new El(e,this.config)}},El=class extends ks{static{__name(this,"PgVector")}static[ss]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(e=>Number.parseFloat(e))}},__name(vector,"vector")}}),xl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/index.js"(){tn(),xi(),Ii(),Mi(),Di(),qi(),Ms(),Wi(),Ki(),Xi(),Vs(),ta(),Ci(),oa(),aa(),ua(),ha(),wa(),Ea(),ka(),Aa(),Ia(),Fa(),Ba(),Ha(),Va(),Ya(),Za(),ol(),al(),ul(),pl(),fl(),Sl(),Cl(),_l()}}),Pl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/query-promise.js"(){tn(),gs(),vl=class{static{__name(this,"QueryPromise")}static[ss]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}}}}),Al=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/query-builders/delete.js"(){tn(),gs(),Pl(),ai(),Ys(),Ei(),kl=class extends vl{static{__name(this,"PgDeleteBase")}constructor(e,t,n,r){super(),this.session=t,this.dialect=n,this.config={table:e,withList:r}}static[ss]="PgDelete";config;where(e){return this.config.where=e,this}returning(e=this.config.table[Gs.Symbol.Columns]){return this.config.returning=orderSelectedFields(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return Ds.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=__name(e=>Ds.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute");$dynamic(){return this}}}});function toSnakeCase(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(e=>e.toLowerCase()).join("_")}function toCamelCase(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((e,t,n)=>e+(0===n?t.toLowerCase():`${t[0].toUpperCase()}${t.slice(1)}`),"")}function noopCase(e){return e}var Il,Nl,Rl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/casing.js"(){tn(),gs(),ai(),__name(toSnakeCase,"toSnakeCase"),__name(toCamelCase,"toCamelCase"),__name(noopCase,"noopCase"),Tl=class{static{__name(this,"CasingCache")}static[ss]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert="snake_case"===e?toSnakeCase:"camelCase"===e?toCamelCase:noopCase}getColumnCasing(e){if(!e.keyAsName)return e.name;const t=`${e.table[Gs.Symbol.Schema]??"public"}.${e.table[Gs.Symbol.OriginalName]}.${e.name}`;return this.cache[t]||this.cacheTable(e.table),this.cache[t]}cacheTable(e){const t=`${e[Gs.Symbol.Schema]??"public"}.${e[Gs.Symbol.OriginalName]}`;if(!this.cachedTables[t]){for(const n of Object.values(e[Gs.Symbol.Columns])){const e=`${t}.${n.name}`;this.cache[e]=this.convert(n.name)}this.cachedTables[t]=!0}}clearCache(){this.cache={},this.cachedTables={}}}}}),Ml=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/errors.js"(){tn(),gs(),Il=class extends Error{static{__name(this,"DrizzleError")}static[ss]="DrizzleError";constructor({message:e,cause:t}){super(e),this.name="DrizzleError",this.cause=t}},Nl=class extends Il{static{__name(this,"TransactionRollbackError")}static[ss]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}}});function getPgColumnBuilders(){return{bigint:bigint,bigserial:bigserial,boolean:boolean,char:char,cidr:cidr,customType:customType,date:date,doublePrecision:doublePrecision,inet:inet,integer:integer,interval:interval,json:json,jsonb:jsonb,line:line,macaddr:macaddr,macaddr8:macaddr8,numeric:numeric,point:point,geometry:geometry,real:real,serial:serial,smallint:smallint,smallserial:smallserial,text:text,time:time,timestamp:timestamp,uuid:uuid,varchar:varchar,bit:bit,halfvec:halfvec,sparsevec:sparsevec,vector:vector}}var Ll,$l,Dl,Ol,Fl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/columns/all.js"(){tn(),xi(),Ii(),Mi(),Di(),qi(),Wi(),Ki(),Xi(),ta(),oa(),aa(),ua(),ha(),wa(),Ea(),ka(),Aa(),Ia(),Fa(),Ba(),Ha(),Va(),Ya(),Za(),ol(),al(),ul(),pl(),fl(),Sl(),Cl(),_l(),__name(getPgColumnBuilders,"getPgColumnBuilders")}});function pgTableWithSchema(e,t,n,r,o=e){const s=new Dl(e,r,o),i="function"==typeof t?t(getPgColumnBuilders()):t,a=Object.fromEntries(Object.entries(i).map(([e,t])=>{const n=t;n.setName(e);const r=n.build(s);return s[Ll].push(...n.buildForeignKeys(r,s)),[e,r]})),l=Object.fromEntries(Object.entries(i).map(([e,t])=>{const n=t;return n.setName(e),[e,n.buildExtraConfigColumn(s)]})),u=Object.assign(s,a);return u[Gs.Symbol.Columns]=a,u[Gs.Symbol.ExtraConfigColumns]=l,n&&(u[Dl.Symbol.ExtraConfigBuilder]=n),Object.assign(u,{enableRLS:__name(()=>(u[Dl.Symbol.EnableRLS]=!0,u),"enableRLS")})}var ql,jl,Bl,Ul,zl,Hl,Wl,Gl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/table.js"(){tn(),gs(),ai(),Fl(),Ll=Symbol.for("drizzle:PgInlineForeignKeys"),$l=Symbol.for("drizzle:EnableRLS"),Dl=class extends Gs{static{__name(this,"PgTable")}static[ss]="PgTable";static Symbol=Object.assign({},Gs.Symbol,{InlineForeignKeys:Ll,EnableRLS:$l});[Ll]=[];[$l]=!1;[Gs.Symbol.ExtraConfigBuilder]=void 0},__name(pgTableWithSchema,"pgTableWithSchema"),Ol=__name((e,t,n)=>pgTableWithSchema(e,t,n,void 0),"pgTable")}}),Vl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/primary-keys.js"(){tn(),gs(),Gl(),class{static{__name(this,"PrimaryKeyBuilder")}static[ss]="PgPrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new ql(e,this.columns,this.name)}},ql=class{static{__name(this,"PrimaryKey")}constructor(e,t,n){this.table=e,this.columns=t,this.name=n}static[ss]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[Dl.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}}}});function bindIfParam(e,t){return!isDriverValueEncoder(t)||isSQLWrapper(e)||is(e,ri)||is(e,oi)||is(e,cs)||is(e,Gs)||is(e,ii)?e:new ri(e,t)}function and(...e){const t=e.filter(e=>void 0!==e);if(0!==t.length)return 1===t.length?new Zs(t):new Zs([new Xs("("),sql.join(t,new Xs(" and ")),new Xs(")")])}function or(...e){const t=e.filter(e=>void 0!==e);if(0!==t.length)return 1===t.length?new Zs(t):new Zs([new Xs("("),sql.join(t,new Xs(" or ")),new Xs(")")])}function not(e){return sql`not ${e}`}function inArray(e,t){return Array.isArray(t)?0===t.length?sql`false`:sql`${e} in ${t.map(t=>bindIfParam(t,e))}`:sql`${e} in ${bindIfParam(t,e)}`}function notInArray(e,t){return Array.isArray(t)?0===t.length?sql`true`:sql`${e} not in ${t.map(t=>bindIfParam(t,e))}`:sql`${e} not in ${bindIfParam(t,e)}`}function isNull(e){return sql`${e} is null`}function isNotNull(e){return sql`${e} is not null`}function exists(e){return sql`exists ${e}`}function notExists(e){return sql`not exists ${e}`}function between(e,t,n){return sql`${e} between ${bindIfParam(t,e)} and ${bindIfParam(n,e)}`}function notBetween(e,t,n){return sql`${e} not between ${bindIfParam(t,e)} and ${bindIfParam(n,e)}`}function like(e,t){return sql`${e} like ${t}`}function notLike(e,t){return sql`${e} not like ${t}`}function ilike(e,t){return sql`${e} ilike ${t}`}function notIlike(e,t){return sql`${e} not ilike ${t}`}var Ql=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sql/expressions/conditions.js"(){tn(),hs(),gs(),ai(),ui(),__name(bindIfParam,"bindIfParam"),jl=__name((e,t)=>sql`${e} = ${bindIfParam(t,e)}`,"eq"),Bl=__name((e,t)=>sql`${e} <> ${bindIfParam(t,e)}`,"ne"),__name(and,"and"),__name(or,"or"),__name(not,"not"),Ul=__name((e,t)=>sql`${e} > ${bindIfParam(t,e)}`,"gt"),zl=__name((e,t)=>sql`${e} >= ${bindIfParam(t,e)}`,"gte"),Hl=__name((e,t)=>sql`${e} < ${bindIfParam(t,e)}`,"lt"),Wl=__name((e,t)=>sql`${e} <= ${bindIfParam(t,e)}`,"lte"),__name(inArray,"inArray"),__name(notInArray,"notInArray"),__name(isNull,"isNull"),__name(isNotNull,"isNotNull"),__name(exists,"exists"),__name(notExists,"notExists"),__name(between,"between"),__name(notBetween,"notBetween"),__name(like,"like"),__name(notLike,"notLike"),__name(ilike,"ilike"),__name(notIlike,"notIlike")}});function asc(e){return sql`${e} asc`}function desc(e){return sql`${e} desc`}var Kl,Yl,Jl,Xl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sql/expressions/select.js"(){tn(),ui(),__name(asc,"asc"),__name(desc,"desc")}}),Zl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sql/expressions/index.js"(){tn(),Ql(),Xl()}});function getOperators(){return{and:and,between:between,eq:jl,exists:exists,gt:Ul,gte:zl,ilike:ilike,inArray:inArray,isNull:isNull,isNotNull:isNotNull,like:like,lt:Hl,lte:Wl,ne:Bl,not:not,notBetween:notBetween,notExists:notExists,notLike:notLike,notIlike:notIlike,notInArray:notInArray,or:or,sql:sql}}function getOrderByOperators(){return{sql:sql,asc:asc,desc:desc}}function normalizeRelation(e,t,n){if(is(n,Yl)&&n.config)return{fields:n.config.fields,references:n.config.references};const r=t[getTableUniqueName(n.referencedTable)];if(!r)throw new Error(`Table "${n.referencedTable[Gs.Symbol.Name]}" not found in schema`);const o=e[r];if(!o)throw new Error(`Table "${r}" not found in schema`);const s=n.sourceTable,i=t[getTableUniqueName(s)];if(!i)throw new Error(`Table "${s[Gs.Symbol.Name]}" not found in schema`);const a=[];for(const e of Object.values(o.relations))(n.relationName&&n!==e&&e.relationName===n.relationName||!n.relationName&&e.referencedTable===n.sourceTable)&&a.push(e);if(a.length>1)throw n.relationName?new Error(`There are multiple relations with name "${n.relationName}" in table "${r}"`):new Error(`There are multiple relations between "${r}" and "${n.sourceTable[Gs.Symbol.Name]}". Please specify relation name`);if(a[0]&&is(a[0],Yl)&&a[0].config)return{fields:a[0].config.references,references:a[0].config.fields};throw new Error(`There is not enough information to infer relation "${i}.${n.fieldName}"`)}function mapRelationalRow(e,t,n,r,o=e=>e){const s={};for(const[i,a]of r.entries())if(a.isJson){const r=t.relations[a.tsKey],l=n[i],u="string"==typeof l?JSON.parse(l):l;s[a.tsKey]=is(r,Yl)?u&&mapRelationalRow(e,e[a.relationTableTsKey],u,a.selection,o):u.map(t=>mapRelationalRow(e,e[a.relationTableTsKey],t,a.selection,o))}else{const e=o(n[i]),t=a.field;let r;r=is(t,cs)?t:is(t,Zs)?t.decoder:t.sql.decoder,s[a.tsKey]=null===e?null:r.mapFromDriverValue(e)}return s}var ec,tc,nc,rc,oc,sc,ic,ac,lc,cc,uc,dc,mc,pc,gc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/relations.js"(){tn(),ai(),hs(),gs(),Zl(),ui(),Kl=class{static{__name(this,"Relation")}constructor(e,t,n){this.sourceTable=e,this.referencedTable=t,this.relationName=n,this.referencedTableName=t[Gs.Symbol.Name]}static[ss]="Relation";referencedTableName;fieldName},class{static{__name(this,"Relations")}constructor(e,t){this.table=e,this.config=t}static[ss]="Relations"},Yl=class _One extends Kl{static{__name(this,"One")}constructor(e,t,n,r){super(e,t,n?.relationName),this.config=n,this.isNullable=r}static[ss]="One";withFieldName(e){const t=new _One(this.sourceTable,this.referencedTable,this.config,this.isNullable);return t.fieldName=e,t}},Jl=class _Many extends Kl{static{__name(this,"Many")}constructor(e,t,n){super(e,t,n?.relationName),this.config=n}static[ss]="Many";withFieldName(e){const t=new _Many(this.sourceTable,this.referencedTable,this.config);return t.fieldName=e,t}},__name(getOperators,"getOperators"),__name(getOrderByOperators,"getOrderByOperators"),__name(normalizeRelation,"normalizeRelation"),__name(mapRelationalRow,"mapRelationalRow")}}),hc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sql/functions/aggregate.js"(){tn()}}),fc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sql/functions/vector.js"(){tn()}}),yc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sql/functions/index.js"(){tn(),hc(),fc()}}),wc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sql/index.js"(){tn(),Zl(),yc(),ui()}}),Sc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/view-base.js"(){tn(),gs(),ui(),ec=class extends ii{static{__name(this,"PgViewBase")}static[ss]="PgViewBase"}}}),bc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/dialect.js"(){tn(),pi(),Rl(),hs(),gs(),Ml(),xl(),Gl(),gc(),wc(),ui(),Qs(),ai(),Ei(),Js(),Sc(),tc=class{static{__name(this,"PgDialect")}static[ss]="PgDialect";casing;constructor(e){this.casing=new Tl(e?.casing)}async migrate(e,t,n){const r="string"==typeof n?"__drizzle_migrations":n.migrationsTable??"__drizzle_migrations",o="string"==typeof n?"drizzle":n.migrationsSchema??"drizzle",s=sql`
2
+ import*as e from"path";import t,{join as n,dirname as r,parse as o,relative as s,isAbsolute as i,resolve as a,extname as l,basename as u}from"path";import{fileURLToPath as d,pathToFileURL as m,URL as g}from"url";import h,{z as f}from"zod";import*as y from"os";import w,{tmpdir as S,homedir as E}from"os";import*as C from"fs";import v,{existsSync as k,promises as T,readFileSync as _,constants as x,mkdirSync as P,writeFileSync as A,readdirSync as I,statSync as N,createReadStream as R,appendFileSync as M}from"fs";import{execSync as L,exec as $,spawn as D,execFile as O}from"child_process";import*as F from"fs/promises";import q,{mkdir as j,writeFile as B,rm as U,readFile as z,unlink as H,readdir as W}from"fs/promises";import*as G from"crypto";import V,{randomUUID as Q}from"crypto";import*as K from"http";import{createServer as Y}from"http";import J,{memo as X,useState as Z,useRef as ee,useEffect as te,useMemo as ne,useCallback as re}from"react";import{Box as oe,Text as se,Static as ie,useStdout as ae,useInput as le,render as ce,useApp as ue,Newline as de}from"ink";import me from"chalk";import pe from"picocolors";import ge from"strip-ansi";import he from"sharp";import fe from"open";import ye from"@opentelemetry/sdk-node";import we from"@opentelemetry/exporter-trace-otlp-http";import Se from"@opentelemetry/resources";import be from"@opentelemetry/semantic-conventions";import Ee from"@opentelemetry/sdk-trace-node";import{trace as Ce,SpanStatusCode as ve,context as ke}from"@opentelemetry/api";import{v4 as Te}from"uuid";import{Command as _e,Option as xe}from"commander";import Pe from"figures";import Ae from"ora";import*as Ie from"net";import Ne from"net";import Re from"tls";import Me from"stream";import{performance as Le}from"perf_hooks";import $e from"@sindresorhus/slugify";import{EventEmitter as De}from"events";import Oe from"ink-spinner";import*as Fe from"@clack/prompts";import{multiselect as qe,confirm as je,note as Be,cancel as Ue,select as ze,isCancel as He,password as We}from"@clack/prompts";import Ge from"gray-matter";import"dotenv/config";import Ve from"dedent";import Qe from"log-symbols";import{minimatch as Ke}from"minimatch";import{glob as Ye}from"glob";import{quote as Je}from"shell-quote";import Xe from"@crosscopy/clipboard";import{createRequire as Ze}from"module";import et from"ansi-escapes";import tt from"string-width";import*as nt from"readline";import rt from"readline";import{promisify as ot}from"util";import st from"semver";import it from"strip-json-comments";import at from"ink-select-input";import*as lt from"diff";import{Marked as ct}from"marked";import ut from"marked-terminal";import dt from"open-editor";import mt from"ignore";import pt from"is-unicode-supported";import{wrapAnsi as gt}from"fast-wrap-ansi";import ht from"terminal-link";import*as ft from"process";var yt,wt,St,bt,Et,Ct,vt,kt,Tt,_t,xt,Pt,At,It,Nt,Rt,Mt,Lt,$t,Dt,Ot,Ft,qt,jt,Bt,Ut,zt,Ht,Wt,Gt,Vt,Qt,Kt,Yt,Jt,Xt,Zt=Object.defineProperty,en=Object.getOwnPropertyNames,__name=(e,t)=>Zt(e,"name",{value:t,configurable:!0}),__esm=(e,t)=>function __init(){return e&&(t=(0,e[en(e)[0]])(e=0)),t},__export=(e,t)=>{for(var n in t)Zt(e,n,{get:t[n],enumerable:!0})},tn=__esm({"../../node_modules/.pnpm/tsup@8.5.1_jiti@2.6.1_postcss@8.5.12_tsx@4.21.0_typescript@5.9.3_yaml@2.8.3/node_modules/tsup/assets/esm_shims.js"(){}}),nn=__esm({"../shared/src/constants/tracing.ts"(){tn(),yt="command_code_cli_tracing"}}),rn=__esm({"src/utils/telemetry/constants.ts"(){tn(),nn(),wt="https://api.axiom.co/v1/traces",St="xaat-818bfed7-bc54-45bc-8bfa-d1198174064a",bt="xaat-fde9e569-4a3c-4994-aa0d-7a632332d220",Et="xaat-add69148-8f73-4833-921d-bc843285c95f",Ct="command-code-cli",vt=["apikey","api_key","api-key","token","secret","authorization","auth","password","passwd","credential","auth_key","authkey","access_token","access-token","refresh_token","refresh-token","client_secret","clientsecret","private_key","privatekey","bearer","key"],kt=["content","body"],Tt=1e3}});function getModelCategory({provider:e,model:t}){if(e===Rt.VERCEL_AI_GATEWAY||e===Rt.CLOUDFLARE_AI_GATEWAY)return"opensource";const n=Dt[e];if(!n)return null;const r=`${e}:${t}`,o=n.find(e=>e.id===r);return o?.category??null}function buildModelGroups(e){const t=Object.values(Ht),n=[];for(const r of Object.values(Qt)){if(!("co"===e?r.visibleInCoMode:r.visibleInNormalMode))continue;const o=t.filter(e=>r.supportedModelProviders.includes(e.provider));o.length>0&&n.push({providerId:r.id,label:r.label,models:o})}return n}var on,sn=__esm({"../shared/src/constants.ts"(){tn(),xt="--xco",Pt={INTERNAL_TEAM_FLAG_HEADER:`x-${(_t="--co").replace("--","")}-flag`,OAUTH_TOKEN:"x-oauth-token",OAUTH_PROVIDER:"x-oauth-provider",PROJECT_SLUG:"x-project-slug",TASTE_LEARNING:"x-taste-learning",TASTE_USAGE:"x-taste-usage",CLI_ENVIRONMENT:"x-cli-environment",CLI_VERSION:"x-command-code-version",OSS_PRIMARY_PROVIDER:"x-oss-primary-provider",SESSION_ID:"x-session-id"},At={ALPHA:{GENERATE:"/alpha/generate",WHOAMI:"/alpha/whoami",NAMESPACES:"/alpha/namespaces",AGENT:{GENERATE:"/alpha/agent/generate"},SANDBOX:{START:"/alpha/sandbox/start",STREAM:"/alpha/sandbox/stream",STATUS:"/alpha/sandbox/status",STOP:"/alpha/sandbox/stop",SESSIONS:"/alpha/sandbox/sessions"},SHARE:{CREATE:"/alpha/share/create",DELETE:"/alpha/share/delete",DATA:"/alpha/share/data",APPEND:"/alpha/share/append",CONNECT:"/alpha/share/connect"},DEVREL_THREAD:{CREATE:"/alpha/devrel-thread/create",DELETE:"/alpha/devrel-thread/delete",DATA:"/alpha/devrel-thread/data",UPDATE:"/alpha/devrel-thread/update"},TASTE:{GET:"/alpha/taste/:projectSlug",UPDATE:"/alpha/taste/:projectSlug/update",DELETE:"/alpha/taste/:projectSlug",LEARN:"/alpha/learn"},BILLING:{CREDITS:"/alpha/billing/credits",SUBSCRIPTIONS:"/alpha/billing/subscriptions"},USAGE:{SUMMARY:"/alpha/usage/summary"},LIFECYCLE_EVENTS:{TRACK:"/alpha/lifecycle-events"}},BETA:{TASTE:{PACKAGES:{UPLOAD:"/beta/taste/packages/:namespace",LIST:"/beta/taste/packages",GET:"/beta/taste/packages/:namespace/:packageName",FILES:"/beta/taste/packages/:namespace/:packageName/files",DOWNLOAD:"/beta/taste/packages/:namespace/:packageName/download",DELETE:"/beta/taste/packages/:namespace/:packageName"}}},INTERNAL:{ADMIN:{USERS:"/internal/admin/users",GRANT_CREDITS:"/internal/admin/grant-credits",ORGS:"/internal/admin/orgs",GRANT_ORG_CREDITS:"/internal/admin/grant-org-credits",ENTITY_TYPE:"/internal/admin/entity-type",BAN_USER:"/internal/admin/ban-user",BAN_ORG:"/internal/admin/ban-org",UNBAN_USER:"/internal/admin/unban-user",UNBAN_ORG:"/internal/admin/unban-org",DELETE_USER:"/internal/admin/delete-user",DELETE_ORG:"/internal/admin/delete-org",MIGRATE:{PLAN_IDS:"/internal/admin/migrations/plan-ids"}},PROFILE:{GET:"/internal/profile/:login",PACKAGES:"/internal/profile/:login/packages",PACKAGE_GET:"/internal/profile/:login/packages/:packageName",PACKAGE_DOWNLOAD:"/internal/profile/:login/packages/:packageName/download",FOLLOWERS:"/internal/profile/:login/followers",FOLLOWING:"/internal/profile/:login/following"},API_KEYS:{CREATE:"/internal/api-keys/create",LIST:"/internal/api-keys/list",DELETE:"/internal/api-keys/delete"},BILLING:{CREDITS:{GET:"/internal/billing/credits"},CUSTOMERS:{GET:"/internal/billing/customers",UPSERT:"/internal/billing/customers",SETUP_INTENT:"/internal/billing/customers/setup-intent",PAYMENT_METHOD:"/internal/billing/customers/payment-method",SET_DEFAULT_PAYMENT_METHOD:"/internal/billing/customers/payment-method/set-default",INVOICES:"/internal/billing/customers/invoices"},CHECKOUT_ELIGIBILITY:"/internal/billing/checkout/eligibility",SUBSCRIPTIONS:{GET:"/internal/billing/subscriptions"},WEBHOOK:"/internal/billing/webhook"},ORGS:{LIST:"/internal/orgs",GET:"/internal/orgs/:login",CREATE:"/internal/orgs",UPDATE:"/internal/orgs/:id",DELETE:"/internal/orgs/:id",AVATAR:"/internal/orgs/:id/avatar",MEMBERS:{LIST:"/internal/orgs/:id/members",ADD:"/internal/orgs/:id/members",UPDATE:"/internal/orgs/:id/members/:userId",REMOVE:"/internal/orgs/:id/members/:userId"},INVITATIONS:{LIST:"/internal/orgs/:id/invitations",SEND:"/internal/orgs/:id/invitations",ACCEPT:"/internal/invitations/:token/accept",CANCEL:"/internal/invitations/:id"},FOLLOW:"/internal/orgs/:orgId/follow",FOLLOWERS:"/internal/orgs/:orgId/followers"},USER:{SETTINGS:"/internal/user/settings",AVATAR:"/internal/user/avatar",FOLLOW:"/internal/users/:userId/follow",FOLLOWERS:"/internal/users/:userId/followers",FOLLOWING:"/internal/users/:userId/following"},USAGE:{LIST:"/internal/usage",SUMMARY:"/internal/usage/summary",CHARTS:"/internal/usage/charts"},TASTE:{PACKAGES:{LIST:"/internal/taste/packages",BATCH:"/internal/taste/packages",GET:"/internal/taste/packages/:namespace/:packageName",FILES:"/internal/taste/packages/:namespace/:packageName/files",DOWNLOAD:"/internal/taste/packages/:namespace/:packageName/download",DELETE:"/internal/taste/packages/:namespace/:packageName",UPDATE:"/internal/taste/packages/:namespace/:packageName/update",STAR:"/internal/taste/packages/:namespace/:packageName/star",PIN:"/internal/taste/packages/:namespace/:packageName/pin"}}}},It={ALPHA:{TASTE:{GET:new RegExp("/alpha/taste/[a-z0-9-]+"),UPDATE:new RegExp("/alpha/taste/[a-z0-9-]+/update"),DELETE:new RegExp("/alpha/taste/[a-z0-9-]+/rules/[a-z0-9-]+"),LIST:new RegExp("/alpha/taste/[a-z0-9-]+/rules")},PACKAGES:{FILES:new RegExp("/alpha/v1/taste/packages/[a-zA-Z0-9_-]+/files"),GET:new RegExp("/alpha/v1/taste/packages/[a-zA-Z0-9_-]+"),DOWNLOAD:new RegExp("/alpha/v1/taste/packages/[a-zA-Z0-9_-]+/download")}},BETA:{TASTE_PACKAGES:{UPLOAD:new RegExp("^/beta/taste/packages/[a-zA-Z0-9_-]+$"),FILES:new RegExp("/beta/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/files"),GET:new RegExp("/beta/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+"),DOWNLOAD:new RegExp("/beta/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/download")}},INTERNAL:{ORGS:{GET:new RegExp("/internal/orgs/[a-zA-Z0-9_-]+"),FOLLOW:new RegExp("/internal/orgs/[a-zA-Z0-9-]+/follow"),FOLLOWERS:new RegExp("/internal/orgs/[a-zA-Z0-9-]+/followers")},USER:{FOLLOW:new RegExp("/internal/users/[a-zA-Z0-9-]+/follow"),FOLLOWERS:new RegExp("/internal/users/[a-zA-Z0-9-]+/followers"),FOLLOWING:new RegExp("/internal/users/[a-zA-Z0-9-]+/following")},TASTE:{PACKAGES:{GET:new RegExp("/internal/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+"),FILES:new RegExp("/internal/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/files"),DOWNLOAD:new RegExp("/internal/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/download"),UPDATE:new RegExp("/internal/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/update"),STAR:new RegExp("/internal/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/star"),PIN:new RegExp("/internal/taste/packages/[a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+/pin")}}}},Object.values(It.ALPHA.TASTE),Object.values(It.BETA.TASTE_PACKAGES),new RegExp("^/alpha/sandbox/status/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"),new RegExp("^/alpha/sandbox/stop/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"),new RegExp("^/alpha/sandbox/stream/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"),At.ALPHA.GENERATE,At.ALPHA.AGENT.GENERATE,At.ALPHA.WHOAMI,At.ALPHA.NAMESPACES,At.ALPHA.SANDBOX.START,At.ALPHA.SHARE.CREATE,At.ALPHA.SHARE.DELETE,At.ALPHA.SHARE.APPEND,At.ALPHA.DEVREL_THREAD.CREATE,At.ALPHA.DEVREL_THREAD.DELETE,At.ALPHA.DEVREL_THREAD.UPDATE,At.ALPHA.TASTE.LEARN,At.ALPHA.TASTE.DELETE,At.ALPHA.TASTE.GET,At.ALPHA.TASTE.UPDATE,Object.values(At.BETA.TASTE.PACKAGES),At.ALPHA.BILLING.CREDITS,At.ALPHA.BILLING.SUBSCRIPTIONS,At.ALPHA.USAGE.SUMMARY,At.ALPHA.LIFECYCLE_EVENTS.TRACK,At.INTERNAL.ADMIN.USERS,At.INTERNAL.ADMIN.ORGS,At.INTERNAL.ADMIN.ENTITY_TYPE,At.INTERNAL.USER.AVATAR,At.INTERNAL.USER.SETTINGS,At.INTERNAL.API_KEYS.LIST,At.INTERNAL.API_KEYS.CREATE,At.INTERNAL.API_KEYS.DELETE,At.INTERNAL.USAGE.LIST,At.INTERNAL.USAGE.SUMMARY,At.INTERNAL.USAGE.CHARTS,At.INTERNAL.ADMIN.GRANT_CREDITS,At.INTERNAL.ADMIN.GRANT_ORG_CREDITS,At.INTERNAL.ADMIN.BAN_USER,At.INTERNAL.ADMIN.BAN_ORG,At.INTERNAL.ADMIN.UNBAN_USER,At.INTERNAL.ADMIN.UNBAN_ORG,At.INTERNAL.ADMIN.DELETE_USER,At.INTERNAL.ADMIN.DELETE_ORG,At.INTERNAL.BILLING.CREDITS.GET,At.INTERNAL.BILLING.CUSTOMERS.GET,At.INTERNAL.BILLING.CUSTOMERS.UPSERT,At.INTERNAL.BILLING.CUSTOMERS.SETUP_INTENT,At.INTERNAL.BILLING.CUSTOMERS.PAYMENT_METHOD,At.INTERNAL.BILLING.CUSTOMERS.SET_DEFAULT_PAYMENT_METHOD,At.INTERNAL.BILLING.CUSTOMERS.INVOICES,At.INTERNAL.BILLING.SUBSCRIPTIONS.GET,At.INTERNAL.BILLING.CHECKOUT_ELIGIBILITY,At.INTERNAL.ORGS.LIST,At.INTERNAL.ORGS.GET,At.INTERNAL.ORGS.CREATE,At.INTERNAL.ORGS.UPDATE,At.INTERNAL.ORGS.DELETE,At.INTERNAL.ORGS.MEMBERS.LIST,At.INTERNAL.ORGS.MEMBERS.ADD,At.INTERNAL.ORGS.MEMBERS.UPDATE,At.INTERNAL.ORGS.MEMBERS.REMOVE,At.INTERNAL.ORGS.INVITATIONS.LIST,At.INTERNAL.ORGS.INVITATIONS.SEND,At.INTERNAL.ORGS.INVITATIONS.ACCEPT,At.INTERNAL.ORGS.INVITATIONS.CANCEL,At.INTERNAL.TASTE.PACKAGES.LIST,At.INTERNAL.ADMIN.MIGRATE.PLAN_IDS,Object.values(It.INTERNAL.ORGS),Object.values(It.INTERNAL.USER),Object.values(It.INTERNAL.TASTE.PACKAGES),Nt={INTERNAL:{PROFILE:{GET:new RegExp("/internal/profile/[a-zA-Z0-9_-]+"),PACKAGES:new RegExp("/internal/profile/[a-zA-Z0-9_-]+/packages"),FOLLOWING:new RegExp("/internal/profile/[a-zA-Z0-9_-]+/following"),FOLLOWERS:new RegExp("/internal/profile/[a-zA-Z0-9_-]+/followers"),PACKAGE_GET:new RegExp("/internal/profile/[a-zA-Z0-9_-]+/packages/[a-zA-Z0-9_-]+"),PACKAGE_DOWNLOAD:new RegExp("/internal/profile/[a-zA-Z0-9_-]+/packages/[a-zA-Z0-9_-]+/download")}}},Object.values(Nt.INTERNAL.PROFILE),Mt={"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},Lt=[(Rt={ANTHROPIC:"anthropic",OPENAI:"openai",BASETEN:"baseten",VERCEL_AI_GATEWAY:"vercel-ai-gateway",CLOUDFLARE_AI_GATEWAY:"cloudflare-ai-gateway"}).VERCEL_AI_GATEWAY,Rt.BASETEN,Rt.CLOUDFLARE_AI_GATEWAY],$t=Lt[0],Dt={[Rt.ANTHROPIC]:[{id:"anthropic:claude-sonnet-4-20250514",provider:"Anthropic",category:"premium",promptCost:3,completionCost:15,cacheWrite5mCost:3.75,cacheWrite1hCost:6,cacheHitCost:.3},{id:"anthropic:claude-sonnet-4-5-20250929",provider:"Anthropic",category:"premium",promptCost:3,completionCost:15,cacheWrite5mCost:3.75,cacheWrite1hCost:6,cacheHitCost:.3},{id:"anthropic:claude-opus-4-5-20251101",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-sonnet-4-6",provider:"Anthropic",category:"premium",promptCost:3,completionCost:15,cacheWrite5mCost:3.75,cacheWrite1hCost:6,cacheHitCost:.3},{id:"anthropic:claude-opus-4-7",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-opus-4-6",provider:"Anthropic",category:"premium",promptCost:5,completionCost:25,cacheWrite5mCost:6.25,cacheWrite1hCost:10,cacheHitCost:.5},{id:"anthropic:claude-haiku-4-5-20251001",provider:"Anthropic",category:"premium",promptCost:1,completionCost:5,cacheWrite5mCost:1.25,cacheWrite1hCost:2,cacheHitCost:.1}],[Rt.OPENAI]:[{id:"openai:gpt-5.5",provider:"OpenAI",category:"premium",promptCost:5,completionCost:30,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.5},{id:"openai:gpt-5.4",provider:"OpenAI",category:"premium",promptCost:2.5,completionCost:15,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.25},{id:"openai:gpt-5.3-codex",provider:"OpenAI",category:"premium",promptCost:2,completionCost:8,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.5},{id:"openai:gpt-5.4-mini",provider:"OpenAI",category:"premium",promptCost:.75,completionCost:4.5,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.075}],[Rt.BASETEN]:[{id:"baseten:zai-org/GLM-5",provider:"Baseten",category:"opensource",promptCost:.95,completionCost:3.15,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:0},{id:"baseten:moonshotai/Kimi-K2.5",provider:"Baseten",category:"opensource",promptCost:.6,completionCost:3,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:0},{id:"baseten:moonshotai/Kimi-K2.6",provider:"Baseten",category:"opensource",promptCost:.95,completionCost:4,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:.16},{id:"baseten:MiniMaxAI/MiniMax-M2.5",provider:"Baseten",category:"opensource",promptCost:.5,completionCost:2,cacheWrite5mCost:0,cacheWrite1hCost:0,cacheHitCost:0}],[Rt.VERCEL_AI_GATEWAY]:[]},__name(getModelCategory,"getModelCategory"),Ot={"individual-go":{premium:0,opensource:10,total:10},"individual-pro":{premium:15,opensource:15,total:30},"individual-max":{premium:100,opensource:50,total:150},"individual-ultra":{premium:200,opensource:100,total:300},"teams-pro":{premium:40,opensource:0,total:40}},Ft={"individual-go":"Go","individual-pro":"Pro","individual-max":"Max","individual-ultra":"Ultra","teams-pro":"Teams Pro"},qt=[50,75,90],h.enum(["owner","admin","member"]),jt={LEARN_TASTE:"learn-taste",TASTE:"taste",TERMINAL_SETUP:"terminal-setup"},Bt={MAX_PROMPT_TOKENS:25e3,MAX_PROMPT_CHARS:1e5,DB_PROMPT_MAX_WORDS:10},Ut="chatComplete",zt="responses",(Ht={SONNET_4_6:{id:"claude-sonnet-4-6",provider:Rt.ANTHROPIC,spec:Ut,label:"Claude Sonnet 4.6",name:"Claude Sonnet 4.6",description:"best combo of speed & intelligence (recommended)"},OPUS_4_7:{id:"claude-opus-4-7",provider:Rt.ANTHROPIC,spec:Ut,label:"Claude Opus 4.7",name:"Claude Opus 4.7",description:"most intelligent for agents and coding",reasoning:!0},OPUS_4_6:{id:"claude-opus-4-6",provider:Rt.ANTHROPIC,spec:Ut,label:"Claude Opus 4.6",name:"Claude Opus 4.6",description:"most capable for complex work"},HAIKU_4_5:{id:"claude-haiku-4-5-20251001",provider:Rt.ANTHROPIC,spec:Ut,label:"Claude Haiku 4.5",name:"Claude Haiku 4.5",description:"fastest & most compact, great for quick tasks"},GPT_5_5:{id:"gpt-5.5",provider:Rt.OPENAI,spec:zt,label:"GPT-5.5",name:"GPT-5.5",description:"latest frontier model for general complex work",reasoning:!0},GPT_5_4:{id:"gpt-5.4",provider:Rt.OPENAI,spec:zt,label:"GPT-5.4",name:"GPT-5.4",description:"frontier model for general complex work",reasoning:!0},GPT_5_3_CODEX:{id:"gpt-5.3-codex",provider:Rt.OPENAI,spec:zt,label:"GPT-5.3 Codex",name:"GPT-5.3 Codex",description:"frontier coding model",reasoning:!0},GPT_5_4_MINI:{id:"gpt-5.4-mini",provider:Rt.OPENAI,spec:zt,label:"GPT-5.4 Mini",name:"GPT-5.4 Mini",description:"fast, cost-effective model for everyday tasks",reasoning:!0},KIMI_K2_6:{id:"moonshotai/Kimi-K2.6",provider:$t,spec:Ut,label:"Kimi K2.6",name:"Kimi K2.6",description:"long-horizon coding with vision"},KIMI_K2_5:{id:"moonshotai/Kimi-K2.5",provider:$t,spec:Ut,label:"Kimi K2.5",name:"Kimi K2.5",description:"multimodal frontend coding"},GLM_5_1:{id:"zai-org/GLM-5.1",provider:$t,spec:Ut,label:"GLM-5.1",name:"GLM-5.1",description:"long-horizon autonomous coding agent"},GLM_5:{id:"zai-org/GLM-5",provider:$t,spec:Ut,label:"GLM-5",name:"GLM-5",description:"multi-mode thinking & long-range planning"},MINIMAX_M2_7:{id:"MiniMaxAI/MiniMax-M2.7",provider:$t,spec:Ut,label:"MiniMax M2.7",name:"MiniMax M2.7",description:"end-to-end software engineering agent"},MINIMAX_M2_5:{id:"MiniMaxAI/MiniMax-M2.5",provider:$t,spec:Ut,label:"MiniMax M2.5",name:"MiniMax M2.5",description:"cross-platform full-stack agentic dev"},DEEPSEEK_V4_PRO:{id:"deepseek/deepseek-v4-pro",provider:$t,spec:Ut,label:"DeepSeek V4 Pro",name:"DeepSeek V4 Pro",description:"hybrid-attention long-context reasoning",reasoning:!0},DEEPSEEK_V4_FLASH:{id:"deepseek/deepseek-v4-flash",provider:$t,spec:Ut,label:"DeepSeek V4 Flash",name:"DeepSeek V4 Flash",description:"fast hybrid-attention reasoning",reasoning:!0},QWEN_3_6_MAX_PREVIEW:{id:"Qwen/Qwen3.6-Max-Preview",provider:$t,spec:Ut,label:"Qwen 3.6 Max Preview",name:"Qwen 3.6 Max Preview",description:"vibe coding & efficient agent execution",reasoning:!0},QWEN_3_6_PLUS:{id:"Qwen/Qwen3.6-Plus",provider:$t,spec:Ut,label:"Qwen 3.6 Plus",name:"Qwen 3.6 Plus",description:"agentic coding & reasoning",reasoning:!0}}).SONNET_4_6.id,Ht.OPUS_4_7.id,Ht.OPUS_4_6.id,Ht.HAIKU_4_5.id,Rt.VERCEL_AI_GATEWAY,Rt.BASETEN,Rt.VERCEL_AI_GATEWAY,Rt.VERCEL_AI_GATEWAY,Rt.BASETEN,Rt.CLOUDFLARE_AI_GATEWAY,Rt.VERCEL_AI_GATEWAY,Rt.BASETEN,Rt.CLOUDFLARE_AI_GATEWAY,Rt.VERCEL_AI_GATEWAY,Rt.BASETEN,Rt.VERCEL_AI_GATEWAY,Rt.VERCEL_AI_GATEWAY,Rt.VERCEL_AI_GATEWAY,Rt.VERCEL_AI_GATEWAY,Rt.VERCEL_AI_GATEWAY,Wt={"claude-sonnet-4-20250514":Ht.SONNET_4_6.id,"claude-sonnet-4-5-20250929":Ht.SONNET_4_6.id,"claude-opus-4-5-20251101":Ht.OPUS_4_7.id,"claude-opus-4-6":Ht.OPUS_4_7.id},Gt=Ht.KIMI_K2_5.id,Vt={[Rt.ANTHROPIC]:"Anthropic",[Rt.OPENAI]:"OpenAI",[Rt.BASETEN]:"Open Source",[Rt.VERCEL_AI_GATEWAY]:"Open Source"},Qt={"command-code":{id:"command-code",label:"Command Code",shortLabel:"cmd",description:"recommended",supportedModelProviders:[Rt.ANTHROPIC,Rt.OPENAI,Rt.BASETEN,Rt.VERCEL_AI_GATEWAY],requiresAuth:!1,visibleInCoMode:!0,visibleInNormalMode:!0,showProviderLabelInSelector:!0},anthropic:{id:"anthropic",label:"Anthropic",shortLabel:"anth",description:"Claude Pro/Max",supportedModelProviders:[Rt.ANTHROPIC],requiresAuth:!0,visibleInCoMode:!0,visibleInNormalMode:!1,showProviderLabelInSelector:!1},"github-copilot":{id:"github-copilot",label:"GitHub Copilot",shortLabel:"copilot",description:"Copilot subscription",supportedModelProviders:[Rt.ANTHROPIC,Rt.OPENAI],requiresAuth:!0,visibleInCoMode:!0,visibleInNormalMode:!1,showProviderLabelInSelector:!0},codex:{id:"codex",label:"ChatGPT (Codex)",shortLabel:"codex",description:"ChatGPT Pro/Plus subscription",supportedModelProviders:[Rt.OPENAI],requiresAuth:!0,visibleInCoMode:!0,visibleInNormalMode:!1,showProviderLabelInSelector:!1}},__name(buildModelGroups,"buildModelGroups"),Kt=buildModelGroups("co"),Yt=buildModelGroups("normal"),new Set(["cc2@www3.in","cc3@www3.in","cc4@www3.in","cc5@www3.in","cc6@www3.in","cc7@www3.in","cc8@www3.in","cc9@www3.in","cc10@www3.in"].map(e=>e.toLowerCase())),Jt=["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/.svn/**","**/.hg/**","**/coverage/**","**/*.log","**/tmp/**","**/temp/**","**/.DS_Store","**/Thumbs.db","**/*.tmp","**/*.cache"],Xt={TIER_1_THRESHOLD:.5,TIER_2_THRESHOLD:.8,TIER_3_THRESHOLD:.9,TIER_1_KEEP_COUNT:20,TIER_2_KEEP_COUNT:10,KEEP_RECENT_TOKENS:3e4}}}),an=__esm({"src/utils/env.ts"(){tn(),on=__name(()=>{const e=process.argv.includes("--local"),t=process.argv.includes("--staging");return e?"local":t?"staging":"prod"},"getApiEnv")}});function getAuthDir(){return t.join(w.homedir(),".commandcode")}function getAuthFile(e){const n=e??on(),r="local"===n?"auth.local.json":"staging"===n?"auth.staging.json":"auth.json";return t.join(getAuthDir(),r)}function getConfigFile(e){const n=e??on(),r="local"===n?"config.local.json":"staging"===n?"config.staging.json":"config.json";return t.join(getAuthDir(),r)}var ln,cn,un=__esm({"src/utils/auth/auth-paths.ts"(){tn(),sn(),an(),__name(getAuthDir,"getAuthDir"),__name(getAuthFile,"getAuthFile"),__name(getConfigFile,"getConfigFile")}});function normalizePathForComparison(e){const n=t.normalize(e);return"win32"===process.platform?n.toLowerCase():n}function areSamePath(e,t){return normalizePathForComparison(e)===normalizePathForComparison(t)}function getCanonicalPath(e){try{return v.realpathSync(e)}catch(n){const r=n.code;return"ENOENT"!==r&&console.error(`Warning: Could not resolve canonical path for "${e}" (${r}). Path comparison may be less reliable.`),t.normalize(e)}}function canonicalizeForLookup(e){try{let n=t.resolve(e);const r=[];for(;!v.existsSync(n);){const o=t.dirname(n);if(o===n)return t.normalize(e);r.unshift(t.basename(n)),n=o}return t.join(getCanonicalPath(n),...r)}catch{return t.normalize(e)}}function formatDirectoryForDisplay(e){const n=canonicalizeForLookup(t.normalize(e)),r=getCanonicalPath(process.cwd()),o=w.homedir();if(isPathInDirectory(n,r)){const e=t.relative(r,n);return e?`./${e}`:"."}if(o&&isPathInDirectory(n,o)){const e=t.relative(o,n);return e?`~/${e}`:"~"}return n}function isPathInDirectory(e,n){const r=normalizePathForComparison(e),o=normalizePathForComparison(n),s=o.endsWith(t.sep)?o:o+t.sep;return r===o||r.startsWith(s)}function findSensitiveDirectoryConflict(e){const n=[t.normalize(e),getCanonicalPath(e)];for(const e of ln){const r=[t.normalize(e),getCanonicalPath(e)];for(const e of n)for(const t of r)if(isPathInDirectory(e,t)||isPathInDirectory(t,e))return t}return null}function resolveDirectoryPath(e){let n=e.trim();return n.startsWith("~")&&(n=t.join(w.homedir(),n.slice(1))),t.isAbsolute(n)||(n=t.resolve(process.cwd(),n)),t.normalize(n)}function createSkippedResult(e){const{inputPath:t,absolutePath:n,code:r}=e,o=formatDirectoryForDisplay(n);return{status:"skipped",inputPath:t,absolutePath:n,displayPath:o,code:r,message:"ALREADY_IN_WORKSPACE"===r?`${o} is already accessible from the current workspace`:`${o} is already added`}}function createErrorResult(e){const{inputPath:t,code:n,message:r}=e;return{status:"error",inputPath:t,code:n,message:r}}function addDirectory(e){const t=e.trim();if(!t)return createErrorResult({inputPath:e,code:"EMPTY_PATH",message:"Directory path cannot be empty"});const n=resolveDirectoryPath(e);let r,o;try{r=v.statSync(n)}catch(n){return"ENOENT"===n.code?createErrorResult({inputPath:e,code:"NOT_FOUND",message:`Directory does not exist: ${t}`}):createErrorResult({inputPath:e,code:"NOT_READABLE",message:`Directory is not readable: ${t}`})}if(!r.isDirectory())return createErrorResult({inputPath:e,code:"NOT_A_DIRECTORY",message:`${formatDirectoryForDisplay(n)} is not a directory`});try{v.accessSync(n,v.constants.R_OK),o=getCanonicalPath(n)}catch{return createErrorResult({inputPath:e,code:"NOT_READABLE",message:`Directory is not readable: ${t}`})}const s=findSensitiveDirectoryConflict(o);if(s)return createErrorResult({inputPath:e,code:"SENSITIVE_DIRECTORY",message:`Cannot add ${formatDirectoryForDisplay(o)} because it overlaps sensitive path ${formatDirectoryForDisplay(s)}`});const i=getCanonicalPath(process.cwd());return isPathInDirectory(o,i)?createSkippedResult({inputPath:e,absolutePath:o,code:"ALREADY_IN_WORKSPACE"}):cn.some(e=>isPathInDirectory(o,e)||isPathInDirectory(e,o))?createSkippedResult({inputPath:e,absolutePath:o,code:"ALREADY_ADDED"}):(cn.push(o),{status:"added",inputPath:e,absolutePath:o,displayPath:formatDirectoryForDisplay(o)})}function getAdditionalDirectories(){return[...cn]}function removeAdditionalDirectory(e){if(!e.trim())return!1;const t=getCanonicalPath(resolveDirectoryPath(e)),n=cn.findIndex(e=>areSamePath(t,e));return-1!==n&&(cn.splice(n,1),!0)}function isPathInAdditionalDirs(e){const t=canonicalizeForLookup(e);return cn.some(e=>isPathInDirectory(t,e))}function isPathInWorkspace(e){const t=canonicalizeForLookup(e);return isPathInDirectory(t,getCanonicalPath(process.cwd()))||isPathInAdditionalDirs(t)}function getWorkspaceDirectories(){return[t.resolve(process.cwd()),...getAdditionalDirectories()]}var dn=__esm({"src/utils/additional-dirs.ts"(){tn(),ln=new Set(["/etc","/root","/proc","/sys","/dev",t.join(w.homedir(),".ssh"),t.join(w.homedir(),".gnupg"),t.join(w.homedir(),".aws")]),cn=[],__name(normalizePathForComparison,"normalizePathForComparison"),__name(areSamePath,"areSamePath"),__name(getCanonicalPath,"getCanonicalPath"),__name(canonicalizeForLookup,"canonicalizeForLookup"),__name(formatDirectoryForDisplay,"formatDirectoryForDisplay"),__name(isPathInDirectory,"isPathInDirectory"),__name(findSensitiveDirectoryConflict,"findSensitiveDirectoryConflict"),__name(resolveDirectoryPath,"resolveDirectoryPath"),__name(createSkippedResult,"createSkippedResult"),__name(createErrorResult,"createErrorResult"),__name(addDirectory,"addDirectory"),__name(getAdditionalDirectories,"getAdditionalDirectories"),__name(removeAdditionalDirectory,"removeAdditionalDirectory"),__name(isPathInAdditionalDirs,"isPathInAdditionalDirs"),__name(isPathInWorkspace,"isPathInWorkspace"),__name(getWorkspaceDirectories,"getWorkspaceDirectories")}});function getCurrentWorkingDirectory(){return global.COMMAND_CODE_CWD||process.cwd()}function getCurrentDate(){return(new Date).toISOString().split("T")[0]}function getEnvironmentInfo(){return`${w.platform()}-${w.arch()}, Node.js ${process.version}`}function getRootDirectoryStructure(){const e=getCurrentWorkingDirectory(),t=new Set(["node_modules","dist","build",".git",".svn",".hg","coverage",".nyc_output",".cache","tmp","temp",".next",".nuxt","out"]);try{return v.readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()).filter(e=>!e.name.startsWith(".")).filter(e=>!t.has(e.name)).map(e=>e.name).sort()}catch{return[]}}function getAccessibleDirectoryStructure(){return[...getRootDirectoryStructure(),...getAdditionalDirectories().map(e=>`scope:${formatDirectoryForDisplay(e)}`)]}function isGitRepository(){try{return L("git rev-parse --git-dir",{stdio:"ignore",cwd:getCurrentWorkingDirectory()}),!0}catch{return!1}}function getCurrentBranch(){try{return L("git branch --show-current",{encoding:"utf8",cwd:getCurrentWorkingDirectory(),stdio:["pipe","pipe","ignore"]}).trim()}catch{return""}}function getMainBranch(){try{const e=L("git branch -r",{encoding:"utf8",cwd:getCurrentWorkingDirectory(),stdio:["pipe","pipe","ignore"]});return e.includes("origin/main")?"main":e.includes("origin/master")?"master":"main"}catch{return""}}function getGitStatus(){try{const e=L("git status --porcelain",{encoding:"utf8",cwd:getCurrentWorkingDirectory(),stdio:["pipe","pipe","ignore"]}).trim();if(!e)return"Working tree clean";const t=e.split("\n"),n=t.filter(e=>e.startsWith(" M")).length,r=t.filter(e=>e.startsWith("A ")).length,o=t.filter(e=>e.startsWith(" D")).length,s=t.filter(e=>e.startsWith("??")).length,i=[];return n>0&&i.push(`M ${n}`),r>0&&i.push(`A ${r}`),o>0&&i.push(`D ${o}`),s>0&&i.push(`?? ${s}`),i.join(", ")||e}catch{return""}}function getRecentCommits(){try{const e=L("git log --oneline -3",{encoding:"utf8",cwd:getCurrentWorkingDirectory(),stdio:["pipe","pipe","ignore"]}).trim();return e?e.split("\n"):[]}catch{return[]}}function getEnvironmentContext(){const e=isGitRepository(),t=getAdditionalDirectories();return{workingDir:getCurrentWorkingDirectory(),date:getCurrentDate(),environment:getEnvironmentInfo(),structure:getAccessibleDirectoryStructure(),isGitRepo:e,currentBranch:e?getCurrentBranch():"",mainBranch:e?getMainBranch():"",gitStatus:e?getGitStatus():"",recentCommits:e?getRecentCommits():[],...t.length>0?{additionalDirectories:t}:{}}}function detectTerminal(){const e=process.env;if(e.TERM_PROGRAM){const t=e.TERM_PROGRAM;if("vscode"===t)return{name:"Visual Studio Code",type:"vscode",details:{termProgram:t,termProgramVersion:e.TERM_PROGRAM_VERSION}};if("iTerm.app"===t)return{name:"iTerm2",type:"iterm2",details:{termProgram:t,termProgramVersion:e.TERM_PROGRAM_VERSION,iterm2Profile:e.ITERM_PROFILE}};if("Apple_Terminal"===t)return{name:"macOS Terminal",type:"terminal",details:{termProgram:t,termProgramVersion:e.TERM_PROGRAM_VERSION}};if("WarpTerminal"===t)return{name:"Warp",type:"warp",details:{termProgram:t,termProgramVersion:e.TERM_PROGRAM_VERSION}};if("Hyper"===t)return{name:"Hyper",type:"hyper",details:{termProgram:t,termProgramVersion:e.TERM_PROGRAM_VERSION}};if("ghostty"===t)return{name:"Ghostty",type:"ghostty",details:{termProgram:t,termProgramVersion:e.TERM_PROGRAM_VERSION}}}if(e.WT_SESSION||e.WT_PROFILE_ID)return{name:"Windows Terminal",type:"windows-terminal",details:{wtSession:e.WT_SESSION,wtProfileId:e.WT_PROFILE_ID}};if(e.ALACRITTY_SOCKET||e.ALACRITTY_WINDOW_ID)return{name:"Alacritty",type:"alacritty",details:{alacrittySocket:e.ALACRITTY_SOCKET,alacrittyWindowId:e.ALACRITTY_WINDOW_ID}};if(e.KITTY_WINDOW_ID||e.KITTY_PID)return{name:"Kitty",type:"kitty",details:{kittyWindowId:e.KITTY_WINDOW_ID,kittyPid:e.KITTY_PID}};if(e.GNOME_TERMINAL_SERVICE||e.VTE_VERSION)return{name:"GNOME Terminal",type:"gnome-terminal",details:{gnomeTerminalService:e.GNOME_TERMINAL_SERVICE,vteVersion:e.VTE_VERSION}};if(e.KONSOLE_VERSION||e.KONSOLE_PROFILE_NAME)return{name:"Konsole",type:"konsole",details:{konsoleVersion:e.KONSOLE_VERSION,konsoleProfile:e.KONSOLE_PROFILE_NAME}};if(e.TMUX)return{name:"tmux",type:"tmux",details:{tmux:e.TMUX,tmuxPane:e.TMUX_PANE}};if(e.ConEmuPID||e.ConEmuBuild)return{name:"ConEmu",type:"conemu",details:{conEmuPid:e.ConEmuPID,conEmuBuild:e.ConEmuBuild}};if(e.SSH_CLIENT||e.SSH_TTY)return{name:"SSH",type:"ssh",details:{sshClient:e.SSH_CLIENT,sshTty:e.SSH_TTY}};if(e.CI){const t=e.GITHUB_ACTIONS?"GitHub Actions":e.GITLAB_CI?"GitLab CI":e.JENKINS_URL?"Jenkins":e.CIRCLECI?"CircleCI":"Unknown CI";return{name:t,type:"ci",details:{ci:e.CI,ciName:t}}}const t=e.TERM||"unknown";return{name:`Unknown Terminal (${t})`,type:"unknown",details:{term:t,colorterm:e.COLORTERM,shell:e.SHELL}}}function getIsTerminalIterm2(){return"iTerm2"===detectTerminal().name}var mn,pn,gn,hn,fn,yn,wn,Sn,bn,En,Cn,vn,kn=__esm({"src/utils/environment.ts"(){tn(),dn(),__name(getCurrentWorkingDirectory,"getCurrentWorkingDirectory"),__name(getCurrentDate,"getCurrentDate"),__name(getEnvironmentInfo,"getEnvironmentInfo"),__name(getRootDirectoryStructure,"getRootDirectoryStructure"),__name(getAccessibleDirectoryStructure,"getAccessibleDirectoryStructure"),__name(isGitRepository,"isGitRepository"),__name(getCurrentBranch,"getCurrentBranch"),__name(getMainBranch,"getMainBranch"),__name(getGitStatus,"getGitStatus"),__name(getRecentCommits,"getRecentCommits"),__name(getEnvironmentContext,"getEnvironmentContext"),__name(detectTerminal,"detectTerminal"),__name(getIsTerminalIterm2,"getIsTerminalIterm2")}});function isWordLeftSequence(e){return!!mn.has(e)||!!En.test(e)}function isWordRightSequence(e){return!!pn.has(e)||!!Cn.test(e)}function isHomeSequence(e){return gn.has(e)}function isEndSequence(e){return hn.has(e)}function isForwardDeleteSequence(e){return fn.has(e)}function isDeleteWordSequence(e){return yn.has(e)}function isCtrlA(e){return 1===e.length&&e.charCodeAt(0)===wn.CTRL_A}function isCtrlE(e){return 1===e.length&&e.charCodeAt(0)===wn.CTRL_E}function isCtrlK(e){return 1===e.length&&e.charCodeAt(0)===wn.CTRL_K}function isCtrlU(e){return 1===e.length&&e.charCodeAt(0)===wn.CTRL_U}function isAltP(e){return bn.has(e)}function isCtrlKey({inputChar:e,key:t,letter:n,ctrlCode:r}){return!(!t.ctrl||e.toLowerCase()!==n.toLowerCase())||void 0!==r&&e.charCodeAt(0)===r}function isNewlineShortcutKey(e){const{inputChar:t,key:n,isPasting:r}=e;return!r&&(!(!n.return||!n.shift)||!(!n.ctrl||!n.return)||!(!n.ctrl||"j"!==t)||!("\r"!==t||n.return||n.ctrl||n.shift||n.meta)||vn.includes(t))}var Tn,_n,xn,Pn,An,In,Nn,Rn,Mn,Ln=__esm({"src/utils/keyboard-sequences.ts"(){tn(),mn=new Set(["","b","","",""]),pn=new Set(["","f","","",""]),gn=new Set(["","[1~","[7~","OH"]),hn=new Set(["","[4~","[8~","OF"]),fn=new Set(["[3~"]),yn=new Set(["",""]),wn={CTRL_A:1,CTRL_B:2,CTRL_E:5,CTRL_F:6,CTRL_G:7,CTRL_K:11,CTRL_U:21,CTRL_W:23},Sn={ALT_P:112,ALT_P_NO_META:960},bn=new Set([String.fromCharCode(27,Sn.ALT_P),String.fromCharCode(Sn.ALT_P_NO_META),""]),En=/^\x1b\[1;[359]D$/,Cn=/^\x1b\[1;[359]C$/,__name(isWordLeftSequence,"isWordLeftSequence"),__name(isWordRightSequence,"isWordRightSequence"),__name(isHomeSequence,"isHomeSequence"),__name(isEndSequence,"isEndSequence"),__name(isForwardDeleteSequence,"isForwardDeleteSequence"),__name(isDeleteWordSequence,"isDeleteWordSequence"),__name(isCtrlA,"isCtrlA"),__name(isCtrlE,"isCtrlE"),__name(isCtrlK,"isCtrlK"),__name(isCtrlU,"isCtrlU"),__name(isAltP,"isAltP"),__name(isCtrlKey,"isCtrlKey"),vn=["\n","\r","","[27;2;13~","[27;2;13~","[13;2u"],__name(isNewlineShortcutKey,"isNewlineShortcutKey")}}),$n=__esm({"src/auth/index.ts"(){tn(),sn(),an(),(e=>{e.OAuth=f.object({type:f.literal("oauth"),refresh:f.string(),access:f.string(),expires:f.number(),accountId:f.string().optional()}),e.ApiKey=f.object({type:f.literal("api"),key:f.string()}),e.Info=f.discriminatedUnion("type",[e.OAuth,e.ApiKey]);const n=__name(()=>t.join(w.homedir(),".commandcode"),"getAuthDir"),r=__name(()=>{const e=on(),r="local"===e?"auth.local.json":"staging"===e?"auth.staging.json":"auth.json";return t.join(n(),r)},"getAuthFile");async function get(e){try{const t=await q.readFile(r(),"utf-8");return JSON.parse(t)[e]}catch{return}}async function set(e,t){const o=n(),s=r();await q.mkdir(o,{recursive:!0});let i={};try{const e=await q.readFile(s,"utf-8");i=JSON.parse(e)}catch{}i[e]=t,await q.writeFile(s,JSON.stringify(i,null,2)),await q.chmod(s,384)}async function remove(e){const t=r();try{const n=await q.readFile(t,"utf-8"),r=JSON.parse(n);delete r[e],0===Object.keys(r).length?await q.unlink(t):(await q.writeFile(t,JSON.stringify(r,null,2)),await q.chmod(t,384))}catch{}}async function list2(){try{const e=await q.readFile(r(),"utf-8");return JSON.parse(e)}catch{return{}}}e.get=get,__name(get,"get"),e.set=set,__name(set,"set"),e.remove=remove,__name(remove,"remove"),e.list=list2,__name(list2,"list")})(Tn||(Tn={}))}}),Dn=__esm({"src/utils/constants.ts"(){tn(),sn(),_n="You have insufficient credits to make this request. Please purchase more credits to continue using Command Code: https://commandcode.ai/settings/billing",xn="OAuth authentication required. Please use /provider command\nSelect your provider and complete the OAuth setup.",Pn=">"}}),On=__esm({"src/auth/anthropic.ts"(){tn(),$n(),Dn(),jo(),(e=>{const t="9d1c250a-e61b-44d9-88ed-5944d1962f5e",n="https://console.anthropic.com/v1/oauth/token",r="https://console.anthropic.com/oauth/code/callback";function generateCodeVerifier(){return V.randomBytes(32).toString("base64url")}function generateCodeChallenge(e){return V.createHash("sha256").update(e).digest("base64url")}function generateState(){return V.randomBytes(32).toString("base64url")}function createAuthorizationUrl(){const e=generateCodeVerifier(),n=generateCodeChallenge(e),o=generateState();return{url:`https://claude.ai/oauth/authorize?${new URLSearchParams({code:"true",client_id:t,response_type:"code",redirect_uri:r,scope:"org:create_api_key user:profile user:inference",code_challenge:n,code_challenge_method:"S256",state:o}).toString()}`,verifier:e,state:o}}async function exchangeCodeForTokens2(e,o,s){const i=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"authorization_code",client_id:t,code:e,redirect_uri:r,code_verifier:o,state:s})});if(!i.ok){const e=await i.text(),t=new Error(`Token exchange failed: ${e}`);throw trackError({error:sanitizeErrorForTelemetry({error:t,label:"token_exchange_failed"}),context:{component:$o.ANTHROPIC_OAUTH,heading:"OAuth token exchange failed"}}),t}const a=await i.json();await Tn.set("anthropic",{type:"oauth",refresh:a.refresh_token,access:a.access_token,expires:Date.now()+1e3*a.expires_in})}async function refreshAccessToken2(){const e=await Tn.get("anthropic");if(e&&"oauth"===e.type){if(e.expires>Date.now()+3e5)return e.access;try{const r=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"refresh_token",client_id:t,refresh_token:e.refresh})});if(!r.ok)return void trackError({error:sanitizeErrorForTelemetry({error:new Error("OAuth token refresh failed"),label:"token_refresh_failed"}),context:{component:$o.ANTHROPIC_OAUTH,heading:"OAuth token refresh failed"}});const o=await r.json();return await Tn.set("anthropic",{type:"oauth",refresh:o.refresh_token,access:o.access_token,expires:Date.now()+1e3*o.expires_in}),o.access_token}catch(e){return void trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"token_refresh_exception"}),context:{component:$o.ANTHROPIC_OAUTH,heading:"OAuth token refresh exception"}})}}}async function getValidAccessToken2(){const e=await Tn.get("anthropic");if(e)return"api"===e.type?e.key:"oauth"===e.type?await refreshAccessToken2():void 0}__name(generateCodeVerifier,"generateCodeVerifier"),__name(generateCodeChallenge,"generateCodeChallenge"),__name(generateState,"generateState"),e.createAuthorizationUrl=createAuthorizationUrl,__name(createAuthorizationUrl,"createAuthorizationUrl"),e.exchangeCodeForTokens=exchangeCodeForTokens2,__name(exchangeCodeForTokens2,"exchangeCodeForTokens"),e.refreshAccessToken=refreshAccessToken2,__name(refreshAccessToken2,"refreshAccessToken"),e.getValidAccessToken=getValidAccessToken2,__name(getValidAccessToken2,"getValidAccessToken")})(An||(An={}))}});function getIcon(e){if(Rn[e])return Rn[e];const t=e.split(":")[0];return Rn[t]?Rn[t]:Rn.default}function formatTime(e){return`${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}:${e.getSeconds().toString().padStart(2,"0")}.${e.getMilliseconds().toString().padStart(3,"0")}`}function parseMessage(e){const t=e.match(/^\[([^\]]+)\]\s*(.*)/);return t?{category:t[1],text:t[2]}:{category:"",text:e}}function showStartup(){if(!Mn){Mn=!0;try{C.mkdirSync(In,{recursive:!0});const e=new Date,t=`\n════════════════════════════════════════════════════════════════\n CommandCode Debug Log\n Started: ${e.toLocaleDateString()} ${formatTime(e)}\n Log: ${Nn}\n════════════════════════════════════════════════════════════════\n\n`;C.appendFileSync(Nn,t,"utf-8")}catch{}}}function dlog(e,t){if("true"===process.env.DEBUG){showStartup();try{const n=formatTime(new Date),{category:r,text:o}=parseMessage(e);let s;if(r){s=`${n} ${getIcon(r)} ${`[${r}]`.padEnd(16)} ${o}`}else s=`${n} ${Rn.default} ${e}`;if(t){s+=`\n${("string"==typeof t?t:JSON.stringify(t,null,2)).split("\n").map(e=>` ${e}`).join("\n")}`}s+="\n",C.appendFileSync(Nn,s,"utf-8")}catch{}}}function dlogSection(e){if("true"===process.env.DEBUG){showStartup();try{const t=`\n──── ${e} ${"─".repeat(Math.max(0,50-e.length))}\n`;C.appendFileSync(Nn,t,"utf-8")}catch{}}}var Fn,qn,jn,Bn=__esm({"src/utils/dlog.ts"(){tn(),In=e.join(y.homedir(),".commandcode","logs"),Nn=e.join(In,"command.log"),Rn={Startup:">",CLI:"$",Config:"#",Auth:"@",Onboarding:"*",LearningAgent:"&",Import:"<",API:"~",Sessions:"+",Observer:"!",Flow:"^",Handler:">",Helper:"-",Codex:"+",UI:"|",Hook:"%",ObserverAPI:"~",ContextEngine:"~",Updater:"^",MCP:"&",default:"-"},__name(getIcon,"getIcon"),__name(formatTime,"formatTime"),__name(parseMessage,"parseMessage"),Mn=!1,__name(showStartup,"showStartup"),"true"===process.env.DEBUG&&showStartup(),__name(dlog,"dlog"),__name(dlogSection,"dlogSection")}}),Un=__esm({"src/auth/codex.ts"(){tn(),$n(),Dn(),jo(),Bn(),(e=>{const t="app_EMoamEEZ73f0CkXaXp7hrann",n="https://auth.openai.com",r="openid profile email offline_access",o="http://localhost:1455/auth/callback";function base64UrlEncode(e){return Buffer.from(e).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function generateRandomString2(e){const t=V.randomBytes(e);let n="";for(let r=0;r<e;r++)n+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~"[t[r]%66];return n}function generatePKCE2(){const e=generateRandomString2(64);return{verifier:e,challenge:base64UrlEncode(V.createHash("sha256").update(e).digest())}}function buildAuthorizeUrl(e,s){const i=new URLSearchParams({response_type:"code",client_id:t,redirect_uri:o,scope:r,code_challenge:e.challenge,code_challenge_method:"S256",id_token_add_organizations:"true",codex_cli_simplified_flow:"true",state:s,originator:"codex_cli_rs"});return`${n}/oauth/authorize?${i.toString()}`}function parseJwtClaims(e){const t=e.split(".");if(3===t.length)try{return JSON.parse(Buffer.from(t[1],"base64url").toString("utf8"))}catch{return}}function extractAccountId(e){const t=[e.id_token,e.access_token].filter(Boolean);for(const e of t){const t=parseJwtClaims(e);if(!t)continue;const n=t.chatgpt_account_id||t["https://api.openai.com/auth"]?.chatgpt_account_id||t.organizations?.[0]?.id;if(n)return n}}async function exchangeCodeForTokens2(e,r,s){const i=await fetch(`${n}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",code:e,redirect_uri:o,client_id:t,code_verifier:r.verifier}).toString(),signal:s});if(!i.ok){const e=await i.text();throw new Error(`Codex token exchange failed: ${i.status} ${e}`)}return i.json()}async function refreshTokens(e){const o=await fetch(`${n}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:e,client_id:t,scope:r}).toString()});if(!o.ok){const e=await o.text();throw new Error(`Codex token refresh failed: ${o.status} ${e}`)}return o.json()}function waitForCallback(e){const{state:t,signal:n}=e;return new Promise((e,r)=>{let o,s,i=!1;const a=__name(()=>{if(s&&clearTimeout(s),o){if(o.listening)try{o.close(()=>{})}catch{}o=void 0}n?.removeEventListener("abort",u)},"cleanup"),l=__name((t,n)=>{i||(i=!0,a(),t?r(t):e(n))},"finish"),u=__name(()=>{l(new Error("Authentication cancelled"))},"onAbort");n?.aborted?r(new Error("Authentication cancelled")):(n?.addEventListener("abort",u,{once:!0}),o=Y(__name((e,n)=>{try{const r=new URL(e.url||"/","http://localhost:1455");if("/auth/callback"!==r.pathname)return n.writeHead(404),void n.end("Not found");const o=r.searchParams.get("code"),s=r.searchParams.get("state"),i=r.searchParams.get("error"),a=r.searchParams.get("error_description");if(i){const e=a||i;return n.writeHead(400,{"Content-Type":"text/html"}),n.end(renderErrorPage(e)),void l(new Error(`Codex OAuth error: ${e}`))}if(!o||!s)return n.writeHead(400,{"Content-Type":"text/html"}),n.end(renderErrorPage("Missing code or state")),void l(new Error("Codex OAuth: missing code or state"));if(s!==t)return n.writeHead(400,{"Content-Type":"text/html"}),n.end(renderErrorPage("State mismatch — possible CSRF attempt")),void l(new Error("Codex OAuth: state mismatch"));n.writeHead(200,{"Content-Type":"text/html"}),n.end("<!doctype html>\n<html>\n <head><title>Command Code — Codex Authorization Successful</title>\n <style>body{font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#0f0f0f;color:#eee}h1{color:#7ee787}</style>\n </head>\n <body><div><h1>Authorization successful</h1><p>You can close this window and return to Command Code.</p></div>\n <script>setTimeout(()=>window.close(),2000)<\/script></body>\n</html>"),l(null,o)}catch(e){n.writeHead(500),n.end("Internal error"),l(e instanceof Error?e:new Error(String(e)))}},"handler")),o.on("error",e=>l(e)),o.listen(1455,"127.0.0.1",()=>{s=setTimeout(()=>{l(new Error("Codex OAuth timed out waiting for browser callback"))},3e5)}))})}function renderSuccessPage(){return"<!doctype html>\n<html>\n <head><title>Command Code — Codex Authorization Successful</title>\n <style>body{font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#0f0f0f;color:#eee}h1{color:#7ee787}</style>\n </head>\n <body><div><h1>Authorization successful</h1><p>You can close this window and return to Command Code.</p></div>\n <script>setTimeout(()=>window.close(),2000)<\/script></body>\n</html>"}function renderErrorPage(e){return`<!doctype html>\n<html>\n <head><title>Command Code — Codex Authorization Failed</title>\n <style>body{font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;background:#0f0f0f;color:#eee}h1{color:#ff7b72}</style>\n </head>\n <body><div><h1>Authorization failed</h1><p>${e.replace(/[&<>]/g,e=>"&"===e?"&amp;":"<"===e?"&lt;":"&gt;")}</p></div></body>\n</html>`}async function refreshAccessToken2(){const e=await Tn.get("codex");if(e&&"oauth"===e.type){if(e.expires>Date.now()+3e5)return e.access;dlog("[Auth] codex: refreshing access token");try{const t=await refreshTokens(e.refresh),n=extractAccountId(t)??e.accountId;return await Tn.set("codex",{type:"oauth",refresh:t.refresh_token||e.refresh,access:t.access_token,expires:Date.now()+1e3*(t.expires_in??3600),...n?{accountId:n}:{}}),t.access_token}catch(e){return void trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"codex_token_refresh_exception"}),context:{component:$o.CODEX_OAUTH,heading:"Codex token refresh exception"}})}}}async function getValidAccessToken2(){const e=await Tn.get("codex");if(e)return"api"===e.type?e.key:"oauth"===e.type?refreshAccessToken2():void 0}async function getAccountId(){const e=await Tn.get("codex");if(e&&"oauth"===e.type)return e.accountId}async function login(e){const{onAuth:t,onProgress:n,signal:r}=e;dlog("[Auth] codex: starting browser oauth flow");const o=generatePKCE2(),s=base64UrlEncode(V.randomBytes(32)),i=buildAuthorizeUrl(o,s),a=waitForCallback({state:s,signal:r});let l;t({authorizeUrl:i}),n?.("Waiting for authorization in browser...");try{l=await a}catch(e){const t=e instanceof Error?e:new Error(String(e));throw trackError({error:sanitizeErrorForTelemetry({error:t,label:"codex_oauth_callback_failed"}),context:{component:$o.CODEX_OAUTH,heading:"Codex oauth callback failed"}}),t}if(r?.aborted)throw new Error("Authentication cancelled");n?.("Exchanging authorization code...");const u=await exchangeCodeForTokens2(l,o,r);if(r?.aborted)throw new Error("Authentication cancelled");if(!u.refresh_token)throw new Error("Codex OAuth: issuer did not return a refresh_token");const d=extractAccountId(u);dlog("[Auth] codex: login success",{hasAccountId:!!d}),await Tn.set("codex",{type:"oauth",refresh:u.refresh_token,access:u.access_token,expires:Date.now()+1e3*(u.expires_in??3600),...d?{accountId:d}:{}})}__name(base64UrlEncode,"base64UrlEncode"),__name(generateRandomString2,"generateRandomString"),__name(generatePKCE2,"generatePKCE"),__name(buildAuthorizeUrl,"buildAuthorizeUrl"),e.parseJwtClaims=parseJwtClaims,__name(parseJwtClaims,"parseJwtClaims"),e.extractAccountId=extractAccountId,__name(extractAccountId,"extractAccountId"),__name(exchangeCodeForTokens2,"exchangeCodeForTokens"),__name(refreshTokens,"refreshTokens"),__name(waitForCallback,"waitForCallback"),__name(renderSuccessPage,"renderSuccessPage"),__name(renderErrorPage,"renderErrorPage"),e.refreshAccessToken=refreshAccessToken2,__name(refreshAccessToken2,"refreshAccessToken"),e.getValidAccessToken=getValidAccessToken2,__name(getValidAccessToken2,"getValidAccessToken"),e.getAccountId=getAccountId,__name(getAccountId,"getAccountId"),e.login=login,__name(login,"login")})(Fn||(Fn={}))}}),zn=__esm({"src/auth/copilot.ts"(){tn(),$n(),Dn(),sn(),jo(),Bn(),(e=>{const t=atob("SXYxLmI1MDdhMDhjODdlY2ZlOTg="),n=["COPILOT_GITHUB_TOKEN","GH_TOKEN","GITHUB_TOKEN"];async function startDeviceFlow(e){const n=e?.domain||"github.com",r=`https://${n}/login/device/code`;dlog("[Auth] startDeviceFlow",{domain:n,url:r});const o=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({client_id:t,scope:"read:user"})});if(!o.ok){const e=await o.text(),t=new Error(`Device code request failed: ${e}`);throw trackError({error:sanitizeErrorForTelemetry({error:t,label:"device_flow_start_failed"}),context:{component:$o.COPILOT_OAUTH,heading:"Device code flow start failed"}}),t}const s=await o.json();return dlog("[Auth] startDeviceFlow success",{userCode:s.user_code,interval:s.interval,expiresIn:s.expires_in}),s}async function pollForGitHubAccessToken(e){const{deviceCode:n,interval:r,expiresIn:o,signal:s}=e,i=e.domain||"github.com",a=`https://${i}/login/oauth/access_token`,l=Date.now()+1e3*o;let u=1e3*r;for(dlog("[Auth] pollForGitHubAccessToken started",{domain:i,pollInterval:u,deadline:new Date(l).toISOString()});Date.now()<l;){if(s?.aborted)throw new Error("Authentication cancelled");if(await new Promise((e,t)=>{if(!s)return void setTimeout(e,u);const n=__name(()=>{clearTimeout(r),t(new Error("Authentication cancelled"))},"onAbort"),r=setTimeout(()=>{s.removeEventListener("abort",n),e()},u);s.addEventListener("abort",n,{once:!0})}),s?.aborted)throw new Error("Authentication cancelled");const e=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({client_id:t,device_code:n,grant_type:"urn:ietf:params:oauth:grant-type:device_code"})}),r=await e.json();if("error"in r){if(dlog("[Auth] poll response error",r.error),"authorization_pending"===r.error)continue;if("slow_down"===r.error){u+=5e3,dlog("[Auth] poll slow_down, new interval",u);continue}if("expired_token"===r.error)throw new Error("Device code expired. Please try again.");if("access_denied"===r.error)throw new Error("Authorization was denied. Please try again.");throw new Error(`GitHub OAuth error: ${r.error}`)}if("access_token"in r)return dlog("[Auth] pollForGitHubAccessToken success, got access_token"),r}throw new Error("Device code expired. Please try again.")}async function refreshCopilotToken(e){const{refreshToken:t,enterpriseDomain:n}=e;dlog("[Auth] refreshCopilotToken called",{hasRefreshToken:!!t,enterpriseDomain:n});let r="https://api.github.com/copilot_internal/v2/token";n&&(r=`https://${n}/api/v3/copilot_internal/v2/token`);const o=await fetch(r,{method:"GET",headers:{Authorization:`token ${t}`,Accept:"application/json",...Mt}});if(!o.ok){const e=await o.text(),t=new Error(`Copilot token refresh failed: ${e}`);throw trackError({error:sanitizeErrorForTelemetry({error:t,label:"copilot_token_refresh_failed"}),context:{component:$o.COPILOT_OAUTH,heading:"Copilot token refresh failed"}}),t}const s=await o.json(),i=1e3*s.expires_at-3e5;return dlog("[Auth] refreshCopilotToken success",{expiresAt:new Date(i).toISOString(),refreshIn:s.refresh_in}),{token:s.token,expires:i}}async function refreshAccessToken2(){const e=await Tn.get("github-copilot");if(e&&"oauth"===e.type){if(e.expires>Date.now()+3e5)return dlog("[Auth] refreshAccessToken: token still valid",{expires:new Date(e.expires).toISOString()}),e.access;dlog("[Auth] refreshAccessToken: token expired, refreshing...");try{const t=await refreshCopilotToken({refreshToken:e.refresh});return await Tn.set("github-copilot",{type:"oauth",refresh:e.refresh,access:t.token,expires:t.expires}),t.token}catch(e){return trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"copilot_token_refresh_exception"}),context:{component:$o.COPILOT_OAUTH,heading:"Copilot token refresh exception"}}),void dlog("[Auth] refreshAccessToken: refresh failed, keeping auth for retry")}}else dlog("[Auth] refreshAccessToken: no copilot oauth auth found")}async function getValidAccessToken2(){dlog("[Auth] getValidAccessToken called for copilot");const e=await Tn.get("github-copilot");if(e){if(dlog("[Auth] getValidAccessToken: found stored auth",{type:e.type}),"api"===e.type)return e.key;if("oauth"===e.type)return await refreshAccessToken2()}dlog("[Auth] getValidAccessToken: no stored auth, checking env vars");for(const e of n){const t=process.env[e];if(t)try{const e=await refreshCopilotToken({refreshToken:t});return await Tn.set("github-copilot",{type:"oauth",refresh:t,access:e.token,expires:e.expires}),e.token}catch{continue}}}async function login(e){const{onAuth:t,onProgress:n,signal:r}=e;dlog("[Auth] login: starting copilot device code flow"),n?.("Starting device code flow...");const o=await startDeviceFlow();t({userCode:o.user_code,verificationUri:o.verification_uri}),n?.("Waiting for authorization...");const s=await pollForGitHubAccessToken({deviceCode:o.device_code,interval:o.interval,expiresIn:o.expires_in,signal:r});n?.("Getting Copilot access...");const i=await refreshCopilotToken({refreshToken:s.access_token});dlog("[Auth] login: storing copilot tokens"),await Tn.set("github-copilot",{type:"oauth",refresh:s.access_token,access:i.token,expires:i.expires}),dlog("[Auth] login: copilot login complete")}e.startDeviceFlow=startDeviceFlow,__name(startDeviceFlow,"startDeviceFlow"),e.pollForGitHubAccessToken=pollForGitHubAccessToken,__name(pollForGitHubAccessToken,"pollForGitHubAccessToken"),e.refreshCopilotToken=refreshCopilotToken,__name(refreshCopilotToken,"refreshCopilotToken"),e.refreshAccessToken=refreshAccessToken2,__name(refreshAccessToken2,"refreshAccessToken"),e.getValidAccessToken=getValidAccessToken2,__name(getValidAccessToken2,"getValidAccessToken"),e.login=login,__name(login,"login")})(qn||(qn={}))}});function isWordBoundary(e){return!e||0===e.length||jn.test(e)}function findPreviousWordBoundary(e,t){if(!e||t<=0)return 0;let n=Math.min(t,e.length);for(;n>0&&isWordBoundary(e[n-1]||"");)n--;for(;n>0&&!isWordBoundary(e[n-1]||"");)n--;return n}function findNextWordBoundary(e,t){if(!e)return 0;if(t>=e.length)return e.length;let n=Math.max(0,t);for(;n<e.length&&isWordBoundary(e[n]||"");)n++;for(;n<e.length&&!isWordBoundary(e[n]||"");)n++;return n}function deleteWordBackwards(e,t){if(!e||t<=0)return{text:e||"",cursor:0};const n=findPreviousWordBoundary(e,t);return{text:e.slice(0,n)+e.slice(t),cursor:n}}function clampCursor(e,t){return Math.max(0,Math.min(e,t))}function findLineStart(e,t){if(!e||t<=0)return 0;for(let n=Math.min(t,e.length)-1;n>=0;n--)if("\n"===e[n])return n+1;return 0}function findLineEnd(e,t){if(!e)return 0;if(t>=e.length)return e.length;for(let n=Math.max(0,t);n<e.length;n++)if("\n"===e[n])return n;return e.length}function moveCursorUp(e,t){if(!e)return 0;const n=findLineStart(e,t);if(0===n)return t;const r=t-n,o=n-1,s=findLineStart(e,o),i=o-s;return s+Math.min(r,i)}function moveCursorDown(e,t){if(!e)return 0;const n=findLineStart(e,t),r=findLineEnd(e,t);if(r===e.length)return t;const o=t-n,s=r+1,i=findLineEnd(e,s)-s;return s+Math.min(o,i)}function insertTextAt(e,t,n){const r=e||"",o=clampCursor(t,r.length);return{text:r.slice(0,o)+n+r.slice(o),cursor:o+n.length}}function deleteCharBefore(e,t){return!e||t<=0?{text:e||"",cursor:0}:{text:e.slice(0,t-1)+e.slice(t),cursor:t-1}}function deleteCharAt(e,t){return!e||t>=e.length?{text:e||"",cursor:t}:{text:e.slice(0,t)+e.slice(t+1),cursor:t}}var Hn,Wn,Gn=__esm({"src/utils/text-navigation.ts"(){tn(),jn=/\s|[(){}[\]<>.,;:'"!?+\-=*/\\|&%^$#@~`]/,__name(isWordBoundary,"isWordBoundary"),__name(findPreviousWordBoundary,"findPreviousWordBoundary"),__name(findNextWordBoundary,"findNextWordBoundary"),__name(deleteWordBackwards,"deleteWordBackwards"),__name(clampCursor,"clampCursor"),__name(findLineStart,"findLineStart"),__name(findLineEnd,"findLineEnd"),__name(moveCursorUp,"moveCursorUp"),__name(moveCursorDown,"moveCursorDown"),__name(insertTextAt,"insertTextAt"),__name(deleteCharBefore,"deleteCharBefore"),__name(deleteCharAt,"deleteCharAt")}});function stripBracketedPaste(e){return e.includes(Hn)||e.includes(Wn)?e.replaceAll(Hn,"").replaceAll(Wn,""):null}function processBracketedPasteInput({input:e,value:t,cursor:n}){const r=stripBracketedPaste(e);if(null===r)return{value:t,cursor:n,handled:!1};if(0===r.length)return{value:t,cursor:n,handled:!0};const o=insertTextAt(t,n,r);return{value:o.text,cursor:o.cursor,handled:!0}}function processWordLeft(e,t){return{value:e,cursor:findPreviousWordBoundary(e,t),handled:!0}}function processWordRight(e,t){return{value:e,cursor:findNextWordBoundary(e,t),handled:!0}}function processLineStart(e,t){return{value:e,cursor:findLineStart(e,t),handled:!0}}function processLineEnd(e,t){return{value:e,cursor:findLineEnd(e,t),handled:!0}}function processDeleteWord(e,t){const n=deleteWordBackwards(e,t);return{value:n.text,cursor:n.cursor,handled:!0}}function processDeleteToEnd(e,t){const n=findLineEnd(e,t);return{value:e.slice(0,t)+e.slice(n),cursor:t,handled:!0}}function processDeleteToStart(e,t){const n=findLineStart(e,t);return{value:e.slice(0,n)+e.slice(t),cursor:n,handled:!0}}function processForwardDelete(e,t){const n=deleteCharAt(e,t);return{value:n.text,cursor:n.cursor,handled:!0}}function processBackspace(e,t){const n=deleteCharBefore(e,t);return{value:n.text,cursor:n.cursor,handled:!0}}function processCursorLeft(e,t,n){return n?t<=0?{value:e,cursor:t,handled:!0}:{value:e,cursor:t-1,handled:!0}:{value:e,cursor:t,handled:!0}}function processCursorRight(e,t,n){return n?t>=e.length?{value:e,cursor:t,handled:!0}:{value:e,cursor:t+1,handled:!0}:{value:e,cursor:t,handled:!0}}function processCursorUp(e,t,n){return n?{value:e,cursor:moveCursorUp(e,t),handled:!0}:{value:e,cursor:t,handled:!0}}function processCursorDown(e,t,n){return n?{value:e,cursor:moveCursorDown(e,t),handled:!0}:{value:e,cursor:t,handled:!0}}function processCharacterInput(e,t,n){const r=n.replace(/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]|\x1b.*/g,"");if(0===r.length)return{value:e,cursor:t,handled:!1};const o=insertTextAt(e,t,r);return{value:o.text,cursor:o.cursor,handled:!0}}function processRawInput(e,t,n){return isWordLeftSequence(e)?processWordLeft(t,n):isWordRightSequence(e)?processWordRight(t,n):isHomeSequence(e)?processLineStart(t,n):isEndSequence(e)?processLineEnd(t,n):isCtrlA(e)?processLineStart(t,n):isCtrlE(e)?processLineEnd(t,n):isDeleteWordSequence(e)?processDeleteWord(t,n):isCtrlK(e)?processDeleteToEnd(t,n):isCtrlU(e)?processDeleteToStart(t,n):isForwardDeleteSequence(e)?processForwardDelete(t,n):{value:t,cursor:n,handled:!1}}function isIgnoredKey(e,t){return!(!t.ctrl||"c"!==e)||!!t.tab||!(!t.shift||!t.tab)}function processInkInput(e,t,n,r,o){const s=t;return s.meta&&t.leftArrow?processLineStart(n,r):s.meta&&t.rightArrow?processLineEnd(n,r):s.meta&&"b"===e?processWordLeft(n,r):s.meta&&"f"===e?processWordRight(n,r):t.ctrl&&"a"===e?processLineStart(n,r):t.ctrl&&"e"===e?processLineEnd(n,r):t.ctrl&&"w"===e?processDeleteWord(n,r):t.ctrl&&"k"===e?processDeleteToEnd(n,r):t.ctrl&&"u"===e?processDeleteToStart(n,r):t.leftArrow?processCursorLeft(n,r,o):t.rightArrow?processCursorRight(n,r,o):t.upArrow?processCursorUp(n,r,o):t.downArrow?processCursorDown(n,r,o):t.backspace||t.delete?processBackspace(n,r):!t.ctrl&&!s.meta&&e.length>0?processCharacterInput(n,r,e):{value:n,cursor:r,handled:!1}}var Vn,Qn,Kn,Yn=__esm({"src/tui/text/input-handlers.ts"(){tn(),Gn(),Ln(),Hn="[200~",Wn="[201~",__name(stripBracketedPaste,"stripBracketedPaste"),__name(processBracketedPasteInput,"processBracketedPasteInput"),__name(processWordLeft,"processWordLeft"),__name(processWordRight,"processWordRight"),__name(processLineStart,"processLineStart"),__name(processLineEnd,"processLineEnd"),__name(processDeleteWord,"processDeleteWord"),__name(processDeleteToEnd,"processDeleteToEnd"),__name(processDeleteToStart,"processDeleteToStart"),__name(processForwardDelete,"processForwardDelete"),__name(processBackspace,"processBackspace"),__name(processCursorLeft,"processCursorLeft"),__name(processCursorRight,"processCursorRight"),__name(processCursorUp,"processCursorUp"),__name(processCursorDown,"processCursorDown"),__name(processCharacterInput,"processCharacterInput"),__name(processRawInput,"processRawInput"),__name(isIgnoredKey,"isIgnoredKey"),__name(processInkInput,"processInkInput")}});function startEarlyInputCapture(){Vn||(Vn=!0,Qn=[],Kn=__name(e=>{const t=e.toString();t&&!isControlSequenceToSkip(t)&&Qn.push(t)},"earlyInputHandler"),process.stdin.on("data",Kn))}function stopEarlyInputCapture(){Vn&&Kn&&(process.stdin.off("data",Kn),Kn=null,Vn=!1)}function consumeBufferedInput(){const e=Qn.join("");return Qn=[],e}function hasBufferedInput(){return Qn.length>0}function isControlSequenceToSkip(e){return!!(e.startsWith("[200~")||e.startsWith("[201~")||e.startsWith("")||e.startsWith(""))}var Jn=__esm({"src/utils/early-input-buffer.ts"(){tn(),Vn=!1,Qn=[],Kn=null,__name(startEarlyInputCapture,"startEarlyInputCapture"),__name(stopEarlyInputCapture,"stopEarlyInputCapture"),__name(consumeBufferedInput,"consumeBufferedInput"),__name(hasBufferedInput,"hasBufferedInput"),__name(isControlSequenceToSkip,"isControlSequenceToSkip")}});function useCursorState({value:e,focus:t,showCursor:n,initialCursor:r}){const[o,s]=Z(r??(e||"").length),i=ee(o),a=ee(e);te(()=>{i.current=o},[o]),te(()=>{const r=a.current;if(a.current=e,e===r)return;if(!t)return;if(!n)return;const l=(e||"").length;o>l&&(s(l),i.current=l)},[e,t,n,o]);const l=re(e=>{s(e),i.current=e},[]);return{cursor:o,setCursor:l,cursorRef:i}}function useRawStdinHandler({focus:e,valueRef:t,cursorRef:n,onUpdate:r,setHandled:o,stripBracketedPaste:s=!1}){const i=ee(!1);te(()=>{if(!e)return;const a=process.stdin,l=__name(e=>{o(!0);const t=clampCursor(e.cursor,e.value.length);r(e.value,t),setTimeout(()=>o(!1),0)},"emitStdinResult"),u=__name(e=>{const r=e.toString();if(s){const e=processBracketedPasteInput({input:r,value:t.current,cursor:n.current});if(e.handled)return void l(e)}const o=processRawInput(r,t.current,n.current);o.handled&&l(o)},"handleRawInput");if(a.on("data",u),!i.current&&hasBufferedInput()){i.current=!0;const e=consumeBufferedInput();e&&u(Buffer.from(e))}return stopEarlyInputCapture(),()=>{a.off("data",u)}},[e,t,n,r,o,s])}function useInkInputHandler({focus:e,showCursor:t,valueRef:n,cursorRef:r,isHandledByStdin:o,onUpdate:s,onSubmit:i}){le((e,a)=>{if(o())return;if(isIgnoredKey(e,a))return;if(a.return)return void i?.(n.current);const l=processInkInput(e,a,n.current,r.current,t);if(!l.handled)return;const u=clampCursor(l.cursor,l.value.length);s(l.value,u)},{isActive:e})}function useSyncedRef(e){const t=ee(e);return t.current=e,t}var Xn,Zn,er,tr,nr,rr,sr,ir,ar,lr,cr,ur,dr,mr,pr,gr,hr,fr,yr,wr,Sr,br,Er,Cr,vr=__esm({"src/tui/text/hooks.ts"(){tn(),Gn(),Yn(),Jn(),__name(useCursorState,"useCursorState"),__name(useRawStdinHandler,"useRawStdinHandler"),__name(useInkInputHandler,"useInkInputHandler"),__name(useSyncedRef,"useSyncedRef")}}),kr=__esm({"src/tui/colors.ts"(){tn(),Zn="#E4CCFF",er={BADGE_BG:"#08575B",BADGE_FG:"#f4f4f4",TEXT:"#02888E"},tr="#E4CCFF",nr="#F5B731",rr={REMOVED_BG:"#5C0112",ADDED_BG:"#04473A",REMOVED_TEXT:"#D95A6A",ADDED_TEXT:"#4CC88E",REMOVED_HIGHLIGHT_BG:"#7D2233",ADDED_HIGHLIGHT_BG:"#2E6B4A",LINE_NUM:"#636D83"},sr={BG:"#5945B1",FG:"#f4f4f4"},ir={BG:"#2D2B55",FG:"#E4CCFF"},ar={BG:"#6943FF",FG:"#f4f4f4"},lr={SUCCESS:"#35AD68",ERROR:"#E84057",WARNING:"#F5B731",IN_PROGRESS:"#E4CCFF"},cr="#B1BAF9",ur="#636D83",dr={BG:"#2D2B55",POINTER:"#A599E9"},mr="#A599E9",pr="#F5B731",gr="#8367F4",hr={OPEN:"#F5B731",MERGED:"#A78BFA"},fr="#F49D2A",yr={CODE:"#B1BAF9",HEADING:"#A599E9"},wr=["#A599E9","#E4CCFF","#ABA5CE","#CCC7E1","#FFFFFF","#EADAFF","#ABA5CE","#E4CCFF","#A599E9"],Sr="#6E61A3",br=(Xn={CYAN:"#7AD4D6",GREEN:"#2EBD8E",GRAY:"#636D83",WHITE:"#E5E5E5",YELLOW:"#F5B731",RED:"#E84057",BLUE:"#5945B1",MAGENTA:"#F2608A",DIM:"#636D83",DIMMER:"#4C556A",DIMMEST:"#353D50"}).DIM,Er={TEXT:"#B1BAF9",BG:"#5646AB"}}});function renderPlaceholder(e,t){return t?0===e.length?pe.inverse(" "):pe.inverse(e[0])+Cr(e.slice(1)):Cr(e)}function renderValue(e,t,n){if(!n)return e;if(0===e.length)return pe.inverse(" ");let r="";for(let n=0;n<e.length;n++)n===t?"\n"===e[n]?r+=pe.inverse(" ")+"\n":r+=pe.inverse(e[n]):r+=e[n];return t===e.length&&(r+=pe.inverse(" ")),r}function wrapWithIndent(e,t,n){if(t<=n)return e;const r=" ".repeat(n),o=t-n,s=t;if(ge(e).length<=s)return e;const i=e.split(/(\s+)/);let a="",l=0,u=!0;for(const e of i){const t=ge(e).length;if(l+t>(u?s:o)&&l>0&&(a+="\n"+r,l=n,u=!1),a+=e,l+=t,e.includes("\n")){const t=e.substring(e.lastIndexOf("\n")+1);l=ge(t).length,u=!0}}return a}function getDisplayValue(e,t,n,r,o){const s=r&&o;return t&&0===e.length?renderPlaceholder(t,s):renderValue(e,n,s)}function getMaskedValue(e,t){return t?t.repeat(e.length):e}var Tr,_r=__esm({"src/tui/text/render-utils.ts"(){tn(),kr(),Cr=me.hex(Xn.DIM),__name(renderPlaceholder,"renderPlaceholder"),__name(renderValue,"renderValue"),__name(wrapWithIndent,"wrapWithIndent"),__name(getDisplayValue,"getDisplayValue"),__name(getMaskedValue,"getMaskedValue")}});function createStdinUpdateHandler(e,t,n){return(r,o)=>{e(o),r!==t.current&&(n.current(r),t.current=r)}}function createInkUpdateHandler(e,t,n){return(r,o)=>{e(o),r!==t.current&&(n.current(r),t.current=r)}}function TextInput({value:e,placeholder:t="",focus:n=!0,mask:r,showCursor:o=!0,onChange:s,onSubmit:i,onCursorChange:a,prefix:l="",prefixColor:u,stripBracketedPaste:d=!1,initialCursor:m}){const g=ee(!1),h=useSyncedRef(e),f=useSyncedRef(s),{cursor:y,setCursor:w,cursorRef:S}=useCursorState({value:e,focus:n,showCursor:o,initialCursor:m});J.useEffect(()=>{a?.(y)},[y,a]);const E=re(createStdinUpdateHandler(w,h,f),[w,h,f]),C=re(createInkUpdateHandler(w,h,f),[w,h,f]),v=re(e=>{g.current=e},[]),k=re(()=>g.current,[]);useRawStdinHandler({focus:n,valueRef:h,cursorRef:S,onUpdate:E,setHandled:v,stripBracketedPaste:d}),useInkInputHandler({focus:n,showCursor:o,valueRef:h,cursorRef:S,isHandledByStdin:k,onUpdate:C,onSubmit:i});const{stdout:T}=ae(),_=T?.columns??80,x=getMaskedValue(e,r),P=u?Tr[u]:void 0,A=wrapWithIndent((l?P?P(l):l:"")+getDisplayValue(x,t,y,o,n),_,l?.length??0);return J.createElement(se,{wrap:"wrap"},A)}var xr=__esm({"src/tui/text/text-input.tsx"(){tn(),vr(),_r(),Gn(),Tr={white:pe.white,green:pe.green,red:pe.red,blue:pe.blue,yellow:pe.yellow,cyan:pe.cyan,magenta:pe.magenta,gray:pe.gray,grey:pe.gray},__name(createStdinUpdateHandler,"createStdinUpdateHandler"),__name(createInkUpdateHandler,"createInkUpdateHandler"),__name(TextInput,"TextInput")}});async function compressImageForSharing(e,t="image/png"){try{const n=Buffer.from(e,"base64"),r=n.length,o=he(n),s=await o.metadata();if(!s.width||!s.height)return console.warn("[ImageCompression] Could not determine image dimensions"),null;const i=1200;let a,l,{width:u,height:d}=s;(u>i||d>i)&&(u>d?(d=Math.round(d*i/u),u=i):(u=Math.round(u*i/d),d=i)),t.includes("png")&&s.hasAlpha?(a=await o.resize(u,d,{fit:"inside",withoutEnlargement:!0}).png({quality:95,compressionLevel:4}).toBuffer(),l="image/png"):(a=await o.resize(u,d,{fit:"inside",withoutEnlargement:!0}).jpeg({quality:95,progressive:!0}).toBuffer(),l="image/jpeg");const m=a.length;return{compressedBase64:a.toString("base64"),mediaType:l,originalSizeBytes:r,compressedSizeBytes:m,compressionRatio:r/m}}catch(e){return console.error("[ImageCompression] Failed to compress image:",e),null}}var Pr,Ar=__esm({"src/utils/image-compression.ts"(){tn(),__name(compressImageForSharing,"compressImageForSharing")}});async function detectDroppedImageFile(e){try{if(!e||0===e.trim().length)return null;let t=e.trim();if((t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"'))&&(t=t.slice(1,-1)),t.startsWith("file://")&&(t=decodeURIComponent(t.slice(7))),t=t.replace(/\\(.)/g,"$1"),t.includes("\n")||t.includes("\r"))return null;const n=l(t).toLowerCase(),r=Pr[n];if(!r)return null;const o=a(t);if(!k(o))return null;const s=_(o).toString("base64");if(!s||0===s.length)return null;if(s.length>32e6)return null;const i=await compressImageForSharing(s,r);return i?{data:i.compressedBase64,mediaType:i.mediaType}:null}catch(e){return null}}async function detectClipboardImage(){try{const e=await import("@crosscopy/clipboard");if(!e.default.hasImage())return null;let t=null;try{if(t=await e.default.getImageBase64(),!t){const n=e.default.getImageBase64();t=n&&"function"==typeof n.then?await n:n}}catch(e){return null}if(!t||0===t.length)return null;if(t.length>32e6)return console.log("Image too large:",t.length,"bytes"),null;try{const e=await compressImageForSharing(t,"image/png");return e?{data:e.compressedBase64,mediaType:e.mediaType}:(console.log("Failed to compress clipboard image"),null)}catch(e){return console.log("Failed to process clipboard image:",e),null}}catch(e){return null}}async function detectClipboardText(){try{const e=await import("@crosscopy/clipboard");if(!e.default.hasText())return null;let t=null;try{if(t=await e.default.getText(),!t){const n=e.default.getText();t=n&&"function"==typeof n.then?await n:n}}catch(e){return null}return t&&0!==t.length?t:null}catch(e){return null}}var Ir=__esm({"src/utils/clipboard-image.ts"(){tn(),Ar(),Pr={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".bmp":"image/png",".tiff":"image/png"},__name(detectDroppedImageFile,"detectDroppedImageFile"),__name(detectClipboardImage,"detectClipboardImage"),__name(detectClipboardText,"detectClipboardText")}});function stripBracketedPasteMarkers(e){return e.replace(/\x1B\[200~/g,"").replace(/\[200~/g,"").replace(/\x1B\[201~/g,"").replace(/\[201~/g,"")}function processBracketedPaste(e){const t=e.includes("[200~")||e.includes("[200~"),n=e.includes("[201~")||e.includes("[201~");if(!t&&!n)return{isPasteStart:!1,isPasteEnd:!1,cleanedContent:e};const r=stripBracketedPasteMarkers(e);let o,s;if(t){const t=e.match(/(\x1B)?\[200~/);if(t&&void 0!==t.index){o=e.slice(0,t.index);const r=e.slice(t.index+t[0].length);if(n){const e=r.match(/(\x1B)?\[201~/);e&&void 0!==e.index&&(s=r.slice(0,e.index))}else s=r}}return{isPasteStart:t,isPasteEnd:n,cleanedContent:r,textBeforePaste:o,pastedContent:s}}function enableBracketedPasteMode(){process.stdout.write("[?2004h")}function disableBracketedPasteMode(){process.stdout.write("[?2004l")}var Nr,Rr,Mr,Lr,$r=__esm({"src/utils/bracketed-paste.ts"(){tn(),__name(stripBracketedPasteMarkers,"stripBracketedPasteMarkers"),__name(processBracketedPaste,"processBracketedPaste"),__name(enableBracketedPasteMode,"enableBracketedPasteMode"),__name(disableBracketedPasteMode,"disableBracketedPasteMode")}});async function loadUserConfig(){try{const e=getConfigFile();return parseJSON(await F.readFile(e,"utf-8"))||{}}catch{return{}}}async function saveUserConfig(e){try{const t=getConfigFile();C.writeFileSync(t,JSON.stringify(e,null,2)),C.chmodSync(t,384)}catch(e){throw new Error(`Failed to save user config: ${e}`)}}async function updateUserConfig(e){const t=await loadUserConfig(),n=getConfiguredModel(),r={...t,...e,model:e.model??n};await saveUserConfig(r)}async function isTasteLearningEnabled(){return(await loadUserConfig()).tasteLearning??!0}async function setTasteLearning(e){const{tasteLearning:t}=e;await updateUserConfig({tasteLearning:t})}async function isOAuthEnforced(){if(null!==Nr)return Nr;if(isInternalTeamDisableFlagPresent())return dlog("[Auth] OAuth disabled via --xco flag"),await updateUserConfig({forceOAuth:!1}),Nr=!1,!1;if(isInternalTeamFlagPresent()){dlog("[Auth] OAuth enabled via --co flag");const e=await loadUserConfig(),t=await resolveOAuthProvider({currentProvider:e.provider});return dlog("[Auth] --co resolved provider",t),await updateUserConfig({provider:t,forceOAuth:!0}),Nr=!0,!0}const e=await loadUserConfig();return(Nr=e.forceOAuth??!1)&&dlog("[Auth] using OAuth (persisted from previous --co)"),Nr}async function resolveOAuthProvider(e){const{currentProvider:t}=e;if(t&&Mr.includes(t))return t;const n=await Tn.get("github-copilot"),r=await Tn.get("codex"),o=(await Tn.get("anthropic"),n?"github-copilot":r?"codex":"anthropic");return dlog("[Auth] resolveOAuthProvider fallback",{from:t,to:o}),o}function validateOAuthToken(e){const{token:t,provider:n}=e;if(n&&Mr.includes(n)&&!t)throw new Error(xn)}async function getOAuthCredentials(e){const{provider:t}=e;return"anthropic"===t?{token:await An.getValidAccessToken(),oauthProvider:"anthropic"}:"github-copilot"===t?{token:await qn.getValidAccessToken(),oauthProvider:"github-copilot"}:"codex"===t?{token:await Fn.getValidAccessToken(),oauthProvider:"codex"}:{token:void 0,oauthProvider:void 0}}async function getSelectedModel(){return(await loadUserConfig()).model??Gt}function setModelOverride(e){Lr=e}function getConfiguredModel(){if(Lr)return Lr;try{const e=getConfigFile();return(parseJSON(C.readFileSync(e,"utf-8"))||{}).model??Gt}catch{return Gt}}async function setSelectedModel(e){const{model:t}=e;await updateUserConfig({model:t})}function isExperimentalEnabled(){return process.argv.includes("--experimental")}async function migrateDeprecatedModel(){try{const e=await loadUserConfig();if(!e.model)return;const t=Wt[e.model];if(!t)return;dlog(`[Migration] Upgrading model ${e.model} → ${t}`),await saveUserConfig({...e,model:t})}catch(e){dlog(`[Migration] Failed to migrate model: ${e}`)}}function getCompactMode(){if(null!==Rr)return Rr;try{const e=getConfigFile(),t=(parseJSON(C.readFileSync(e,"utf-8"))||{}).compactMode;return Rr="default"===t||"fast"===t?t:"default"}catch{return Rr="default","default"}}async function setCompactMode(e){const{mode:t}=e;Rr=t,await updateUserConfig({compactMode:t})}var Dr,Or,Fr=__esm({"src/utils/user-config.ts"(){tn(),sn(),un(),$n(),On(),Un(),zn(),Dn(),Bn(),Vr(),Qr(),__name(loadUserConfig,"loadUserConfig"),__name(saveUserConfig,"saveUserConfig"),__name(updateUserConfig,"updateUserConfig"),__name(isTasteLearningEnabled,"isTasteLearningEnabled"),__name(setTasteLearning,"setTasteLearning"),Nr=null,Rr=null,__name(isOAuthEnforced,"isOAuthEnforced"),Mr=["anthropic","github-copilot","codex"],__name(resolveOAuthProvider,"resolveOAuthProvider"),__name(validateOAuthToken,"validateOAuthToken"),__name(getOAuthCredentials,"getOAuthCredentials"),__name(getSelectedModel,"getSelectedModel"),__name(setModelOverride,"setModelOverride"),__name(getConfiguredModel,"getConfiguredModel"),__name(setSelectedModel,"setSelectedModel"),__name(isExperimentalEnabled,"isExperimentalEnabled"),__name(migrateDeprecatedModel,"migrateDeprecatedModel"),__name(getCompactMode,"getCompactMode"),__name(setCompactMode,"setCompactMode")}}),qr=__esm({"src/tui/terminal-link.tsx"(){tn(),kr(),Dr=__name(({url:e,text:t,dimColor:n=!1,color:r})=>{const o=`]8;;${e}${t}]8;;`,s=r??(n?Xn.DIM:void 0);return J.createElement(se,{dimColor:n&&!!r,color:s},o)},"TerminalLink")}}),jr=__esm({"src/tui/anthropic-auth.tsx"(){tn(),xr(),On(),Dn(),Ir(),$r(),Fr(),kr(),qr(),Or=__name(({onSuccess:e,onCancel:t,onFailure:n})=>{const[r,o]=Z(""),[s,i]=Z(null),[a,l]=Z(!1),[u,d]=Z(null),[m,g]=Z(!0),[h,f]=Z(!1),[y,w]=Z(!1);te(()=>{const{url:e,verifier:t,state:n}=An.createAuthorizationUrl();i({url:e,verifier:t,state:n})},[]);const S=re(async e=>{const t=processBracketedPaste(e);if(!t.isPasteStart||y){if(!y||t.isPasteEnd){if(y&&t.isPasteEnd){w(!1);const e=await detectClipboardText();if(e){const t=e.split("#")[0].trim();return void o(t)}if(t.cleanedContent){const e=t.cleanedContent.split("#")[0].trim();o(e)}return}o(e)}}else if(w(!0),t.isPasteEnd){w(!1);const e=await detectClipboardText();if(e){const t=e.split("#")[0].trim();return void o(t)}if(t.cleanedContent){const e=t.cleanedContent.split("#")[0].trim();o(e)}return}},[y]);le((e,n)=>{if(n.escape&&t(),m&&!h)if(n.return||"y"===e||"Y"===e){if(!s)return;fe(s.url).then(()=>{f(!0),g(!1)}).catch(()=>{d(`Failed to open browser. Please manually open: ${s.url}`),f(!0),g(!1)})}else"n"!==e&&"N"!==e||t()});const E=__name(async()=>{if(r.trim()&&s&&!a){l(!0),d(null);try{const t=r.split("#")[0].trim();await An.exchangeCodeForTokens(t,s.verifier,s.state),await updateUserConfig({provider:"anthropic"}),e()}catch(e){const t=e instanceof Error?e.message:"Authentication failed";d(t),l(!1),n&&n(t)}}},"handleSubmit");return m&&!h?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"Anthropic Authentication")),J.createElement(oe,{marginBottom:1},J.createElement(se,null,"Open the Anthropic auth page?",J.createElement(se,{color:Xn.DIM}," (Y/n)")))):J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"Anthropic Authentication")),s&&J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"Login: "),J.createElement(Dr,{url:s.url,text:"Open auth page ↗",color:Xn.CYAN})),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"After authorizing, copy the code and paste it below:")),u&&J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.RED},"Error: ",u)),J.createElement(oe,null,J.createElement(se,null,"Authorization code: "),J.createElement(TextInput,{mask:"*",focus:!0,value:r,onChange:S,onSubmit:E,placeholder:"Paste code here..."})),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press Enter to submit or ESC to cancel")))},"AnthropicAuth")}});function createOSC8Link(e,t,n=!0){return`${n?"":""}]8;;${e}${t||e}]8;;${n?"":""}`}var Br,Ur,zr,Hr=__esm({"src/utils/osc8-link.ts"(){tn(),__name(createOSC8Link,"createOSC8Link")}}),Wr=__esm({"src/tui/codex-auth.tsx"(){tn(),Un(),Dn(),Fr(),Hr(),kr(),Br=__name(({onSuccess:e,onCancel:t,onFailure:n})=>{const[r,o]=Z("confirm"),[s,i]=Z(""),[a,l]=Z(null),[u,d]=Z(""),m=ee(null),g=re(async()=>{const t=new AbortController;m.current=t;try{await Fn.login({onAuth:__name(({authorizeUrl:e})=>{i(e),o("waiting"),fe(e).catch(()=>{})},"onAuth"),onProgress:__name(e=>{d(e),e.startsWith("Exchanging")&&o("exchanging")},"onProgress"),signal:t.signal}),await updateUserConfig({provider:"codex"}),o("success"),e()}catch(e){if(t.signal.aborted)return;const r=e instanceof Error?e.message:"Authentication failed";l(r),o("error"),n?.(r)}},[e,n]);return te(()=>()=>{m.current?.abort()},[]),le((e,n)=>{if(n.escape)return m.current?.abort(),void t();if("confirm"===r){if(n.return||"y"===e||"Y"===e)return void g();"n"!==e&&"N"!==e||t()}}),"confirm"===r?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"ChatGPT (Codex) Authentication")),J.createElement(oe,{marginBottom:1},J.createElement(se,null,"This will open your browser to sign in with ChatGPT.")),J.createElement(oe,{marginBottom:1},J.createElement(se,null,"Continue?",J.createElement(se,{color:Xn.DIM}," (Y/n)")))):"waiting"===r||"exchanging"===r?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"ChatGPT (Codex) Authentication")),J.createElement(oe,{marginBottom:1},J.createElement(se,null,createOSC8Link(s,"Open auth page ↗"))),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},u||"Waiting for authorization...")),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"Press ESC to cancel"))):"error"===r?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"ChatGPT (Codex) Authentication")),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.RED},"Error: ",a)),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"Press ESC to go back"))):null},"CodexAuth")}}),Gr=__esm({"src/tui/copilot-auth.tsx"(){tn(),zn(),Dn(),Fr(),kr(),Ur=__name(({onSuccess:e,onCancel:t,onFailure:n})=>{const[r,o]=Z("confirm"),[s,i]=Z(""),[a,l]=Z(""),[u,d]=Z(null),[m,g]=Z(""),h=ee(null),f=re(async()=>{const t=new AbortController;h.current=t;try{await qn.login({onAuth:__name(({userCode:e,verificationUri:t})=>{i(e),l(t),o("device-code"),fe(t).catch(()=>{})},"onAuth"),onProgress:__name(e=>{g(e),"Waiting for authorization..."===e&&o("polling")},"onProgress"),signal:t.signal}),await updateUserConfig({provider:"github-copilot"}),o("success"),e()}catch(e){if(t.signal.aborted)return;const r=e instanceof Error?e.message:"Authentication failed";d(r),o("error"),n&&n(r)}},[e,n]);return te(()=>()=>{h.current?.abort()},[]),le((e,n)=>{if(n.escape)return h.current?.abort(),void t();if("confirm"===r){if(n.return||"y"===e||"Y"===e)return void f();"n"!==e&&"N"!==e||t()}}),"confirm"===r?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"GitHub Copilot Authentication")),J.createElement(oe,{marginBottom:1},J.createElement(se,null,"This will open GitHub to authorize Copilot access.")),J.createElement(oe,{marginBottom:1},J.createElement(se,null,"Continue?",J.createElement(se,{color:Xn.DIM}," (Y/n)")))):"device-code"===r||"polling"===r?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"GitHub Copilot Authentication")),J.createElement(oe,{marginBottom:1},J.createElement(se,null,"Enter this code on GitHub:"," ",J.createElement(se,{bold:!0,color:Xn.GREEN},s))),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"Open: ",a)),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"polling"===r?"Waiting for authorization...":m||"Starting...")),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"Press ESC to cancel"))):"error"===r?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{bold:!0,color:Xn.CYAN},"GitHub Copilot Authentication")),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.RED},"Error: ",u)),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"Press ESC to go back"))):null},"CopilotAuth")}});function getProviderDisplayName(e){return e?Qt[e]?.label??e:"None"}function getProviderConfig(e){return zr[e]}function isInternalTeamFlagPresent(){return process.argv.includes(_t)}function isInternalTeamDisableFlagPresent(){return process.argv.includes(xt)}function isInternalTeamFlagEnforced(){if(isInternalTeamDisableFlagPresent())return!1;if(isInternalTeamFlagPresent())return!0;try{const e=getConfigFile();return(parseJSON(C.readFileSync(e,"utf-8"))||{}).forceOAuth??!1}catch{return!1}}function getProviderOptions(){const e=isInternalTeamFlagEnforced();return Object.values(zr).filter(t=>!t.hidden||e).map(e=>({label:`${e.displayName} (${e.description})`,value:e.id}))}var Vr=__esm({"src/utils/provider-config.ts"(){tn(),sn(),On(),Un(),zn(),jr(),Wr(),Gr(),un(),Qr(),(zr=Object.fromEntries(Object.values(Qt).map(e=>[e.id,{id:e.id,displayName:e.label,description:e.description,requiresAuth:e.requiresAuth,hidden:!e.visibleInNormalMode}]))).anthropic&&(zr.anthropic.authComponent=Or,zr.anthropic.checkAuth=async()=>!!await An.getValidAccessToken()),zr["github-copilot"]&&(zr["github-copilot"].authComponent=Ur,zr["github-copilot"].checkAuth=async()=>!!await qn.getValidAccessToken()),zr.codex&&(zr.codex.authComponent=Br,zr.codex.checkAuth=async()=>!!await Fn.getValidAccessToken()),__name(getProviderDisplayName,"getProviderDisplayName"),__name(getProviderConfig,"getProviderConfig"),__name(isInternalTeamFlagPresent,"isInternalTeamFlagPresent"),__name(isInternalTeamDisableFlagPresent,"isInternalTeamDisableFlagPresent"),__name(isInternalTeamFlagEnforced,"isInternalTeamFlagEnforced"),__name(getProviderOptions,"getProviderOptions")}});function isInternalTeamDisableOAuthFlagPresent(){return process.argv.includes(xt)}function formatDate(e=new Date){return e.toISOString().split("T")[0]}function parseJSON(e){try{return JSON.parse(e)}catch{return null}}async function getConfiguredProvider(){try{const e=getConfigFile(),t=await q.readFile(e,"utf-8"),n=JSON.parse(t),r=n.provider||null,o=n.forceOAuth||!1,s=isInternalTeamFlagPresent();if(isInternalTeamDisableOAuthFlagPresent())return await updateUserConfig({provider:Qt["command-code"].id,forceOAuth:!1}),Qt["command-code"].id;if(s||o){if(r)return await updateUserConfig({forceOAuth:!0}),r;const e=await resolveOAuthProvider({currentProvider:r});return await updateUserConfig({provider:e,forceOAuth:!0}),e}return r}catch{return null}}function getIsExpandToolShortcut(e,t){const n=getIsTerminalIterm2();return!(!n||!e.shift||"O"!==t)||!(n||!isCtrlKey({inputChar:t,key:e,letter:"o",ctrlCode:15}))}function formatTime2(e){return e<60?`${e}s`:`${Math.floor(e/60)}m ${e%60}s`}function formatTokens(e){return e<1e3?`${e} tokens`:`${(e/1e3).toFixed(1)}k tokens`}var Qr=__esm({"src/utils/utils.ts"(){tn(),sn(),un(),kn(),Ln(),Vr(),Fr(),__name(isInternalTeamDisableOAuthFlagPresent,"isInternalTeamDisableOAuthFlagPresent"),__name(formatDate,"formatDate"),__name(parseJSON,"parseJSON"),__name(getConfiguredProvider,"getConfiguredProvider"),__name(getIsExpandToolShortcut,"getIsExpandToolShortcut"),__name(formatTime2,"formatTime"),__name(formatTokens,"formatTokens")}});function isLocalDevelopmentBuild(){try{const e=process.argv[1];if(!e)return!1;if(e.includes("/usr/local/bin/dmd"))return!0;const t=v.realpathSync(e);return!(!t.includes("/dist/index.mjs")||t.includes("node_modules"))}catch{return!1}}var Kr=__esm({"src/utils/is-local-dev.ts"(){tn(),__name(isLocalDevelopmentBuild,"isLocalDevelopmentBuild")}});function getTelemetryEnv(){return isLocalDevelopmentBuild()?"local":on()}function getAxiomToken(){switch(getTelemetryEnv()){case"staging":return bt;case"local":return Et;default:return St}}function isTelemetryEnabled(){if("1"===process.env.DO_NOT_TRACK||"true"===process.env.DO_NOT_TRACK)return!1;try{const e=getConfigFile();return!1!==(parseJSON(C.readFileSync(e,"utf-8"))||{}).telemetry}catch{return!0}}function hasAxiomToken(){return Boolean(getAxiomToken())}var Yr=__esm({"src/utils/telemetry/config.ts"(){tn(),un(),Qr(),an(),Kr(),rn(),rn(),__name(getTelemetryEnv,"getTelemetryEnv"),__name(getAxiomToken,"getAxiomToken"),__name(isTelemetryEnabled,"isTelemetryEnabled"),__name(hasAxiomToken,"hasAxiomToken")}}),Jr={};function getPackageJson(){const e=import.meta.url,t=d(e);let s=r(t);const{root:i}=o(s);for(;;){const e=n(s,"package.json");if(k(e))return JSON.parse(_(e,"utf8"));if(s===i)throw new Error("Could not find package.json");s=r(s)}}__export(Jr,{getPackageJson:()=>getPackageJson});var Xr,Zr,eo,to,no,ro,oo=__esm({"src/utils/package.ts"(){tn(),__name(getPackageJson,"getPackageJson")}});function createAxiomExporter(){return new Zr({url:wt,headers:{Authorization:`Bearer ${getAxiomToken()}`,"X-Axiom-Dataset":yt}})}function createServiceResource(){const e=getPackageJson(),t=process.execPath.split("/").pop()||"unknown";return eo({[to]:Ct,[no]:e.version,"process.executable.name":t,"process.runtime.name":"node","process.runtime.version":process.version,"process.pid":process.pid})}function createTelemetrySDK(){const e=createAxiomExporter(),t=createServiceResource();return new Xr({resource:t,spanProcessors:[new ro(e)],autoDetectResources:!1})}var so,io,ao,lo,co,uo=__esm({"src/utils/telemetry/sdk-factory.ts"(){tn(),rn(),Yr(),oo(),({NodeSDK:Xr}=ye),({OTLPTraceExporter:Zr}=we),({resourceFromAttributes:eo}=Se),({ATTR_SERVICE_NAME:to,ATTR_SERVICE_VERSION:no}=be),({SimpleSpanProcessor:ro}=Ee),__name(createAxiomExporter,"createAxiomExporter"),__name(createServiceResource,"createServiceResource"),__name(createTelemetrySDK,"createTelemetrySDK")}});function generateSessionId(){return`sess_${Te().replace(/-/g,"").substring(0,16)}`}function hashPath(e){return G.createHash("sha256").update(e).digest("hex").substring(0,12)}function getCliVersion(){try{const e=getPackageJson();if("string"==typeof e.version&&""!==e.version.trim())return e.version}catch{}return"unknown"}function buildSessionAttributes(e){const{sessionId:t,projectPath:n,gitBranch:r,cliVersion:o}=e;return{"session.id":t,"session.start_time":(new Date).toISOString(),"session.project_hash":hashPath(n),"session.branch_hash":r?hashPath(r):"unknown","session.cli_version":o,"session.platform":`${y.platform()}-${y.arch()}`,"session.node_version":process.version}}function startSession(){co={},io=null,ao=null,so=generateSessionId(),lo=Date.now();try{const e=Ce.getTracer(Ct),t=getCliVersion(),n=getCurrentWorkingDirectory(),r=getCurrentBranch(),o=buildSessionAttributes({sessionId:so,projectPath:n,gitBranch:r,cliVersion:t});io=e.startSpan("session:cli",{attributes:o}),ao=io.spanContext(),io.end()}catch{io=null,ao=null}return so}function getSessionId(){return so}function getTraceId(){return ao?ao.traceId:null}function getSessionContext(){return ao?Ce.setSpanContext(ke.active(),ao):ke.active()}function endSession(e={}){const{status:t="success"}=e;if(ao&&lo){const e=Ce.getTracer(Ct),n=Date.now()-lo,r=Ce.setSpanContext(ke.active(),ao),o=e.startSpan("session:end",{attributes:{"session.id":so||"unknown","session.duration_ms":n,"session.end_time":(new Date).toISOString(),"session.status":t,...co}},r);"error"===t?o.setStatus({code:ve.ERROR}):o.setStatus({code:ve.OK}),o.end()}io=null,ao=null,so=null,lo=null,co={}}var mo=__esm({"src/utils/telemetry/session.ts"(){tn(),rn(),oo(),kn(),so=null,io=null,ao=null,lo=null,co={},__name(generateSessionId,"generateSessionId"),__name(hashPath,"hashPath"),__name(getCliVersion,"getCliVersion"),__name(buildSessionAttributes,"buildSessionAttributes"),__name(startSession,"startSession"),__name(getSessionId,"getSessionId"),__name(getTraceId,"getTraceId"),__name(getSessionContext,"getSessionContext"),__name(endSession,"endSession")}});function setSpanStatus(e,t){"error"===t?e.setStatus({code:ve.ERROR}):e.setStatus({code:ve.OK})}function createSpan(e){const{name:t,attributes:n}=e,r=Ce.getTracer(Ct),o=getSessionContext();return r.startSpan(t,{attributes:n},o)}function endSpan(e){const{span:t,status:n="success"}=e;setSpanStatus(t,n),t.end()}function recordError(e){const{span:t,error:n,additionalAttributes:r}=e;if(t.recordException(n),t.setStatus({code:ve.ERROR,message:n.message}),t.setAttribute("error.type",n.name),t.setAttribute("error.message",n.message),n.stack&&t.setAttribute("error.stack",n.stack),r)for(const[e,n]of Object.entries(r))void 0!==n&&t.setAttribute(e,n)}var po,ho,fo,yo,wo,So,bo,Eo,Co,vo,ko,To,_o,xo,Po,Ao,Io,No,Ro=__esm({"src/utils/telemetry/spans.ts"(){tn(),rn(),mo(),__name(setSpanStatus,"setSpanStatus"),__name(createSpan,"createSpan"),__name(endSpan,"endSpan"),__name(recordError,"recordError")}});function dedentText(e){const t=e.split("\n");let n=1/0;for(const e of t){if(0===e.trim().length)continue;const t=e.length-e.trimStart().length;t>0&&t<n&&(n=t)}return n===1/0||0===n?e:t.map(e=>0===e.trim().length?e:e.length-e.trimStart().length>=n?e.slice(n):e).join("\n")}function getEffectiveWidth({padding:e=So}={}){let t=80;return process.stdout.columns?t=process.stdout.columns:process.stderr.columns?t=process.stderr.columns:process.env.COLUMNS&&(t=Number(process.env.COLUMNS)),Math.max(40,t-e)}function truncateString({text:e,maxChars:t}){return e.length<=t?e:t<=3?e.slice(0,t):`${e.slice(0,t-3)}...`}function truncateCommand({command:e}){const t=e.replace(/\/Users\/[^/]+/g,"~").replace(/\/home\/[^/]+/g,"~").replace(/C:\\Users\\[^\\]+/g,"~");if(t.length<=bo)return t;if(t.includes(" && ")){const e=t.split(" && ")[0].trim();return e.length<=bo-5?`${e} && ...`:truncateString({text:e,maxChars:bo})}return truncateString({text:t,maxChars:bo})}function truncateToVisualLines({output:e,maxVisualLines:t=po,padding:n=So,maxChars:r}){const o=getEffectiveWidth({padding:n}),s=r??t*o,i=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n").replace(/\u00A0/g," ").trim().split("\n");let a=0,l=i.length;for(let e=0;e<i.length;e++){const n=i[e];if(0===n.trim().length)continue;const r=Math.max(1,Math.ceil(n.length/o));if(!(a+r<=t)){l=Math.max(1,e);break}a+=r}const u=l<i.length,d=i.slice(l).reduce((e,t)=>e+Math.max(1,Math.ceil(t.length/o)),0),m=i.slice(0,l).filter(e=>e.trim().length>0).join("\n");if(m.length>s){const e=m.slice(0,s-3).trimEnd(),t=e.lastIndexOf("\n"),n=t>0?e.slice(0,t):e;return{text:u?n:`${n}...`,isTruncated:!0,remainingLines:d}}return{text:m,isTruncated:u,remainingLines:d}}var Mo=__esm({"src/utils/truncation.ts"(){tn(),po=2,ho=10,fo=10,yo=10,wo=20,So=4,bo=100,Eo=100,Co=50,vo=100,ko=60,To=80,_o=2,xo=1e5,Po=5e4,Ao=25e3,Io=1e3,No=200,__name(dedentText,"dedentText"),__name(getEffectiveWidth,"getEffectiveWidth"),__name(truncateString,"truncateString"),__name(truncateCommand,"truncateCommand"),__name(truncateToVisualLines,"truncateToVisualLines")}});function isSecretKey(e){const t=e.toLowerCase();return vt.some(e=>t.includes(e))}function isContentKey(e){const t=e.toLowerCase();return kt.some(e=>t.includes(e))}function safeStringify(e){try{return JSON.stringify(e)}catch{return"[Unserializable]"}}function truncateString2(e){return e.length<=No?e:`${e.substring(0,No-3)}...`}function normalizeError(e){return e instanceof Error?e:new Error(String(e))}function sanitizeErrorForTelemetry(e){const{error:t,label:n="error"}=e,r=new Error(n);return r.name=t.name||"Error",r}function sanitizeValue(e){const{value:t,key:n,visited:r}=e;if(isContentKey(n)||isSecretKey(n))return"[redacted]";if(null==t)return t;if("string"==typeof t)return t.length>No?truncateString2(t):t;if("number"==typeof t||"boolean"==typeof t)return t;if("object"==typeof t){if(r.has(t))return"[Circular]";if(r.add(t),Array.isArray(t))return t.map((e,t)=>sanitizeValue({value:e,key:String(t),visited:r}));const e={};for(const[n,o]of Object.entries(t))e[n]=sanitizeValue({value:o,key:n,visited:r});return e}return"[Unsupported]"}function sanitizeParams(e){const t=new WeakSet;t.add(e);const n={};for(const[r,o]of Object.entries(e))n[r]=sanitizeValue({value:o,key:r,visited:t});return n}function sanitizeEndpoint(e){return e.split("?")[0]}var Lo=__esm({"src/utils/telemetry/sanitization.ts"(){tn(),rn(),Mo(),__name(isSecretKey,"isSecretKey"),__name(isContentKey,"isContentKey"),__name(safeStringify,"safeStringify"),__name(truncateString2,"truncateString"),__name(normalizeError,"normalizeError"),__name(sanitizeErrorForTelemetry,"sanitizeErrorForTelemetry"),__name(sanitizeValue,"sanitizeValue"),__name(sanitizeParams,"sanitizeParams"),__name(sanitizeEndpoint,"sanitizeEndpoint")}});function createTrackingHandle(e){const{span:t,startTime:n,durationAttr:r,statusAttr:o}=e;return{span:t,end:__name(e=>{const s=Date.now()-n;if(t.setAttribute(r,s),"status"in e)t.setAttribute(o,e.status),e.error&&recordError({span:t,error:e.error}),endSpan({span:t,status:e.status});else{const{statusCode:n,error:r,errorBody:o}=e;if(t.setAttribute("http.status_code",n),o){const e="string"==typeof o?o:safeStringify(o);t.setAttribute("http.response_body",e.substring(0,Tt))}r?(recordError({span:t,error:r}),endSpan({span:t,status:"error"})):endSpan({span:t,status:n>=400?"error":"success"})}},"end")}}function trackToolStart(e){const{toolName:t,params:n}=e;return createTrackingHandle({span:createSpan({name:`tool:${t}`,attributes:{"tool.name":t,"tool.params":safeStringify(n?sanitizeParams(n):{})}}),startTime:Date.now(),durationAttr:"tool.duration_ms",statusAttr:"tool.status"})}function trackError(e){const{error:t,context:n}=e,r=normalizeError(t),{component:o,heading:s,code:i,...a}=n,l={"error.type":r.name,"error.message":r.message,"error.component":o,"error.heading":s};void 0!==i&&(l["error.code"]=String(i));for(const[e,t]of Object.entries(a))null!=t&&(l[e]="object"==typeof t?safeStringify(t):String(t));const u=createSpan({name:`error:${r.name}`,attributes:l});recordError({span:u,error:r}),u.end()}function trackAPICallStart(e){const{method:t,endpoint:n,cliVersion:r}=e,o=sanitizeEndpoint(n);return createTrackingHandle({span:createSpan({name:`api:${t}:${o}`,attributes:{"http.method":t,"http.url":o,...r?{"cli.version":r}:{}}}),startTime:Date.now(),durationAttr:"http.duration_ms",statusAttr:"http.status"})}function getSupportId(){const e=getTraceId();return e?`req_${e}`:"unknown"}function systemInfo(e){const{userName:t,userId:n,orgLogin:r,orgId:o,nodeVersion:s,platform:i,arch:a}=e,l={"whoami.node_version":s,"whoami.platform":i,"whoami.arch":a,"whoami.os":`${i}-${a}`};t&&(l["whoami.user_name"]=t),n&&(l["whoami.user_id"]=n),r&&(l["whoami.org_login"]=r),o&&(l["whoami.org_id"]=o),endSpan({span:createSpan({name:"whoami",attributes:l}),status:"success"})}var $o,Do,Oo,Fo=__esm({"src/utils/telemetry/events.ts"(){tn(),Ro(),mo(),rn(),Lo(),Lo(),__name(createTrackingHandle,"createTrackingHandle"),__name(trackToolStart,"trackToolStart"),__name(trackError,"trackError"),__name(trackAPICallStart,"trackAPICallStart"),__name(getSupportId,"getSupportId"),__name(systemInfo,"systemInfo")}}),qo=__esm({"src/utils/telemetry/components.ts"(){tn(),$o={AUTH_FLOW:"auth-flow",ANTHROPIC_OAUTH:"anthropic-oauth",COPILOT_OAUTH:"copilot-oauth",CODEX_OAUTH:"codex-oauth",ANTHROPIC_CLIENT:"anthropic-client",UNHANDLED_REJECTION:"unhandled-rejection",UNCAUGHT_EXCEPTION:"uncaught-exception",SESSION_MANAGER:"session-manager",UPDATE_COMMAND:"update-command",LEARN_TASTE_COMMAND:"learn-taste-command",LEARNING_AGENT:"learning-agent",TASTE_REMOTE_STORAGE:"taste-remote-storage",CHECKPOINT_MANAGER:"checkpoint-manager",FILE_HISTORY:"file-history",API_REQUEST:"api-request",CONTEXT_ENGINE:"context-engine",CLI_ERROR_HANDLER:"cli-error-handler"}}});function initTelemetry(){if(Oo)return!0;if(!isTelemetryEnabled())return!1;if(!hasAxiomToken())return!1;try{return(Do=createTelemetrySDK()).start(),Oo=!0,!0}catch{return Do=null,Oo=!1,!1}}async function shutdownTelemetry(){if(Do&&Oo)try{endSession(),await Do.shutdown()}catch{}finally{Do=null,Oo=!1}}function shutdownTelemetrySync(){if(Oo)try{endSession()}catch{}}function isTelemetryInitialized(){return Oo}var jo=__esm({"src/utils/telemetry/telemetry.ts"(){tn(),uo(),Yr(),mo(),Ro(),Fo(),qo(),Do=null,Oo=!1,__name(initTelemetry,"initTelemetry"),__name(shutdownTelemetry,"shutdownTelemetry"),__name(shutdownTelemetrySync,"shutdownTelemetrySync"),__name(isTelemetryInitialized,"isTelemetryInitialized")}});async function readAuthFile(e){try{const t=getAuthFile(e),n=await q.readFile(t,"utf-8");return JSON.parse(n)}catch{return null}}async function getAuthKey(e){const t=await readAuthFile(e);return t&&t.apiKey||null}async function getUserName(e){const t=await readAuthFile(e);return t&&t.userName||""}async function checkAuthStatus(e){const t=await readAuthFile(e);return t&&t.apiKey?{authenticated:!0,apiKey:t.apiKey,userName:t.userName}:{authenticated:!1,apiKey:null}}var Bo=__esm({"src/utils/auth/auth-file.ts"(){tn(),un(),__name(readAuthFile,"readAuthFile"),__name(getAuthKey,"getAuthKey"),__name(getUserName,"getUserName"),__name(checkAuthStatus,"checkAuthStatus")}});function isGenericUserName(e){return!e||"API Key"===e||"Manual API Key"===e}function formatUserSuffix(e){return isGenericUserName(e)?"":` as ${e}`}function formatAlreadyLoggedIn(e){return`Already logged in${formatUserSuffix(e)}`}function formatLogoutSuccess(e){return isGenericUserName(e)?"Logged out successfully":`Logged out as ${e}`}function formatNotAuthenticated(){return"Not currently authenticated"}function formatLogoutFailed(e){return`Logout failed: ${e}`}function formatLogoutWarnings(e){return 0===e.length?"":`Warnings: ${e.join(", ")}`}function formatAuthCancelled(){return"Authentication cancelled"}var Uo,zo=__esm({"src/utils/auth/auth-messages.ts"(){tn(),__name(isGenericUserName,"isGenericUserName"),__name(formatUserSuffix,"formatUserSuffix"),__name(formatAlreadyLoggedIn,"formatAlreadyLoggedIn"),__name(formatLogoutSuccess,"formatLogoutSuccess"),__name(formatNotAuthenticated,"formatNotAuthenticated"),__name(formatLogoutFailed,"formatLogoutFailed"),__name(formatLogoutWarnings,"formatLogoutWarnings"),__name(formatAuthCancelled,"formatAuthCancelled")}});async function statusAction(){const e=Ae("Checking authentication status...").start();try{const t=on(),n=await checkAuthStatus(t);n.error&&(e.fail(pe.red(`Status check failed: ${n.error}`)),process.exit(1)),n.authenticated||(e.fail(pe.red("Not authenticated")),console.log(""),console.log(`${pe.dim("Run")} ${pe.cyan("cmd auth login")} ${pe.dim("to authenticate.")}`),console.log(""),process.exit(1));const r=isGenericUserName(n.userName)?"":` as ${pe.cyan(n.userName)}`;e.succeed("Authentication verified"),console.log(`${pe.green(Pe.tick)} ${pe.bold("Authenticated")}${r}`),console.log(` ${pe.dim("Provider:")} ${pe.cyan("Command Code")}`),console.log(""),process.exit(0)}catch(t){e.fail(pe.red(`Status check failed: ${t instanceof Error?t.message:"Unknown error"}`)),process.exit(1)}}var Ho,Wo,Go,Vo,Qo,Ko,Yo,Jo,Xo,Zo,es,ts=__esm({"src/commands/auth/status.ts"(){tn(),sn(),an(),Bo(),zo(),Bo(),__name(statusAction,"statusAction"),Uo=new _e("status").description("Show authentication status").allowUnknownOption().allowExcessArguments().action(statusAction)}}),ns=__esm({"src/api/errors.ts"(){tn(),Ho=class _APIError extends Error{static{__name(this,"APIError")}status;headers;error;code;param;type;request_id;constructor(e,t,n,r){super(_APIError.makeMessage(e,t,n)),this.status=e,this.headers=r,this.request_id=r?.["lb-request-id"];const o=t;this.error=o,this.code=o?.code,null!=o?.status&&(this.status=o.status)}static makeMessage(e,t,n){const r=t?.message?"string"==typeof t.message?t.message:JSON.stringify(t.message):t?JSON.stringify(t):n;return e&&r?`${e} ${r}`:e?`${e} status code (no body)`:r||"(no status code or body)"}static generate(e,t,n,r){if(!e)return new Wo({cause:t instanceof Error?t:void 0});const o=t?.error;switch(e){case 400:return new Go(e,o,n,r);case 401:return new Vo(e,o,n,r);case 403:return new Qo(e,o,n,r);case 404:return new Ko(e,o,n,r);case 409:return new Yo(e,o,n,r);case 422:return new Jo(e,o,n,r);case 429:return new Xo(e,o,n,r);default:return e>=500?new Zo(e,o,n,r):new _APIError(e,o,n,r)}}},Wo=class extends Ho{static{__name(this,"APIConnectionError")}status=void 0;constructor({message:e,cause:t}){super(void 0,void 0,e||"Connection error.",void 0),t&&(this.cause=t)}},Go=class extends Ho{static{__name(this,"BadRequestError")}status=400},Vo=class extends Ho{static{__name(this,"AuthenticationError")}status=401},Qo=class extends Ho{static{__name(this,"PermissionDeniedError")}status=403},Ko=class extends Ho{static{__name(this,"NotFoundError")}status=404},Yo=class extends Ho{static{__name(this,"ConflictError")}status=409},Jo=class extends Ho{static{__name(this,"UnprocessableEntityError")}status=422},Xo=class extends Ho{static{__name(this,"RateLimitError")}status=429},Zo=class extends Ho{static{__name(this,"InternalServerError")}}}}),rs=__esm({"../shared/src/types/share.ts"(){tn(),es=f.object({messageId:f.string().optional(),timestamp:f.string(),model:f.string().optional(),duration:f.number().optional(),usage:f.object({inputTokens:f.number(),outputTokens:f.number(),totalTokens:f.number(),cacheReadTokens:f.number().optional(),cacheWriteTokens:f.number().optional(),estimatedCost:f.number().optional()}).optional(),source:f.string().optional(),context:f.object({sessionId:f.string().optional(),threadId:f.string().optional(),userId:f.string().optional()}).optional(),highlight:f.boolean().optional(),isSummary:f.boolean().optional(),isAutomated:f.boolean().optional(),isMeta:f.boolean().optional(),hookContexts:f.record(f.string(),f.object({preToolUse:f.string().optional(),postToolUse:f.string().optional()})).optional()}),f.object({message:f.any(),meta:es}),f.object({sessionId:f.string(),messages:f.array(f.any()).optional()}),f.object({secret:f.string(),url:f.string()}),f.object({sessionId:f.string(),secret:f.string()}),f.object({sessionId:f.string(),secret:f.string(),key:f.string(),content:f.any()}),f.object({sessionId:f.string(),secret:f.string(),message:f.any()}),f.object({shortId:f.string()}),f.object({info:f.any().optional(),messages:f.array(f.any())})}}),os=__esm({"../shared/src/types/whoami.ts"(){tn()}});function parseModelString(e){if(e.includes(":")){const t=e.indexOf(":");return{provider:e.slice(0,t),modelId:e.slice(t+1)}}return{provider:"anthropic",modelId:e}}var ss,as=__esm({"../shared/src/types/messages.ts"(){tn(),__name(parseModelString,"parseModelString")}}),ls=__esm({"../shared/src/types/email.ts"(){tn(),f.object({to:f.union([f.email(),f.array(f.email())]),subject:f.string(),html:f.string().optional(),text:f.string().optional(),template:f.string().optional(),templateData:f.record(f.any(),f.any()).optional(),cc:f.array(f.email()).optional(),bcc:f.array(f.email()).optional(),replyTo:f.array(f.email()).optional(),tags:f.array(f.object({name:f.string(),value:f.string()})).optional()}),f.object({success:f.boolean(),messageId:f.string().optional(),error:f.string().optional()})}});function is(e,t){if(!e||"object"!=typeof e)return!1;if(e instanceof t)return!0;if(!Object.prototype.hasOwnProperty.call(t,ss))throw new Error(`Class "${t.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let n=Object.getPrototypeOf(e).constructor;if(n)for(;n;){if(ss in n&&n[ss]===t[ss])return!0;n=Object.getPrototypeOf(n)}return!1}var cs,us,ds,ms,ps,gs=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/entity.js"(){tn(),ss=Symbol.for("drizzle:entityKind"),__name(is,"is")}}),hs=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/column.js"(){tn(),gs(),cs=class{static{__name(this,"Column")}constructor(e,t){this.table=e,this.config=t,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity}static[ss]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return void 0!==this.config.generated&&"byDefault"!==this.config.generated.type}}}}),fs=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/column-builder.js"(){tn(),gs(),us=class{static{__name(this,"ColumnBuilder")}static[ss]="ColumnBuilder";config;constructor(e,t,n){this.config={name:e,keyAsName:""===e,notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:n,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(e){return this.config.onUpdateFn=e,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(e){""===this.config.name&&(this.config.name=e)}}}}),ys=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/table.utils.js"(){tn(),ds=Symbol.for("drizzle:Name")}}),ws=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/foreign-keys.js"(){tn(),gs(),ys(),ms=class{static{__name(this,"ForeignKeyBuilder")}static[ss]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(e,t){this.reference=()=>{const{name:t,columns:n,foreignColumns:r}=e();return{name:t,columns:n,foreignTable:r[0].table,foreignColumns:r}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=void 0===e?"no action":e,this}onDelete(e){return this._onDelete=void 0===e?"no action":e,this}build(e){return new ps(e,this)}},ps=class{static{__name(this,"ForeignKey")}constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[ss]="PgForeignKey";reference;onUpdate;onDelete;getName(){const{name:e,columns:t,foreignColumns:n}=this.reference(),r=t.map(e=>e.name),o=n.map(e=>e.name),s=[this.table[ds],...r,n[0].table[ds],...o];return e??`${s.join("_")}_fk`}}}});function iife(e,...t){return e(...t)}var Ss,bs,Es=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/tracing-utils.js"(){tn(),__name(iife,"iife")}});function uniqueKeyName(e,t){return`${e[ds]}_${t.join("_")}_unique`}var Cs=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/unique-constraint.js"(){tn(),gs(),ys(),__name(uniqueKeyName,"uniqueKeyName"),Ss=class{static{__name(this,"UniqueConstraintBuilder")}constructor(e,t){this.name=t,this.columns=e}static[ss]="PgUniqueConstraintBuilder";columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new bs(e,this.columns,this.nullsNotDistinctConfig,this.name)}},class{static{__name(this,"UniqueOnConstraintBuilder")}static[ss]="PgUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new Ss(e,this.name)}},bs=class{static{__name(this,"UniqueConstraint")}constructor(e,t,n,r){this.table=e,this.columns=t,this.name=r??uniqueKeyName(this.table,this.columns.map(e=>e.name)),this.nullsNotDistinct=n}static[ss]="PgUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}}}});function parsePgArrayValue(e,t,n){for(let r=t;r<e.length;r++){const o=e[r];if("\\"!==o){if('"'===o)return[e.slice(t,r).replace(/\\/g,""),r+1];if(!n&&(","===o||"}"===o))return[e.slice(t,r).replace(/\\/g,""),r]}else r++}return[e.slice(t).replace(/\\/g,""),e.length]}function parsePgNestedArray(e,t=0){const n=[];let r=t,o=!1;for(;r<e.length;){const s=e[r];if(","===s){(o||r===t)&&n.push(""),o=!0,r++;continue}if(o=!1,"\\"===s){r+=2;continue}if('"'===s){const[t,o]=parsePgArrayValue(e,r+1,!0);n.push(t),r=o;continue}if("}"===s)return[n,r+1];if("{"===s){const[t,o]=parsePgNestedArray(e,r+1);n.push(t),r=o;continue}const[i,a]=parsePgArrayValue(e,r,!1);n.push(i),r=a}return[n,r]}function parsePgArray(e){const[t]=parsePgNestedArray(e,1);return t}function makePgArray(e){return`{${e.map(e=>Array.isArray(e)?makePgArray(e):"string"==typeof e?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${e}`).join(",")}}`}var vs,ks,Ts,_s,xs,Ps,As,Is,Ns,Rs=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/utils/array.js"(){tn(),__name(parsePgArrayValue,"parsePgArrayValue"),__name(parsePgNestedArray,"parsePgNestedArray"),__name(parsePgArray,"parsePgArray"),__name(makePgArray,"makePgArray")}}),Ms=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/common.js"(){tn(),fs(),hs(),gs(),ws(),Es(),Cs(),Rs(),vs=class extends us{static{__name(this,"PgColumnBuilder")}foreignKeyConfigs=[];static[ss]="PgColumnBuilder";array(e){return new xs(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:"always",mode:"stored"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:n,actions:r})=>iife((n,r)=>{const o=new ms(()=>{const t=n();return{columns:[e],foreignColumns:[t]}});return r.onUpdate&&o.onUpdate(r.onUpdate),r.onDelete&&o.onDelete(r.onDelete),o.build(t)},n,r))}buildExtraConfigColumn(e){return new Ts(e,this.config)}},ks=class extends cs{static{__name(this,"PgColumn")}constructor(e,t){t.uniqueName||(t.uniqueName=uniqueKeyName(e,[t.name])),super(e,t),this.table=e}static[ss]="PgColumn"},Ts=class extends ks{static{__name(this,"ExtraConfigColumn")}static[ss]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(e){return this.indexConfig.opClass=e,this}},_s=class{static{__name(this,"IndexedColumn")}static[ss]="IndexedColumn";constructor(e,t,n,r){this.name=e,this.keyAsName=t,this.type=n,this.indexConfig=r}name;keyAsName;type;indexConfig},xs=class extends vs{static{__name(this,"PgArrayBuilder")}static[ss]="PgArrayBuilder";constructor(e,t,n){super(e,"array","PgArray"),this.config.baseBuilder=t,this.config.size=n}build(e){const t=this.config.baseBuilder.build(e);return new Ps(e,this.config,t)}},Ps=class _PgArray extends ks{static{__name(this,"PgArray")}constructor(e,t,n,r){super(e,t),this.baseColumn=n,this.range=r,this.size=t.size}size;static[ss]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${"number"==typeof this.size?this.size:""}]`}mapFromDriverValue(e){return"string"==typeof e&&(e=parsePgArray(e)),e.map(e=>this.baseColumn.mapFromDriverValue(e))}mapToDriverValue(e,t=!1){const n=e.map(e=>null===e?null:is(this.baseColumn,_PgArray)?this.baseColumn.mapToDriverValue(e,!0):this.baseColumn.mapToDriverValue(e));return t?n:makePgArray(n)}}}});function isPgEnum(e){return!!e&&"function"==typeof e&&As in e&&!0===e[As]}function pgEnum(e,t){return pgEnumWithSchema(e,t,void 0)}function pgEnumWithSchema(e,t,n){const r=Object.assign(e=>new Is(e??"",r),{enumName:e,enumValues:t,schema:n,[As]:!0});return r}var Ls,$s,Ds,Os,Fs,qs,js,Bs,Us,zs,Hs,Ws,Gs,Vs=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/enum.js"(){tn(),gs(),Ms(),As=Symbol.for("drizzle:isPgEnum"),__name(isPgEnum,"isPgEnum"),Is=class extends vs{static{__name(this,"PgEnumColumnBuilder")}static[ss]="PgEnumColumnBuilder";constructor(e,t){super(e,"string","PgEnumColumn"),this.config.enum=t}build(e){return new Ns(e,this.config)}},Ns=class extends ks{static{__name(this,"PgEnumColumn")}static[ss]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}},__name(pgEnum,"pgEnum"),__name(pgEnumWithSchema,"pgEnumWithSchema")}}),Qs=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/subquery.js"(){tn(),gs(),Ls=class{static{__name(this,"Subquery")}static[ss]="Subquery";constructor(e,t,n,r=!1){this._={brand:"Subquery",sql:e,selectedFields:t,alias:n,isWith:r}}},$s=class extends Ls{static{__name(this,"WithSubquery")}static[ss]="WithSubquery"}}}),Ks=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/version.js"(){tn()}}),Ys=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/tracing.js"(){tn(),Es(),Ks(),Ds={startActiveSpan:(e,t)=>t()}}}),Js=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/view-common.js"(){tn(),Os=Symbol.for("drizzle:ViewBaseConfig")}});function getTableName(e){return e[ds]}function getTableUniqueName(e){return`${e[Fs]??"public"}.${e[ds]}`}var Xs,Zs,ei,ti,ni,ri,oi,si,ii,ai=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/table.js"(){tn(),gs(),ys(),Fs=Symbol.for("drizzle:Schema"),qs=Symbol.for("drizzle:Columns"),js=Symbol.for("drizzle:ExtraConfigColumns"),Bs=Symbol.for("drizzle:OriginalName"),Us=Symbol.for("drizzle:BaseName"),zs=Symbol.for("drizzle:IsAlias"),Hs=Symbol.for("drizzle:ExtraConfigBuilder"),Ws=Symbol.for("drizzle:IsDrizzleTable"),Gs=class{static{__name(this,"Table")}static[ss]="Table";static Symbol={Name:ds,Schema:Fs,OriginalName:Bs,Columns:qs,ExtraConfigColumns:js,BaseName:Us,IsAlias:zs,ExtraConfigBuilder:Hs};[ds];[Bs];[Fs];[qs];[js];[Us];[zs]=!1;[Ws]=!0;[Hs]=void 0;constructor(e,t,n){this[ds]=this[Bs]=e,this[Fs]=t,this[Us]=n}},__name(getTableName,"getTableName"),__name(getTableUniqueName,"getTableUniqueName")}});function isSQLWrapper(e){return null!=e&&"function"==typeof e.getSQL}function mergeQueries(e){const t={sql:"",params:[]};for(const n of e)t.sql+=n.sql,t.params.push(...n.params),n.typings?.length&&(t.typings||(t.typings=[]),t.typings.push(...n.typings));return t}function isDriverValueEncoder(e){return"object"==typeof e&&null!==e&&"mapToDriverValue"in e&&"function"==typeof e.mapToDriverValue}function sql(e,...t){const n=[];(t.length>0||e.length>0&&""!==e[0])&&n.push(new Xs(e[0]));for(const[r,o]of t.entries())n.push(o,new Xs(e[r+1]));return new Zs(n)}var li,ci,ui=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sql/sql.js"(){tn(),gs(),Vs(),Qs(),Ys(),Js(),hs(),ai(),class{static{__name(this,"FakePrimitiveParam")}static[ss]="FakePrimitiveParam"},__name(isSQLWrapper,"isSQLWrapper"),__name(mergeQueries,"mergeQueries"),Xs=class{static{__name(this,"StringChunk")}static[ss]="StringChunk";value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new Zs([this])}},Zs=class _SQL{static{__name(this,"SQL")}constructor(e){this.queryChunks=e}static[ss]="SQL";decoder=ti;shouldInlineParams=!1;append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return Ds.startActiveSpan("drizzle.buildSQL",t=>{const n=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":n.sql,"drizzle.query.params":JSON.stringify(n.params)}),n})}buildQueryFromSourceParams(e,t){const n=Object.assign({},t,{inlineParams:t.inlineParams||this.shouldInlineParams,paramStartIndex:t.paramStartIndex||{value:0}}),{casing:r,escapeName:o,escapeParam:s,prepareTyping:i,inlineParams:a,paramStartIndex:l}=n;return mergeQueries(e.map(e=>{if(is(e,Xs))return{sql:e.value.join(""),params:[]};if(is(e,ei))return{sql:o(e.value),params:[]};if(void 0===e)return{sql:"",params:[]};if(Array.isArray(e)){const t=[new Xs("(")];for(const[n,r]of e.entries())t.push(r),n<e.length-1&&t.push(new Xs(", "));return t.push(new Xs(")")),this.buildQueryFromSourceParams(t,n)}if(is(e,_SQL))return this.buildQueryFromSourceParams(e.queryChunks,{...n,inlineParams:a||e.shouldInlineParams});if(is(e,Gs)){const t=e[Gs.Symbol.Schema],n=e[Gs.Symbol.Name];return{sql:void 0===t?o(n):o(t)+"."+o(n),params:[]}}if(is(e,cs)){const n=r.getColumnCasing(e);if("indexes"===t.invokeSource)return{sql:o(n),params:[]};const s=e.table[Gs.Symbol.Schema];return{sql:e.table[zs]||void 0===s?o(e.table[Gs.Symbol.Name])+"."+o(n):o(s)+"."+o(e.table[Gs.Symbol.Name])+"."+o(n),params:[]}}if(is(e,ii)){const t=e[Os].schema,n=e[Os].name;return{sql:void 0===t?o(n):o(t)+"."+o(n),params:[]}}if(is(e,ri)){if(is(e.value,oi))return{sql:s(l.value++,e),params:[e],typings:["none"]};const t=null===e.value?null:e.encoder.mapToDriverValue(e.value);if(is(t,_SQL))return this.buildQueryFromSourceParams([t],n);if(a)return{sql:this.mapInlineParam(t,n),params:[]};let r=["none"];return i&&(r=[i(e.encoder)]),{sql:s(l.value++,t),params:[t],typings:r}}return is(e,oi)?{sql:s(l.value++,e),params:[e],typings:["none"]}:is(e,_SQL.Aliased)&&void 0!==e.fieldAlias?{sql:o(e.fieldAlias),params:[]}:is(e,Ls)?e._.isWith?{sql:o(e._.alias),params:[]}:this.buildQueryFromSourceParams([new Xs("("),e._.sql,new Xs(") "),new ei(e._.alias)],n):isPgEnum(e)?e.schema?{sql:o(e.schema)+"."+o(e.enumName),params:[]}:{sql:o(e.enumName),params:[]}:isSQLWrapper(e)?e.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([e.getSQL()],n):this.buildQueryFromSourceParams([new Xs("("),e.getSQL(),new Xs(")")],n):a?{sql:this.mapInlineParam(e,n),params:[]}:{sql:s(l.value++,e),params:[e],typings:["none"]}}))}mapInlineParam(e,{escapeString:t}){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return e.toString();if("string"==typeof e)return t(e);if("object"==typeof e){const n=e.toString();return t("[object Object]"===n?JSON.stringify(e):n)}throw new Error("Unexpected param value: "+e)}getSQL(){return this}as(e){return void 0===e?this:new _SQL.Aliased(this,e)}mapWith(e){return this.decoder="function"==typeof e?{mapFromDriverValue:e}:e,this}inlineParams(){return this.shouldInlineParams=!0,this}if(e){return e?this:void 0}},ei=class{static{__name(this,"Name")}constructor(e){this.value=e}static[ss]="Name";brand;getSQL(){return new Zs([this])}},__name(isDriverValueEncoder,"isDriverValueEncoder"),ti={mapFromDriverValue:__name(e=>e,"mapFromDriverValue")},ni={mapToDriverValue:__name(e=>e,"mapToDriverValue")},ri=class{static{__name(this,"Param")}constructor(e,t=ni){this.value=e,this.encoder=t}static[ss]="Param";brand;getSQL(){return new Zs([this])}},__name(sql,"sql"),(e=>{function empty(){return new Zs([])}function fromList(e){return new Zs(e)}function raw(e){return new Zs([new Xs(e)])}function join29(e,t){const n=[];for(const[r,o]of e.entries())r>0&&void 0!==t&&n.push(t),n.push(o);return new Zs(n)}function identifier(e){return new ei(e)}function placeholder2(e){return new oi(e)}function param2(e,t){return new ri(e,t)}__name(empty,"empty"),e.empty=empty,__name(fromList,"fromList"),e.fromList=fromList,__name(raw,"raw"),e.raw=raw,__name(join29,"join"),e.join=join29,__name(identifier,"identifier"),e.identifier=identifier,__name(placeholder2,"placeholder2"),e.placeholder=placeholder2,__name(param2,"param2"),e.param=param2})(sql||(sql={})),(e=>{class Aliased{static{__name(this,"Aliased")}constructor(e,t){this.sql=e,this.fieldAlias=t}static[ss]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new Aliased(this.sql,this.fieldAlias)}}e.Aliased=Aliased})(Zs||(Zs={})),oi=class{static{__name(this,"Placeholder")}constructor(e){this.name=e}static[ss]="Placeholder";getSQL(){return new Zs([this])}},si=Symbol.for("drizzle:IsDrizzleView"),ii=class{static{__name(this,"View")}static[ss]="View";[Os];[si]=!0;constructor({name:e,schema:t,selectedFields:n,query:r}){this[Os]={name:e,originalName:e,schema:t,selectedFields:n,query:r,isExisting:!r,isAlias:!1}}getSQL(){return new Zs([this])}},cs.prototype.getSQL=function(){return new Zs([this])},Gs.prototype.getSQL=function(){return new Zs([this])},Ls.prototype.getSQL=function(){return new Zs([this])}}});function aliasedTable(e,t){return new Proxy(e,new ci(t,!1))}function aliasedTableColumn(e,t){return new Proxy(e,new li(new Proxy(e.table,new ci(t,!1))))}function mapColumnsInAliasedSQLToAlias(e,t){return new Zs.Aliased(mapColumnsInSQLToAlias(e.sql,t),e.fieldAlias)}function mapColumnsInSQLToAlias(e,t){return sql.join(e.queryChunks.map(e=>is(e,cs)?aliasedTableColumn(e,t):is(e,Zs)?mapColumnsInSQLToAlias(e,t):is(e,Zs.Aliased)?mapColumnsInAliasedSQLToAlias(e,t):e))}var di,mi,pi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/alias.js"(){tn(),hs(),gs(),ui(),ai(),Js(),li=class{static{__name(this,"ColumnAliasProxyHandler")}constructor(e){this.table=e}static[ss]="ColumnAliasProxyHandler";get(e,t){return"table"===t?this.table:e[t]}},ci=class{static{__name(this,"TableAliasProxyHandler")}constructor(e,t){this.alias=e,this.replaceOriginalName=t}static[ss]="TableAliasProxyHandler";get(e,t){if(t===Gs.Symbol.IsAlias)return!0;if(t===Gs.Symbol.Name)return this.alias;if(this.replaceOriginalName&&t===Gs.Symbol.OriginalName)return this.alias;if(t===Os)return{...e[Os],name:this.alias,isAlias:!0};if(t===Gs.Symbol.Columns){const t=e[Gs.Symbol.Columns];if(!t)return t;const n={};return Object.keys(t).map(r=>{n[r]=new Proxy(t[r],new li(new Proxy(e,this)))}),n}const n=e[t];return is(n,cs)?new Proxy(n,new li(new Proxy(e,this))):n}},class{static{__name(this,"RelationTableAliasProxyHandler")}constructor(e){this.alias=e}static[ss]="RelationTableAliasProxyHandler";get(e,t){return"sourceTable"===t?aliasedTable(e.sourceTable,this.alias):e[t]}},__name(aliasedTable,"aliasedTable"),__name(aliasedTableColumn,"aliasedTableColumn"),__name(mapColumnsInAliasedSQLToAlias,"mapColumnsInAliasedSQLToAlias"),__name(mapColumnsInSQLToAlias,"mapColumnsInSQLToAlias")}}),gi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/alias.js"(){tn()}});function check(e,t){return new di(e,t)}var hi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/checks.js"(){tn(),gs(),di=class{static{__name(this,"CheckBuilder")}constructor(e,t){this.name=e,this.value=t}static[ss]="PgCheckBuilder";brand;build(e){return new mi(e,this)}},mi=class{static{__name(this,"Check")}constructor(e,t){this.table=e,this.name=t.name,this.value=t.value}static[ss]="PgCheck";name;value},__name(check,"check")}});function orderSelectedFields(e,t){return Object.entries(e).reduce((e,[n,r])=>{if("string"!=typeof n)return e;const o=t?[...t,n]:[n];return is(r,cs)||is(r,Zs)||is(r,Zs.Aliased)?e.push({path:o,field:r}):is(r,Gs)?e.push(...orderSelectedFields(r[Gs.Symbol.Columns],o)):e.push(...orderSelectedFields(r,o)),e},[])}function haveSameKeys(e,t){const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(const[e,t]of n.entries())if(t!==r[e])return!1;return!0}function mapUpdateSet(e,t){const n=Object.entries(t).filter(([,e])=>void 0!==e).map(([t,n])=>is(n,Zs)||is(n,cs)?[t,n]:[t,new ri(n,e[Gs.Symbol.Columns][t])]);if(0===n.length)throw new Error("No values to set");return Object.fromEntries(n)}function applyMixins(e,t){for(const n of t)for(const t of Object.getOwnPropertyNames(n.prototype))"constructor"!==t&&Object.defineProperty(e.prototype,t,Object.getOwnPropertyDescriptor(n.prototype,t)||Object.create(null))}function getTableColumns(e){return e[Gs.Symbol.Columns]}function getTableLikeName(e){return is(e,Ls)?e._.alias:is(e,ii)?e[Os].name:is(e,Zs)?void 0:e[Gs.Symbol.IsAlias]?e[Gs.Symbol.Name]:e[Gs.Symbol.BaseName]}function getColumnNameAndConfig(e,t){return{name:"string"==typeof e&&e.length>0?e:"",config:"object"==typeof e?e:t}}var fi,yi,wi,Si,bi,Ei=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/utils.js"(){tn(),hs(),gs(),ui(),Qs(),ai(),Js(),__name(orderSelectedFields,"orderSelectedFields"),__name(haveSameKeys,"haveSameKeys"),__name(mapUpdateSet,"mapUpdateSet"),__name(applyMixins,"applyMixins"),__name(getTableColumns,"getTableColumns"),__name(getTableLikeName,"getTableLikeName"),__name(getColumnNameAndConfig,"getColumnNameAndConfig")}}),Ci=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/int.common.js"(){tn(),gs(),Ms(),fi=class extends vs{static{__name(this,"PgIntColumnBaseBuilder")}static[ss]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(e){if(e){const{name:t,...n}=e;this.config.generatedIdentity={type:"always",sequenceName:t,sequenceOptions:n}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(e){if(e){const{name:t,...n}=e;this.config.generatedIdentity={type:"byDefault",sequenceName:t,sequenceOptions:n}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}}}});function bigint(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"number"===r.mode?new yi(n):new Si(n)}var vi,ki,Ti,_i,xi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/bigint.js"(){tn(),gs(),Ei(),Ms(),Ci(),yi=class extends fi{static{__name(this,"PgBigInt53Builder")}static[ss]="PgBigInt53Builder";constructor(e){super(e,"number","PgBigInt53")}build(e){return new wi(e,this.config)}},wi=class extends ks{static{__name(this,"PgBigInt53")}static[ss]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}},Si=class extends fi{static{__name(this,"PgBigInt64Builder")}static[ss]="PgBigInt64Builder";constructor(e){super(e,"bigint","PgBigInt64")}build(e){return new bi(e,this.config)}},bi=class extends ks{static{__name(this,"PgBigInt64")}static[ss]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(e){return BigInt(e)}},__name(bigint,"bigint")}});function bigserial(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"number"===r.mode?new vi(n):new Ti(n)}var Pi,Ai,Ii=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/bigserial.js"(){tn(),gs(),Ei(),Ms(),vi=class extends vs{static{__name(this,"PgBigSerial53Builder")}static[ss]="PgBigSerial53Builder";constructor(e){super(e,"number","PgBigSerial53"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new ki(e,this.config)}},ki=class extends ks{static{__name(this,"PgBigSerial53")}static[ss]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}},Ti=class extends vs{static{__name(this,"PgBigSerial64Builder")}static[ss]="PgBigSerial64Builder";constructor(e){super(e,"bigint","PgBigSerial64"),this.config.hasDefault=!0}build(e){return new _i(e,this.config)}},_i=class extends ks{static{__name(this,"PgBigSerial64")}static[ss]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(e){return BigInt(e)}},__name(bigserial,"bigserial")}});function boolean(e){return new Pi(e??"")}var Ni,Ri,Mi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/boolean.js"(){tn(),gs(),Ms(),Pi=class extends vs{static{__name(this,"PgBooleanBuilder")}static[ss]="PgBooleanBuilder";constructor(e){super(e,"boolean","PgBoolean")}build(e){return new Ai(e,this.config)}},Ai=class extends ks{static{__name(this,"PgBoolean")}static[ss]="PgBoolean";getSQLType(){return"boolean"}},__name(boolean,"boolean")}});function char(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Ni(n,r)}var Li,$i,Di=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/char.js"(){tn(),gs(),Ei(),Ms(),Ni=class extends vs{static{__name(this,"PgCharBuilder")}static[ss]="PgCharBuilder";constructor(e,t){super(e,"string","PgChar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new Ri(e,this.config)}},Ri=class extends ks{static{__name(this,"PgChar")}static[ss]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"char":`char(${this.length})`}},__name(char,"char")}});function cidr(e){return new Li(e??"")}var Oi,Fi,qi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/cidr.js"(){tn(),gs(),Ms(),Li=class extends vs{static{__name(this,"PgCidrBuilder")}static[ss]="PgCidrBuilder";constructor(e){super(e,"string","PgCidr")}build(e){return new $i(e,this.config)}},$i=class extends ks{static{__name(this,"PgCidr")}static[ss]="PgCidr";getSQLType(){return"cidr"}},__name(cidr,"cidr")}});function customType(e){return(t,n)=>{const{name:r,config:o}=getColumnNameAndConfig(t,n);return new Oi(r,o,e)}}var ji,Bi,Ui,zi,Hi,Wi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/custom.js"(){tn(),gs(),Ei(),Ms(),Oi=class extends vs{static{__name(this,"PgCustomColumnBuilder")}static[ss]="PgCustomColumnBuilder";constructor(e,t,n){super(e,"custom","PgCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=n}build(e){return new Fi(e,this.config)}},Fi=class extends ks{static{__name(this,"PgCustomColumn")}static[ss]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return"function"==typeof this.mapFrom?this.mapFrom(e):e}mapToDriverValue(e){return"function"==typeof this.mapTo?this.mapTo(e):e}},__name(customType,"customType")}}),Gi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/date.common.js"(){tn(),gs(),ui(),Ms(),ji=class extends vs{static{__name(this,"PgDateColumnBaseBuilder")}static[ss]="PgDateColumnBaseBuilder";defaultNow(){return this.default(sql`now()`)}}}});function date(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"date"===r?.mode?new Bi(n):new zi(n)}var Vi,Qi,Ki=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/date.js"(){tn(),gs(),Ei(),Ms(),Gi(),Bi=class extends ji{static{__name(this,"PgDateBuilder")}static[ss]="PgDateBuilder";constructor(e){super(e,"date","PgDate")}build(e){return new Ui(e,this.config)}},Ui=class extends ks{static{__name(this,"PgDate")}static[ss]="PgDate";getSQLType(){return"date"}mapFromDriverValue(e){return new Date(e)}mapToDriverValue(e){return e.toISOString()}},zi=class extends ji{static{__name(this,"PgDateStringBuilder")}static[ss]="PgDateStringBuilder";constructor(e){super(e,"string","PgDateString")}build(e){return new Hi(e,this.config)}},Hi=class extends ks{static{__name(this,"PgDateString")}static[ss]="PgDateString";getSQLType(){return"date"}},__name(date,"date")}});function doublePrecision(e){return new Vi(e??"")}var Yi,Ji,Xi=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/double-precision.js"(){tn(),gs(),Ms(),Vi=class extends vs{static{__name(this,"PgDoublePrecisionBuilder")}static[ss]="PgDoublePrecisionBuilder";constructor(e){super(e,"number","PgDoublePrecision")}build(e){return new Qi(e,this.config)}},Qi=class extends ks{static{__name(this,"PgDoublePrecision")}static[ss]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(e){return"string"==typeof e?Number.parseFloat(e):e}},__name(doublePrecision,"doublePrecision")}});function inet(e){return new Yi(e??"")}var Zi,ea,ta=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/inet.js"(){tn(),gs(),Ms(),Yi=class extends vs{static{__name(this,"PgInetBuilder")}static[ss]="PgInetBuilder";constructor(e){super(e,"string","PgInet")}build(e){return new Ji(e,this.config)}},Ji=class extends ks{static{__name(this,"PgInet")}static[ss]="PgInet";getSQLType(){return"inet"}},__name(inet,"inet")}});function integer(e){return new Zi(e??"")}var na,ra,oa=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/integer.js"(){tn(),gs(),Ms(),Ci(),Zi=class extends fi{static{__name(this,"PgIntegerBuilder")}static[ss]="PgIntegerBuilder";constructor(e){super(e,"number","PgInteger")}build(e){return new ea(e,this.config)}},ea=class extends ks{static{__name(this,"PgInteger")}static[ss]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(e){return"string"==typeof e?Number.parseInt(e):e}},__name(integer,"integer")}});function interval(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new na(n,r)}var sa,ia,aa=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/interval.js"(){tn(),gs(),Ei(),Ms(),na=class extends vs{static{__name(this,"PgIntervalBuilder")}static[ss]="PgIntervalBuilder";constructor(e,t){super(e,"string","PgInterval"),this.config.intervalConfig=t}build(e){return new ra(e,this.config)}},ra=class extends ks{static{__name(this,"PgInterval")}static[ss]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){return`interval${this.fields?` ${this.fields}`:""}${this.precision?`(${this.precision})`:""}`}},__name(interval,"interval")}});function json(e){return new sa(e??"")}var la,ca,ua=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/json.js"(){tn(),gs(),Ms(),sa=class extends vs{static{__name(this,"PgJsonBuilder")}static[ss]="PgJsonBuilder";constructor(e){super(e,"json","PgJson")}build(e){return new ia(e,this.config)}},ia=class extends ks{static{__name(this,"PgJson")}static[ss]="PgJson";constructor(e,t){super(e,t)}getSQLType(){return"json"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if("string"==typeof e)try{return JSON.parse(e)}catch{return e}return e}},__name(json,"json")}});function jsonb(e){return new la(e??"")}var da,ma,pa,ga,ha=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/jsonb.js"(){tn(),gs(),Ms(),la=class extends vs{static{__name(this,"PgJsonbBuilder")}static[ss]="PgJsonbBuilder";constructor(e){super(e,"json","PgJsonb")}build(e){return new ca(e,this.config)}},ca=class extends ks{static{__name(this,"PgJsonb")}static[ss]="PgJsonb";constructor(e,t){super(e,t)}getSQLType(){return"jsonb"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if("string"==typeof e)try{return JSON.parse(e)}catch{return e}return e}},__name(jsonb,"jsonb")}});function line(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return r?.mode&&"tuple"!==r.mode?new pa(n):new da(n)}var fa,ya,wa=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/line.js"(){tn(),gs(),Ei(),Ms(),da=class extends vs{static{__name(this,"PgLineBuilder")}static[ss]="PgLineBuilder";constructor(e){super(e,"array","PgLine")}build(e){return new ma(e,this.config)}},ma=class extends ks{static{__name(this,"PgLineTuple")}static[ss]="PgLine";getSQLType(){return"line"}mapFromDriverValue(e){const[t,n,r]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(n),Number.parseFloat(r)]}mapToDriverValue(e){return`{${e[0]},${e[1]},${e[2]}}`}},pa=class extends vs{static{__name(this,"PgLineABCBuilder")}static[ss]="PgLineABCBuilder";constructor(e){super(e,"json","PgLineABC")}build(e){return new ga(e,this.config)}},ga=class extends ks{static{__name(this,"PgLineABC")}static[ss]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(e){const[t,n,r]=e.slice(1,-1).split(",");return{a:Number.parseFloat(t),b:Number.parseFloat(n),c:Number.parseFloat(r)}}mapToDriverValue(e){return`{${e.a},${e.b},${e.c}}`}},__name(line,"line")}});function macaddr(e){return new fa(e??"")}var Sa,ba,Ea=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/macaddr.js"(){tn(),gs(),Ms(),fa=class extends vs{static{__name(this,"PgMacaddrBuilder")}static[ss]="PgMacaddrBuilder";constructor(e){super(e,"string","PgMacaddr")}build(e){return new ya(e,this.config)}},ya=class extends ks{static{__name(this,"PgMacaddr")}static[ss]="PgMacaddr";getSQLType(){return"macaddr"}},__name(macaddr,"macaddr")}});function macaddr8(e){return new Sa(e??"")}var Ca,va,ka=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/macaddr8.js"(){tn(),gs(),Ms(),Sa=class extends vs{static{__name(this,"PgMacaddr8Builder")}static[ss]="PgMacaddr8Builder";constructor(e){super(e,"string","PgMacaddr8")}build(e){return new ba(e,this.config)}},ba=class extends ks{static{__name(this,"PgMacaddr8")}static[ss]="PgMacaddr8";getSQLType(){return"macaddr8"}},__name(macaddr8,"macaddr8")}});function numeric(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Ca(n,r?.precision,r?.scale)}var Ta,_a,xa,Pa,Aa=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/numeric.js"(){tn(),gs(),Ei(),Ms(),Ca=class extends vs{static{__name(this,"PgNumericBuilder")}static[ss]="PgNumericBuilder";constructor(e,t,n){super(e,"string","PgNumeric"),this.config.precision=t,this.config.scale=n}build(e){return new va(e,this.config)}},va=class extends ks{static{__name(this,"PgNumeric")}static[ss]="PgNumeric";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}getSQLType(){return void 0!==this.precision&&void 0!==this.scale?`numeric(${this.precision}, ${this.scale})`:void 0===this.precision?"numeric":`numeric(${this.precision})`}},__name(numeric,"numeric")}});function point(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return r?.mode&&"tuple"!==r.mode?new xa(n):new Ta(n)}var Ia=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/point.js"(){tn(),gs(),Ei(),Ms(),Ta=class extends vs{static{__name(this,"PgPointTupleBuilder")}static[ss]="PgPointTupleBuilder";constructor(e){super(e,"array","PgPointTuple")}build(e){return new _a(e,this.config)}},_a=class extends ks{static{__name(this,"PgPointTuple")}static[ss]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(e){if("string"==typeof e){const[t,n]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(n)]}return[e.x,e.y]}mapToDriverValue(e){return`(${e[0]},${e[1]})`}},xa=class extends vs{static{__name(this,"PgPointObjectBuilder")}static[ss]="PgPointObjectBuilder";constructor(e){super(e,"json","PgPointObject")}build(e){return new Pa(e,this.config)}},Pa=class extends ks{static{__name(this,"PgPointObject")}static[ss]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(e){if("string"==typeof e){const[t,n]=e.slice(1,-1).split(",");return{x:Number.parseFloat(t),y:Number.parseFloat(n)}}return e}mapToDriverValue(e){return`(${e.x},${e.y})`}},__name(point,"point")}});function hexToBytes(e){const t=[];for(let n=0;n<e.length;n+=2)t.push(Number.parseInt(e.slice(n,n+2),16));return new Uint8Array(t)}function bytesToFloat64(e,t){const n=new ArrayBuffer(8),r=new DataView(n);for(let n=0;n<8;n++)r.setUint8(n,e[t+n]);return r.getFloat64(0,!0)}function parseEWKB(e){const t=hexToBytes(e);let n=0;const r=t[n];n+=1;const o=new DataView(t.buffer),s=o.getUint32(n,1===r);if(n+=4,536870912&s&&(o.getUint32(n,1===r),n+=4),1==(65535&s)){const e=bytesToFloat64(t,n);n+=8;const r=bytesToFloat64(t,n);return n+=8,[e,r]}throw new Error("Unsupported geometry type")}var Na,Ra,Ma,La,$a=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/postgis_extension/utils.js"(){tn(),__name(hexToBytes,"hexToBytes"),__name(bytesToFloat64,"bytesToFloat64"),__name(parseEWKB,"parseEWKB")}});function geometry(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return r?.mode&&"tuple"!==r.mode?new Ma(n):new Na(n)}var Da,Oa,Fa=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/postgis_extension/geometry.js"(){tn(),gs(),Ei(),Ms(),$a(),Na=class extends vs{static{__name(this,"PgGeometryBuilder")}static[ss]="PgGeometryBuilder";constructor(e){super(e,"array","PgGeometry")}build(e){return new Ra(e,this.config)}},Ra=class extends ks{static{__name(this,"PgGeometry")}static[ss]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){return parseEWKB(e)}mapToDriverValue(e){return`point(${e[0]} ${e[1]})`}},Ma=class extends vs{static{__name(this,"PgGeometryObjectBuilder")}static[ss]="PgGeometryObjectBuilder";constructor(e){super(e,"json","PgGeometryObject")}build(e){return new La(e,this.config)}},La=class extends ks{static{__name(this,"PgGeometryObject")}static[ss]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){const t=parseEWKB(e);return{x:t[0],y:t[1]}}mapToDriverValue(e){return`point(${e.x} ${e.y})`}},__name(geometry,"geometry")}});function real(e){return new Da(e??"")}var qa,ja,Ba=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/real.js"(){tn(),gs(),Ms(),Da=class extends vs{static{__name(this,"PgRealBuilder")}static[ss]="PgRealBuilder";constructor(e,t){super(e,"number","PgReal"),this.config.length=t}build(e){return new Oa(e,this.config)}},Oa=class extends ks{static{__name(this,"PgReal")}static[ss]="PgReal";constructor(e,t){super(e,t)}getSQLType(){return"real"}mapFromDriverValue=__name(e=>"string"==typeof e?Number.parseFloat(e):e,"mapFromDriverValue")},__name(real,"real")}});function serial(e){return new qa(e??"")}var Ua,za,Ha=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/serial.js"(){tn(),gs(),Ms(),qa=class extends vs{static{__name(this,"PgSerialBuilder")}static[ss]="PgSerialBuilder";constructor(e){super(e,"number","PgSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new ja(e,this.config)}},ja=class extends ks{static{__name(this,"PgSerial")}static[ss]="PgSerial";getSQLType(){return"serial"}},__name(serial,"serial")}});function smallint(e){return new Ua(e??"")}var Wa,Ga,Va=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/smallint.js"(){tn(),gs(),Ms(),Ci(),Ua=class extends fi{static{__name(this,"PgSmallIntBuilder")}static[ss]="PgSmallIntBuilder";constructor(e){super(e,"number","PgSmallInt")}build(e){return new za(e,this.config)}},za=class extends ks{static{__name(this,"PgSmallInt")}static[ss]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=__name(e=>"string"==typeof e?Number(e):e,"mapFromDriverValue")},__name(smallint,"smallint")}});function smallserial(e){return new Wa(e??"")}var Qa,Ka,Ya=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/smallserial.js"(){tn(),gs(),Ms(),Wa=class extends vs{static{__name(this,"PgSmallSerialBuilder")}static[ss]="PgSmallSerialBuilder";constructor(e){super(e,"number","PgSmallSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Ga(e,this.config)}},Ga=class extends ks{static{__name(this,"PgSmallSerial")}static[ss]="PgSmallSerial";getSQLType(){return"smallserial"}},__name(smallserial,"smallserial")}});function text(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Qa(n,r)}var Ja,Xa,Za=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/text.js"(){tn(),gs(),Ei(),Ms(),Qa=class extends vs{static{__name(this,"PgTextBuilder")}static[ss]="PgTextBuilder";constructor(e,t){super(e,"string","PgText"),this.config.enumValues=t.enum}build(e){return new Ka(e,this.config)}},Ka=class extends ks{static{__name(this,"PgText")}static[ss]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}},__name(text,"text")}});function time(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Ja(n,r.withTimezone??!1,r.precision)}var el,tl,nl,rl,ol=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/time.js"(){tn(),gs(),Ei(),Ms(),Gi(),Ja=class extends ji{static{__name(this,"PgTimeBuilder")}constructor(e,t,n){super(e,"string","PgTime"),this.withTimezone=t,this.precision=n,this.config.withTimezone=t,this.config.precision=n}static[ss]="PgTimeBuilder";build(e){return new Xa(e,this.config)}},Xa=class extends ks{static{__name(this,"PgTime")}static[ss]="PgTime";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`time${void 0===this.precision?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}},__name(time,"time")}});function timestamp(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"string"===r?.mode?new nl(n,r.withTimezone??!1,r.precision):new el(n,r?.withTimezone??!1,r?.precision)}var sl,il,al=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/timestamp.js"(){tn(),gs(),Ei(),Ms(),Gi(),el=class extends ji{static{__name(this,"PgTimestampBuilder")}static[ss]="PgTimestampBuilder";constructor(e,t,n){super(e,"date","PgTimestamp"),this.config.withTimezone=t,this.config.precision=n}build(e){return new tl(e,this.config)}},tl=class extends ks{static{__name(this,"PgTimestamp")}static[ss]="PgTimestamp";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${void 0===this.precision?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=__name(e=>new Date(this.withTimezone?e:e+"+0000"),"mapFromDriverValue");mapToDriverValue=__name(e=>e.toISOString(),"mapToDriverValue")},nl=class extends ji{static{__name(this,"PgTimestampStringBuilder")}static[ss]="PgTimestampStringBuilder";constructor(e,t,n){super(e,"string","PgTimestampString"),this.config.withTimezone=t,this.config.precision=n}build(e){return new rl(e,this.config)}},rl=class extends ks{static{__name(this,"PgTimestampString")}static[ss]="PgTimestampString";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${void 0===this.precision?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}},__name(timestamp,"timestamp")}});function uuid(e){return new sl(e??"")}var ll,cl,ul=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/uuid.js"(){tn(),gs(),ui(),Ms(),sl=class extends vs{static{__name(this,"PgUUIDBuilder")}static[ss]="PgUUIDBuilder";constructor(e){super(e,"string","PgUUID")}defaultRandom(){return this.default(sql`gen_random_uuid()`)}build(e){return new il(e,this.config)}},il=class extends ks{static{__name(this,"PgUUID")}static[ss]="PgUUID";getSQLType(){return"uuid"}},__name(uuid,"uuid")}});function varchar(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new ll(n,r)}var dl,ml,pl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/varchar.js"(){tn(),gs(),Ei(),Ms(),ll=class extends vs{static{__name(this,"PgVarcharBuilder")}static[ss]="PgVarcharBuilder";constructor(e,t){super(e,"string","PgVarchar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new cl(e,this.config)}},cl=class extends ks{static{__name(this,"PgVarchar")}static[ss]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return void 0===this.length?"varchar":`varchar(${this.length})`}},__name(varchar,"varchar")}});function bit(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new dl(n,r)}var gl,hl,fl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/vector_extension/bit.js"(){tn(),gs(),Ei(),Ms(),dl=class extends vs{static{__name(this,"PgBinaryVectorBuilder")}static[ss]="PgBinaryVectorBuilder";constructor(e,t){super(e,"string","PgBinaryVector"),this.config.dimensions=t.dimensions}build(e){return new ml(e,this.config)}},ml=class extends ks{static{__name(this,"PgBinaryVector")}static[ss]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}},__name(bit,"bit")}});function halfvec(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new gl(n,r)}var yl,wl,Sl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/vector_extension/halfvec.js"(){tn(),gs(),Ei(),Ms(),gl=class extends vs{static{__name(this,"PgHalfVectorBuilder")}static[ss]="PgHalfVectorBuilder";constructor(e,t){super(e,"array","PgHalfVector"),this.config.dimensions=t.dimensions}build(e){return new hl(e,this.config)}},hl=class extends ks{static{__name(this,"PgHalfVector")}static[ss]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(e=>Number.parseFloat(e))}},__name(halfvec,"halfvec")}});function sparsevec(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new yl(n,r)}var bl,El,Cl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/vector_extension/sparsevec.js"(){tn(),gs(),Ei(),Ms(),yl=class extends vs{static{__name(this,"PgSparseVectorBuilder")}static[ss]="PgSparseVectorBuilder";constructor(e,t){super(e,"string","PgSparseVector"),this.config.dimensions=t.dimensions}build(e){return new wl(e,this.config)}},wl=class extends ks{static{__name(this,"PgSparseVector")}static[ss]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}},__name(sparsevec,"sparsevec")}});function vector(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new bl(n,r)}var vl,kl,Tl,_l=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/vector_extension/vector.js"(){tn(),gs(),Ei(),Ms(),bl=class extends vs{static{__name(this,"PgVectorBuilder")}static[ss]="PgVectorBuilder";constructor(e,t){super(e,"array","PgVector"),this.config.dimensions=t.dimensions}build(e){return new El(e,this.config)}},El=class extends ks{static{__name(this,"PgVector")}static[ss]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(e=>Number.parseFloat(e))}},__name(vector,"vector")}}),xl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/index.js"(){tn(),xi(),Ii(),Mi(),Di(),qi(),Ms(),Wi(),Ki(),Xi(),Vs(),ta(),Ci(),oa(),aa(),ua(),ha(),wa(),Ea(),ka(),Aa(),Ia(),Fa(),Ba(),Ha(),Va(),Ya(),Za(),ol(),al(),ul(),pl(),fl(),Sl(),Cl(),_l()}}),Pl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/query-promise.js"(){tn(),gs(),vl=class{static{__name(this,"QueryPromise")}static[ss]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}}}}),Al=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/query-builders/delete.js"(){tn(),gs(),Pl(),ai(),Ys(),Ei(),kl=class extends vl{static{__name(this,"PgDeleteBase")}constructor(e,t,n,r){super(),this.session=t,this.dialect=n,this.config={table:e,withList:r}}static[ss]="PgDelete";config;where(e){return this.config.where=e,this}returning(e=this.config.table[Gs.Symbol.Columns]){return this.config.returning=orderSelectedFields(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return Ds.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=__name(e=>Ds.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute");$dynamic(){return this}}}});function toSnakeCase(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(e=>e.toLowerCase()).join("_")}function toCamelCase(e){return(e.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((e,t,n)=>e+(0===n?t.toLowerCase():`${t[0].toUpperCase()}${t.slice(1)}`),"")}function noopCase(e){return e}var Il,Nl,Rl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/casing.js"(){tn(),gs(),ai(),__name(toSnakeCase,"toSnakeCase"),__name(toCamelCase,"toCamelCase"),__name(noopCase,"noopCase"),Tl=class{static{__name(this,"CasingCache")}static[ss]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert="snake_case"===e?toSnakeCase:"camelCase"===e?toCamelCase:noopCase}getColumnCasing(e){if(!e.keyAsName)return e.name;const t=`${e.table[Gs.Symbol.Schema]??"public"}.${e.table[Gs.Symbol.OriginalName]}.${e.name}`;return this.cache[t]||this.cacheTable(e.table),this.cache[t]}cacheTable(e){const t=`${e[Gs.Symbol.Schema]??"public"}.${e[Gs.Symbol.OriginalName]}`;if(!this.cachedTables[t]){for(const n of Object.values(e[Gs.Symbol.Columns])){const e=`${t}.${n.name}`;this.cache[e]=this.convert(n.name)}this.cachedTables[t]=!0}}clearCache(){this.cache={},this.cachedTables={}}}}}),Ml=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/errors.js"(){tn(),gs(),Il=class extends Error{static{__name(this,"DrizzleError")}static[ss]="DrizzleError";constructor({message:e,cause:t}){super(e),this.name="DrizzleError",this.cause=t}},Nl=class extends Il{static{__name(this,"TransactionRollbackError")}static[ss]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}}});function getPgColumnBuilders(){return{bigint:bigint,bigserial:bigserial,boolean:boolean,char:char,cidr:cidr,customType:customType,date:date,doublePrecision:doublePrecision,inet:inet,integer:integer,interval:interval,json:json,jsonb:jsonb,line:line,macaddr:macaddr,macaddr8:macaddr8,numeric:numeric,point:point,geometry:geometry,real:real,serial:serial,smallint:smallint,smallserial:smallserial,text:text,time:time,timestamp:timestamp,uuid:uuid,varchar:varchar,bit:bit,halfvec:halfvec,sparsevec:sparsevec,vector:vector}}var Ll,$l,Dl,Ol,Fl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/columns/all.js"(){tn(),xi(),Ii(),Mi(),Di(),qi(),Wi(),Ki(),Xi(),ta(),oa(),aa(),ua(),ha(),wa(),Ea(),ka(),Aa(),Ia(),Fa(),Ba(),Ha(),Va(),Ya(),Za(),ol(),al(),ul(),pl(),fl(),Sl(),Cl(),_l(),__name(getPgColumnBuilders,"getPgColumnBuilders")}});function pgTableWithSchema(e,t,n,r,o=e){const s=new Dl(e,r,o),i="function"==typeof t?t(getPgColumnBuilders()):t,a=Object.fromEntries(Object.entries(i).map(([e,t])=>{const n=t;n.setName(e);const r=n.build(s);return s[Ll].push(...n.buildForeignKeys(r,s)),[e,r]})),l=Object.fromEntries(Object.entries(i).map(([e,t])=>{const n=t;return n.setName(e),[e,n.buildExtraConfigColumn(s)]})),u=Object.assign(s,a);return u[Gs.Symbol.Columns]=a,u[Gs.Symbol.ExtraConfigColumns]=l,n&&(u[Dl.Symbol.ExtraConfigBuilder]=n),Object.assign(u,{enableRLS:__name(()=>(u[Dl.Symbol.EnableRLS]=!0,u),"enableRLS")})}var ql,jl,Bl,Ul,zl,Hl,Wl,Gl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/table.js"(){tn(),gs(),ai(),Fl(),Ll=Symbol.for("drizzle:PgInlineForeignKeys"),$l=Symbol.for("drizzle:EnableRLS"),Dl=class extends Gs{static{__name(this,"PgTable")}static[ss]="PgTable";static Symbol=Object.assign({},Gs.Symbol,{InlineForeignKeys:Ll,EnableRLS:$l});[Ll]=[];[$l]=!1;[Gs.Symbol.ExtraConfigBuilder]=void 0},__name(pgTableWithSchema,"pgTableWithSchema"),Ol=__name((e,t,n)=>pgTableWithSchema(e,t,n,void 0),"pgTable")}}),Vl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/primary-keys.js"(){tn(),gs(),Gl(),class{static{__name(this,"PrimaryKeyBuilder")}static[ss]="PgPrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new ql(e,this.columns,this.name)}},ql=class{static{__name(this,"PrimaryKey")}constructor(e,t,n){this.table=e,this.columns=t,this.name=n}static[ss]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[Dl.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}}}});function bindIfParam(e,t){return!isDriverValueEncoder(t)||isSQLWrapper(e)||is(e,ri)||is(e,oi)||is(e,cs)||is(e,Gs)||is(e,ii)?e:new ri(e,t)}function and(...e){const t=e.filter(e=>void 0!==e);if(0!==t.length)return 1===t.length?new Zs(t):new Zs([new Xs("("),sql.join(t,new Xs(" and ")),new Xs(")")])}function or(...e){const t=e.filter(e=>void 0!==e);if(0!==t.length)return 1===t.length?new Zs(t):new Zs([new Xs("("),sql.join(t,new Xs(" or ")),new Xs(")")])}function not(e){return sql`not ${e}`}function inArray(e,t){return Array.isArray(t)?0===t.length?sql`false`:sql`${e} in ${t.map(t=>bindIfParam(t,e))}`:sql`${e} in ${bindIfParam(t,e)}`}function notInArray(e,t){return Array.isArray(t)?0===t.length?sql`true`:sql`${e} not in ${t.map(t=>bindIfParam(t,e))}`:sql`${e} not in ${bindIfParam(t,e)}`}function isNull(e){return sql`${e} is null`}function isNotNull(e){return sql`${e} is not null`}function exists(e){return sql`exists ${e}`}function notExists(e){return sql`not exists ${e}`}function between(e,t,n){return sql`${e} between ${bindIfParam(t,e)} and ${bindIfParam(n,e)}`}function notBetween(e,t,n){return sql`${e} not between ${bindIfParam(t,e)} and ${bindIfParam(n,e)}`}function like(e,t){return sql`${e} like ${t}`}function notLike(e,t){return sql`${e} not like ${t}`}function ilike(e,t){return sql`${e} ilike ${t}`}function notIlike(e,t){return sql`${e} not ilike ${t}`}var Ql=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sql/expressions/conditions.js"(){tn(),hs(),gs(),ai(),ui(),__name(bindIfParam,"bindIfParam"),jl=__name((e,t)=>sql`${e} = ${bindIfParam(t,e)}`,"eq"),Bl=__name((e,t)=>sql`${e} <> ${bindIfParam(t,e)}`,"ne"),__name(and,"and"),__name(or,"or"),__name(not,"not"),Ul=__name((e,t)=>sql`${e} > ${bindIfParam(t,e)}`,"gt"),zl=__name((e,t)=>sql`${e} >= ${bindIfParam(t,e)}`,"gte"),Hl=__name((e,t)=>sql`${e} < ${bindIfParam(t,e)}`,"lt"),Wl=__name((e,t)=>sql`${e} <= ${bindIfParam(t,e)}`,"lte"),__name(inArray,"inArray"),__name(notInArray,"notInArray"),__name(isNull,"isNull"),__name(isNotNull,"isNotNull"),__name(exists,"exists"),__name(notExists,"notExists"),__name(between,"between"),__name(notBetween,"notBetween"),__name(like,"like"),__name(notLike,"notLike"),__name(ilike,"ilike"),__name(notIlike,"notIlike")}});function asc(e){return sql`${e} asc`}function desc(e){return sql`${e} desc`}var Kl,Yl,Jl,Xl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sql/expressions/select.js"(){tn(),ui(),__name(asc,"asc"),__name(desc,"desc")}}),Zl=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sql/expressions/index.js"(){tn(),Ql(),Xl()}});function getOperators(){return{and:and,between:between,eq:jl,exists:exists,gt:Ul,gte:zl,ilike:ilike,inArray:inArray,isNull:isNull,isNotNull:isNotNull,like:like,lt:Hl,lte:Wl,ne:Bl,not:not,notBetween:notBetween,notExists:notExists,notLike:notLike,notIlike:notIlike,notInArray:notInArray,or:or,sql:sql}}function getOrderByOperators(){return{sql:sql,asc:asc,desc:desc}}function normalizeRelation(e,t,n){if(is(n,Yl)&&n.config)return{fields:n.config.fields,references:n.config.references};const r=t[getTableUniqueName(n.referencedTable)];if(!r)throw new Error(`Table "${n.referencedTable[Gs.Symbol.Name]}" not found in schema`);const o=e[r];if(!o)throw new Error(`Table "${r}" not found in schema`);const s=n.sourceTable,i=t[getTableUniqueName(s)];if(!i)throw new Error(`Table "${s[Gs.Symbol.Name]}" not found in schema`);const a=[];for(const e of Object.values(o.relations))(n.relationName&&n!==e&&e.relationName===n.relationName||!n.relationName&&e.referencedTable===n.sourceTable)&&a.push(e);if(a.length>1)throw n.relationName?new Error(`There are multiple relations with name "${n.relationName}" in table "${r}"`):new Error(`There are multiple relations between "${r}" and "${n.sourceTable[Gs.Symbol.Name]}". Please specify relation name`);if(a[0]&&is(a[0],Yl)&&a[0].config)return{fields:a[0].config.references,references:a[0].config.fields};throw new Error(`There is not enough information to infer relation "${i}.${n.fieldName}"`)}function mapRelationalRow(e,t,n,r,o=e=>e){const s={};for(const[i,a]of r.entries())if(a.isJson){const r=t.relations[a.tsKey],l=n[i],u="string"==typeof l?JSON.parse(l):l;s[a.tsKey]=is(r,Yl)?u&&mapRelationalRow(e,e[a.relationTableTsKey],u,a.selection,o):u.map(t=>mapRelationalRow(e,e[a.relationTableTsKey],t,a.selection,o))}else{const e=o(n[i]),t=a.field;let r;r=is(t,cs)?t:is(t,Zs)?t.decoder:t.sql.decoder,s[a.tsKey]=null===e?null:r.mapFromDriverValue(e)}return s}var ec,tc,nc,rc,oc,sc,ic,ac,lc,cc,uc,dc,mc,pc,gc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/relations.js"(){tn(),ai(),hs(),gs(),Zl(),ui(),Kl=class{static{__name(this,"Relation")}constructor(e,t,n){this.sourceTable=e,this.referencedTable=t,this.relationName=n,this.referencedTableName=t[Gs.Symbol.Name]}static[ss]="Relation";referencedTableName;fieldName},class{static{__name(this,"Relations")}constructor(e,t){this.table=e,this.config=t}static[ss]="Relations"},Yl=class _One extends Kl{static{__name(this,"One")}constructor(e,t,n,r){super(e,t,n?.relationName),this.config=n,this.isNullable=r}static[ss]="One";withFieldName(e){const t=new _One(this.sourceTable,this.referencedTable,this.config,this.isNullable);return t.fieldName=e,t}},Jl=class _Many extends Kl{static{__name(this,"Many")}constructor(e,t,n){super(e,t,n?.relationName),this.config=n}static[ss]="Many";withFieldName(e){const t=new _Many(this.sourceTable,this.referencedTable,this.config);return t.fieldName=e,t}},__name(getOperators,"getOperators"),__name(getOrderByOperators,"getOrderByOperators"),__name(normalizeRelation,"normalizeRelation"),__name(mapRelationalRow,"mapRelationalRow")}}),hc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sql/functions/aggregate.js"(){tn()}}),fc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sql/functions/vector.js"(){tn()}}),yc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sql/functions/index.js"(){tn(),hc(),fc()}}),wc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sql/index.js"(){tn(),Zl(),yc(),ui()}}),Sc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/view-base.js"(){tn(),gs(),ui(),ec=class extends ii{static{__name(this,"PgViewBase")}static[ss]="PgViewBase"}}}),bc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/dialect.js"(){tn(),pi(),Rl(),hs(),gs(),Ml(),xl(),Gl(),gc(),wc(),ui(),Qs(),ai(),Ei(),Js(),Sc(),tc=class{static{__name(this,"PgDialect")}static[ss]="PgDialect";casing;constructor(e){this.casing=new Tl(e?.casing)}async migrate(e,t,n){const r="string"==typeof n?"__drizzle_migrations":n.migrationsTable??"__drizzle_migrations",o="string"==typeof n?"drizzle":n.migrationsSchema??"drizzle",s=sql`
3
3
  CREATE TABLE IF NOT EXISTS ${sql.identifier(o)}.${sql.identifier(r)} (
4
4
  id SERIAL PRIMARY KEY,
5
5
  hash text NOT NULL,
6
6
  created_at bigint
7
7
  )
8
- `;await t.execute(sql`CREATE SCHEMA IF NOT EXISTS ${sql.identifier(o)}`),await t.execute(s);const i=(await t.all(sql`select id, hash, created_at from ${sql.identifier(o)}.${sql.identifier(r)} order by created_at desc limit 1`))[0];await t.transaction(async t=>{for await(const n of e)if(!i||Number(i.created_at)<n.folderMillis){for(const e of n.sql)await t.execute(sql.raw(e));await t.execute(sql`insert into ${sql.identifier(o)}.${sql.identifier(r)} ("hash", "created_at") values(${n.hash}, ${n.folderMillis})`)}})}escapeName(e){return`"${e}"`}escapeParam(e){return`$${e+1}`}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;const t=[sql`with `];for(const[n,r]of e.entries())t.push(sql`${sql.identifier(r._.alias)} as (${r._.sql})`),n<e.length-1&&t.push(sql`, `);return t.push(sql` `),sql.join(t)}buildDeleteQuery({table:e,where:t,returning:n,withList:r}){return sql`${this.buildWithCTE(r)}delete from ${e}${t?sql` where ${t}`:void 0}${n?sql` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0}`}buildUpdateSet(e,t){const n=e[Gs.Symbol.Columns],r=Object.keys(n).filter(e=>void 0!==t[e]||void 0!==n[e]?.onUpdateFn),o=r.length;return sql.join(r.flatMap((e,r)=>{const s=n[e],i=t[e]??sql.param(s.onUpdateFn(),s),a=sql`${sql.identifier(this.casing.getColumnCasing(s))} = ${i}`;return r<o-1?[a,sql.raw(", ")]:[a]}))}buildUpdateQuery({table:e,set:t,where:n,returning:r,withList:o,from:s,joins:i}){const a=this.buildWithCTE(o),l=e[Dl.Symbol.Name],u=e[Dl.Symbol.Schema],d=e[Dl.Symbol.OriginalName],m=l===d?void 0:l,g=sql`${u?sql`${sql.identifier(u)}.`:void 0}${sql.identifier(d)}${m&&sql` ${sql.identifier(m)}`}`,h=this.buildUpdateSet(e,t),f=s&&sql.join([sql.raw(" from "),this.buildFromTable(s)]);return sql`${a}update ${g} set ${h}${f}${this.buildJoins(i)}${n?sql` where ${n}`:void 0}${r?sql` returning ${this.buildSelection(r,{isSingleTable:!s})}`:void 0}`}buildSelection(e,{isSingleTable:t=!1}={}){const n=e.length,r=e.flatMap(({field:e},r)=>{const o=[];if(is(e,Zs.Aliased)&&e.isSelectionField)o.push(sql.identifier(e.fieldAlias));else if(is(e,Zs.Aliased)||is(e,Zs)){const n=is(e,Zs.Aliased)?e.sql:e;t?o.push(new Zs(n.queryChunks.map(e=>is(e,ks)?sql.identifier(this.casing.getColumnCasing(e)):e))):o.push(n),is(e,Zs.Aliased)&&o.push(sql` as ${sql.identifier(e.fieldAlias)}`)}else is(e,cs)&&(t?o.push(sql.identifier(this.casing.getColumnCasing(e))):o.push(e));return r<n-1&&o.push(sql`, `),o});return sql.join(r)}buildJoins(e){if(!e||0===e.length)return;const t=[];for(const[n,r]of e.entries()){0===n&&t.push(sql` `);const o=r.table,s=r.lateral?sql` lateral`:void 0;if(is(o,Dl)){const e=o[Dl.Symbol.Name],n=o[Dl.Symbol.Schema],i=o[Dl.Symbol.OriginalName],a=e===i?void 0:r.alias;t.push(sql`${sql.raw(r.joinType)} join${s} ${n?sql`${sql.identifier(n)}.`:void 0}${sql.identifier(i)}${a&&sql` ${sql.identifier(a)}`} on ${r.on}`)}else if(is(o,ii)){const e=o[Os].name,n=o[Os].schema,i=o[Os].originalName,a=e===i?void 0:r.alias;t.push(sql`${sql.raw(r.joinType)} join${s} ${n?sql`${sql.identifier(n)}.`:void 0}${sql.identifier(i)}${a&&sql` ${sql.identifier(a)}`} on ${r.on}`)}else t.push(sql`${sql.raw(r.joinType)} join${s} ${o} on ${r.on}`);n<e.length-1&&t.push(sql` `)}return sql.join(t)}buildFromTable(e){if(is(e,Gs)&&e[Gs.Symbol.OriginalName]!==e[Gs.Symbol.Name]){let t=sql`${sql.identifier(e[Gs.Symbol.OriginalName])}`;return e[Gs.Symbol.Schema]&&(t=sql`${sql.identifier(e[Gs.Symbol.Schema])}.${t}`),sql`${t} ${sql.identifier(e[Gs.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:t,fieldsFlat:n,where:r,having:o,table:s,joins:i,orderBy:a,groupBy:l,limit:u,offset:d,lockingClause:m,distinct:g,setOperators:h}){const f=n??orderSelectedFields(t);for(const e of f)if(is(e.field,cs)&&getTableName(e.field.table)!==(is(s,Ls)?s._.alias:is(s,ec)?s[Os].name:is(s,Zs)?void 0:getTableName(s))&&!(e=>i?.some(({alias:t})=>t===(e[Gs.Symbol.IsAlias]?getTableName(e):e[Gs.Symbol.BaseName])))(e.field.table)){const t=getTableName(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${t}"."${e.field.name}", but the table "${t}" is not part of the query! Did you forget to join it?`)}const y=!i||0===i.length,w=this.buildWithCTE(e);let S;g&&(S=!0===g?sql` distinct`:sql` distinct on (${sql.join(g.on,sql`, `)})`);const E=this.buildSelection(f,{isSingleTable:y}),C=this.buildFromTable(s),v=this.buildJoins(i),k=r?sql` where ${r}`:void 0,T=o?sql` having ${o}`:void 0;let _,x;a&&a.length>0&&(_=sql` order by ${sql.join(a,sql`, `)}`),l&&l.length>0&&(x=sql` group by ${sql.join(l,sql`, `)}`);const P="object"==typeof u||"number"==typeof u&&u>=0?sql` limit ${u}`:void 0,A=d?sql` offset ${d}`:void 0,I=sql.empty();if(m){const e=sql` for ${sql.raw(m.strength)}`;m.config.of&&e.append(sql` of ${sql.join(Array.isArray(m.config.of)?m.config.of:[m.config.of],sql`, `)}`),m.config.noWait?e.append(sql` no wait`):m.config.skipLocked&&e.append(sql` skip locked`),I.append(e)}const N=sql`${w}select${S} ${E} from ${C}${v}${k}${x}${T}${_}${P}${A}${I}`;return h.length>0?this.buildSetOperations(N,h):N}buildSetOperations(e,t){const[n,...r]=t;if(!n)throw new Error("Cannot pass undefined values to any set operator");return 0===r.length?this.buildSetOperationQuery({leftSelect:e,setOperator:n}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:n}),r)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:n,rightSelect:r,limit:o,orderBy:s,offset:i}}){const a=sql`(${e.getSQL()}) `,l=sql`(${r.getSQL()})`;let u;if(s&&s.length>0){const e=[];for(const t of s)if(is(t,ks))e.push(sql.identifier(t.name));else if(is(t,Zs)){for(let e=0;e<t.queryChunks.length;e++){const n=t.queryChunks[e];is(n,ks)&&(t.queryChunks[e]=sql.identifier(n.name))}e.push(sql`${t}`)}else e.push(sql`${t}`);u=sql` order by ${sql.join(e,sql`, `)} `}const d="object"==typeof o||"number"==typeof o&&o>=0?sql` limit ${o}`:void 0,m=sql.raw(`${t} ${n?"all ":""}`);return sql`${a}${m}${l}${u}${d}${i?sql` offset ${i}`:void 0}`}buildInsertQuery({table:e,values:t,onConflict:n,returning:r,withList:o,select:s,overridingSystemValue_:i}){const a=[],l=e[Gs.Symbol.Columns],u=Object.entries(l).filter(([e,t])=>!t.shouldDisableInsert()),d=u.map(([,e])=>sql.identifier(this.casing.getColumnCasing(e)));if(s){const e=t;is(e,Zs)?a.push(e):a.push(e.getSQL())}else{const e=t;a.push(sql.raw("values "));for(const[t,n]of e.entries()){const r=[];for(const[e,t]of u){const o=n[e];if(void 0===o||is(o,ri)&&void 0===o.value)if(void 0!==t.defaultFn){const e=t.defaultFn(),n=is(e,Zs)?e:sql.param(e,t);r.push(n)}else if(t.default||void 0===t.onUpdateFn)r.push(sql`default`);else{const e=t.onUpdateFn(),n=is(e,Zs)?e:sql.param(e,t);r.push(n)}else r.push(o)}a.push(r),t<e.length-1&&a.push(sql`, `)}}const m=this.buildWithCTE(o),g=sql.join(a);return sql`${m}insert into ${e} ${d} ${!0===i?sql`overriding system value `:void 0}${g}${n?sql` on conflict ${n}`:void 0}${r?sql` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0}`}buildRefreshMaterializedViewQuery({view:e,concurrently:t,withNoData:n}){return sql`refresh materialized view${t?sql` concurrently`:void 0} ${e}${n?sql` with no data`:void 0}`}prepareTyping(e){return is(e,ca)||is(e,ia)?"json":is(e,va)?"decimal":is(e,Xa)?"time":is(e,tl)||is(e,rl)?"timestamp":is(e,Ui)||is(e,Hi)?"date":is(e,il)?"uuid":"none"}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:t})}buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:n,table:r,tableConfig:o,queryConfig:s,tableAlias:i,nestedQueryRelation:a,joinOn:l}){let u,d,m,g=[],h=[];const f=[];if(!0===s)g=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:aliasedTableColumn(t,i),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{const r=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,aliasedTableColumn(t,i)]));if(s.where){const e="function"==typeof s.where?s.where(r,getOperators()):s.where;m=e&&mapColumnsInSQLToAlias(e,i)}const a=[];let l=[];if(s.columns){let e=!1;for(const[t,n]of Object.entries(s.columns))void 0!==n&&t in o.columns&&(e||!0!==n||(e=!0),l.push(t));l.length>0&&(l=e?l.filter(e=>!0===s.columns?.[e]):Object.keys(o.columns).filter(e=>!l.includes(e)))}else l=Object.keys(o.columns);for(const e of l){const t=o.columns[e];a.push({tsKey:e,value:t})}let y,w=[];if(s.with&&(w=Object.entries(s.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]}))),s.extras){y="function"==typeof s.extras?s.extras(r,{sql:sql}):s.extras;for(const[e,t]of Object.entries(y))a.push({tsKey:e,value:mapColumnsInAliasedSQLToAlias(t,i)})}for(const{tsKey:e,value:t}of a)g.push({dbKey:is(t,Zs.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:is(t,cs)?aliasedTableColumn(t,i):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let S="function"==typeof s.orderBy?s.orderBy(r,getOrderByOperators()):s.orderBy??[];Array.isArray(S)||(S=[S]),h=S.map(e=>is(e,cs)?aliasedTableColumn(e,i):mapColumnsInSQLToAlias(e,i)),u=s.limit,d=s.offset;for(const{tsKey:r,queryConfig:o,relation:s}of w){const a=normalizeRelation(t,n,s),l=n[getTableUniqueName(s.referencedTable)],u=`${i}_${r}`,d=and(...a.fields.map((e,t)=>jl(aliasedTableColumn(a.references[t],u),aliasedTableColumn(e,i)))),m=this.buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:n,table:e[l],tableConfig:t[l],queryConfig:is(s,Yl)?!0===o?{limit:1}:{...o,limit:1}:o,tableAlias:u,joinOn:d,nestedQueryRelation:s}),h=sql`${sql.identifier(u)}.${sql.identifier("data")}`.as(r);f.push({on:sql`true`,table:new Ls(m.sql,{},u),alias:u,joinType:"left",lateral:!0}),g.push({dbKey:r,tsKey:r,field:h,relationTableTsKey:l,isJson:!0,selection:m.selection})}}if(0===g.length)throw new Il({message:`No fields selected for table "${o.tsName}" ("${i}")`});let y;if(m=and(l,m),a){let e=sql`json_build_array(${sql.join(g.map(({field:e,tsKey:t,isJson:n})=>n?sql`${sql.identifier(`${i}_${t}`)}.${sql.identifier("data")}`:is(e,Zs.Aliased)?e.sql:e),sql`, `)})`;is(a,Jl)&&(e=sql`coalesce(json_agg(${e}${h.length>0?sql` order by ${sql.join(h,sql`, `)}`:void 0}), '[]'::json)`);const t=[{dbKey:"data",tsKey:"data",field:e.as("data"),isJson:!0,relationTableTsKey:o.tsName,selection:g}];void 0!==u||void 0!==d||h.length>0?(y=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:[{path:[],field:sql.raw("*")}],where:m,limit:u,offset:d,orderBy:h,setOperators:[]}),m=void 0,u=void 0,d=void 0,h=[]):y=aliasedTable(r,i),y=this.buildSelectQuery({table:is(y,Dl)?y:new Ls(y,{},i),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),joins:f,where:m,limit:u,offset:d,orderBy:h,setOperators:[]})}else y=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:g.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),joins:f,where:m,limit:u,offset:d,orderBy:h,setOperators:[]});return{tableTsKey:o.tsName,sql:y,selection:g}}}}}),Ec=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/selection-proxy.js"(){tn(),pi(),hs(),gs(),ui(),Qs(),Js(),nc=class _SelectionProxyHandler{static{__name(this,"SelectionProxyHandler")}static[ss]="SelectionProxyHandler";config;constructor(e){this.config={...e}}get(e,t){if("_"===t)return{...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(t===Os)return{...e[Os],selectedFields:new Proxy(e[Os].selectedFields,this)};if("symbol"==typeof t)return e[t];const n=(is(e,Ls)?e._.selectedFields:is(e,ii)?e[Os].selectedFields:e)[t];if(is(n,Zs.Aliased)){if("sql"===this.config.sqlAliasedBehavior&&!n.isSelectionField)return n.sql;const e=n.clone();return e.isSelectionField=!0,e}if(is(n,Zs)){if("sql"===this.config.sqlBehavior)return n;throw new Error(`You tried to reference "${t}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return is(n,cs)?this.config.alias?new Proxy(n,new li(new Proxy(n.table,new ci(this.config.alias,this.config.replaceOriginalName??!1)))):n:"object"!=typeof n||null===n?n:new Proxy(n,new _SelectionProxyHandler(this.config))}}}}),Cc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/query-builders/query-builder.js"(){tn(),gs(),rc=class{static{__name(this,"TypedQueryBuilder")}static[ss]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}}});function createSetOperator(e,t){return(n,r,...o)=>{const s=[r,...o].map(n=>({type:e,isAll:t,rightSelect:n}));for(const e of s)if(!haveSameKeys(n.getSelectedFields(),e.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return n.addSetOperators(s)}}var vc,kc,Tc,_c,xc,Pc,Ac,Ic,Nc,Rc,Mc,Lc,$c,Dc,Oc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/query-builders/select.js"(){tn(),gs(),Sc(),Cc(),Pl(),Ec(),ui(),Qs(),ai(),Ys(),Ei(),Ei(),Js(),oc=class{static{__name(this,"PgSelectBuilder")}static[ss]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,e.withList&&(this.withList=e.withList),this.distinct=e.distinct}authToken;setToken(e){return this.authToken=e,this}from(e){const t=!!this.fields;let n;return n=this.fields?this.fields:is(e,Ls)?Object.fromEntries(Object.keys(e._.selectedFields).map(t=>[t,e[t]])):is(e,ec)?e[Os].selectedFields:is(e,Zs)?{}:getTableColumns(e),new ic({table:e,fields:n,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}},sc=class extends rc{static{__name(this,"PgSelectQueryBuilderBase")}static[ss]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:e,fields:t,isPartialSelect:n,session:r,dialect:o,withList:s,distinct:i}){super(),this.config={withList:s,table:e,fields:{...t},distinct:i,setOperators:[]},this.isPartialSelect=n,this.session=r,this.dialect=o,this._={selectedFields:t},this.tableName=getTableLikeName(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{}}createJoin(e){return(t,n)=>{const r=this.tableName,o=getTableLikeName(t);if("string"==typeof o&&this.config.joins?.some(e=>e.alias===o))throw new Error(`Alias "${o}" is already used in this query`);if(!this.isPartialSelect&&(1===Object.keys(this.joinsNotNullableMap).length&&"string"==typeof r&&(this.config.fields={[r]:this.config.fields}),"string"==typeof o&&!is(t,Zs))){const e=is(t,Ls)?t._.selectedFields:is(t,ii)?t[Os].selectedFields:t[Gs.Symbol.Columns];this.config.fields[o]=e}if("function"==typeof n&&(n=n(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:n,table:t,joinType:e,alias:o}),"string"==typeof o)switch(e){case"left":this.joinsNotNullableMap[o]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!0;break;case"inner":this.joinsNotNullableMap[o]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!1}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(e,t){return n=>{const r="function"==typeof n?n(ac()):n;if(!haveSameKeys(this.getSelectedFields(),r.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:r}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=n:this.config.orderBy=n}else{const t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}for(e,t={}){return this.config.lockingClause={strength:e,config:t},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){return new Proxy(new Ls(this.getSQL(),this.config.fields,e),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new nc({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}},applyMixins(ic=class extends sc{static{__name(this,"PgSelectBase")}static[ss]="PgSelect";_prepare(e){const{session:t,config:n,dialect:r,joinsNotNullableMap:o,authToken:s}=this;if(!t)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return Ds.startActiveSpan("drizzle.prepareQuery",()=>{const i=orderSelectedFields(n.fields),a=t.prepareQuery(r.sqlToQuery(this.getSQL()),i,e,!0);return a.joinsNotNullableMap=o,a.setToken(s)})}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=__name(e=>Ds.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute")},[vl]),__name(createSetOperator,"createSetOperator"),ac=__name(()=>({union:lc,unionAll:cc,intersect:uc,intersectAll:dc,except:mc,exceptAll:pc}),"getPgSetOperators"),lc=createSetOperator("union",!1),cc=createSetOperator("union",!0),uc=createSetOperator("intersect",!1),dc=createSetOperator("intersect",!0),mc=createSetOperator("except",!1),pc=createSetOperator("except",!0)}}),Fc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/query-builders/query-builder.js"(){tn(),gs(),bc(),Ec(),Qs(),Oc(),vc=class{static{__name(this,"QueryBuilder")}static[ss]="PgQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=is(e,tc)?e:void 0,this.dialectConfig=is(e,tc)?void 0:e}$with(e){const t=this;return{as:n=>("function"==typeof n&&(n=n(t)),new Proxy(new $s(n.getSQL(),n.getSelectedFields(),e,!0),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}with(...e){const t=this;function select5(n){return new oc({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e})}function selectDistinct(e){return new oc({fields:e??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})}function selectDistinctOn(e,n){return new oc({fields:n??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:e}})}return __name(select5,"select"),__name(selectDistinct,"selectDistinct"),__name(selectDistinctOn,"selectDistinctOn"),{select:select5,selectDistinct:selectDistinct,selectDistinctOn:selectDistinctOn}}select(e){return new oc({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new oc({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new oc({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||(this.dialect=new tc(this.dialectConfig)),this.dialect}}}}),qc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/query-builders/insert.js"(){tn(),gs(),Pl(),ui(),ai(),Ys(),Ei(),Fc(),kc=class{static{__name(this,"PgInsertBuilder")}constructor(e,t,n,r,o){this.table=e,this.session=t,this.dialect=n,this.withList=r,this.overridingSystemValue_=o}static[ss]="PgInsertBuilder";authToken;setToken(e){return this.authToken=e,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(e){if(0===(e=Array.isArray(e)?e:[e]).length)throw new Error("values() must be called with at least one value");const t=e.map(e=>{const t={},n=this.table[Gs.Symbol.Columns];for(const r of Object.keys(e)){const o=e[r];t[r]=is(o,Zs)?o:new ri(o,n[r])}return t});return new Tc(this.table,t,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(e){const t="function"==typeof e?e(new vc):e;if(!is(t,Zs)&&!haveSameKeys(this.table[qs],t._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new Tc(this.table,t,this.session,this.dialect,this.withList,!0)}},Tc=class extends vl{static{__name(this,"PgInsertBase")}constructor(e,t,n,r,o,s,i){super(),this.session=n,this.dialect=r,this.config={table:e,values:t,withList:o,select:s,overridingSystemValue_:i}}static[ss]="PgInsert";config;returning(e=this.config.table[Gs.Symbol.Columns]){return this.config.returning=orderSelectedFields(e),this}onConflictDoNothing(e={}){if(void 0===e.target)this.config.onConflict=sql`do nothing`;else{let t="";t=Array.isArray(e.target)?e.target.map(e=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(e))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(e.target));const n=e.where?sql` where ${e.where}`:void 0;this.config.onConflict=sql`(${sql.raw(t)})${n} do nothing`}return this}onConflictDoUpdate(e){if(e.where&&(e.targetWhere||e.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');const t=e.where?sql` where ${e.where}`:void 0,n=e.targetWhere?sql` where ${e.targetWhere}`:void 0,r=e.setWhere?sql` where ${e.setWhere}`:void 0,o=this.dialect.buildUpdateSet(this.config.table,mapUpdateSet(this.config.table,e.set));let s="";return s=Array.isArray(e.target)?e.target.map(e=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(e))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(e.target)),this.config.onConflict=sql`(${sql.raw(s)})${n} do update set ${o}${t}${r}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return Ds.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=__name(e=>Ds.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute");$dynamic(){return this}}}}),jc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/query-builders/refresh-materialized-view.js"(){tn(),gs(),Pl(),Ys(),_c=class extends vl{static{__name(this,"PgRefreshMaterializedView")}constructor(e,t,n){super(),this.session=t,this.dialect=n,this.config={view:e}}static[ss]="PgRefreshMaterializedView";config;concurrently(){if(void 0!==this.config.withNoData)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(void 0!==this.config.concurrently)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return Ds.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,e,!0))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=__name(e=>Ds.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute")}}}),Bc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/query-builders/select.types.js"(){tn()}}),Uc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/query-builders/update.js"(){tn(),gs(),Gl(),Pl(),Ec(),ui(),Qs(),ai(),Ei(),Js(),xc=class{static{__name(this,"PgUpdateBuilder")}constructor(e,t,n,r){this.table=e,this.session=t,this.dialect=n,this.withList=r}static[ss]="PgUpdateBuilder";authToken;setToken(e){return this.authToken=e,this}set(e){return new Pc(this.table,mapUpdateSet(this.table,e),this.session,this.dialect,this.withList).setToken(this.authToken)}},Pc=class extends vl{static{__name(this,"PgUpdateBase")}constructor(e,t,n,r,o){super(),this.session=n,this.dialect=r,this.config={set:t,table:e,withList:o,joins:[]},this.tableName=getTableLikeName(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{}}static[ss]="PgUpdate";config;tableName;joinsNotNullableMap;from(e){const t=getTableLikeName(e);return"string"==typeof t&&(this.joinsNotNullableMap[t]=!0),this.config.from=e,this}getTableLikeFields(e){return is(e,Dl)?e[Gs.Symbol.Columns]:is(e,Ls)?e._.selectedFields:e[Os].selectedFields}createJoin(e){return(t,n)=>{const r=getTableLikeName(t);if("string"==typeof r&&this.config.joins.some(e=>e.alias===r))throw new Error(`Alias "${r}" is already used in this query`);if("function"==typeof n){const e=this.config.from&&!is(this.config.from,Zs)?this.getTableLikeFields(this.config.from):void 0;n=n(new Proxy(this.config.table[Gs.Symbol.Columns],new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),e&&new Proxy(e,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:n,table:t,joinType:e,alias:r}),"string"==typeof r)switch(e){case"left":this.joinsNotNullableMap[r]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[r]=!0;break;case"inner":this.joinsNotNullableMap[r]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[r]=!1}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(e){return this.config.where=e,this}returning(e){if(!e&&(e=Object.assign({},this.config.table[Gs.Symbol.Columns]),this.config.from)){const t=getTableLikeName(this.config.from);if("string"==typeof t&&this.config.from&&!is(this.config.from,Zs)){const n=this.getTableLikeFields(this.config.from);e[t]=n}for(const t of this.config.joins){const n=getTableLikeName(t.table);if("string"==typeof n&&!is(t.table,Zs)){const r=this.getTableLikeFields(t.table);e[n]=r}}}return this.config.returning=orderSelectedFields(e),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){const t=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0);return t.joinsNotNullableMap=this.joinsNotNullableMap,t}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=__name(e=>this._prepare().execute(e,this.authToken),"execute");$dynamic(){return this}}}}),zc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/query-builders/index.js"(){tn(),Al(),qc(),Fc(),jc(),Oc(),Bc(),Uc()}}),Hc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/query-builders/count.js"(){tn(),gs(),ui(),Ac=class _PgCountBuilder extends Zs{static{__name(this,"PgCountBuilder")}constructor(e){super(_PgCountBuilder.buildEmbeddedCount(e.source,e.filters).queryChunks),this.params=e,this.mapWith(Number),this.session=e.session,this.sql=_PgCountBuilder.buildCount(e.source,e.filters)}sql;token;static[ss]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(e,t){return sql`(select count(*) from ${e}${sql.raw(" where ").if(t)}${t})`}static buildCount(e,t){return sql`select count(*) as count from ${e}${sql.raw(" where ").if(t)}${t};`}setToken(e){return this.token=e,this}then(e,t){return Promise.resolve(this.session.count(this.sql,this.token)).then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}}}}),Wc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/query-builders/query.js"(){tn(),gs(),Pl(),gc(),Ys(),Ic=class{static{__name(this,"RelationalQueryBuilder")}constructor(e,t,n,r,o,s,i){this.fullSchema=e,this.schema=t,this.tableNamesMap=n,this.table=r,this.tableConfig=o,this.dialect=s,this.session=i}static[ss]="PgRelationalQueryBuilder";findMany(e){return new Nc(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many")}findFirst(e){return new Nc(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first")}},Nc=class extends vl{static{__name(this,"PgRelationalQuery")}constructor(e,t,n,r,o,s,i,a,l){super(),this.fullSchema=e,this.schema=t,this.tableNamesMap=n,this.table=r,this.tableConfig=o,this.dialect=s,this.session=i,this.config=a,this.mode=l}static[ss]="PgRelationalQuery";_prepare(e){return Ds.startActiveSpan("drizzle.prepareQuery",()=>{const{query:t,builtQuery:n}=this._toSQL();return this.session.prepareQuery(n,void 0,e,!0,(e,n)=>{const r=e.map(e=>mapRelationalRow(this.schema,this.tableConfig,e,t.selection,n));return"first"===this.mode?r[0]:r})})}prepare(e){return this._prepare(e)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){const e=this._getQuery();return{query:e,builtQuery:this.dialect.sqlToQuery(e.sql)}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(e){return this.authToken=e,this}execute(){return Ds.startActiveSpan("drizzle.operation",()=>this._prepare().execute(void 0,this.authToken))}}}}),Gc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/query-builders/raw.js"(){tn(),gs(),Pl(),Rc=class extends vl{static{__name(this,"PgRaw")}constructor(e,t,n,r){super(),this.execute=e,this.sql=t,this.query=n,this.mapBatchResult=r}static[ss]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(e,t){return t?this.mapBatchResult(e):e}_prepare(){return this}isResponseInArrayMode(){return!1}}}}),Vc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/db.js"(){tn(),gs(),zc(),Ec(),ui(),Qs(),Hc(),Wc(),Gc(),jc(),Mc=class{static{__name(this,"PgDatabase")}constructor(e,t,n){if(this.dialect=e,this.session=t,this._=n?{schema:n.schema,fullSchema:n.fullSchema,tableNamesMap:n.tableNamesMap,session:t}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:t},this.query={},this._.schema)for(const[r,o]of Object.entries(this._.schema))this.query[r]=new Ic(n.fullSchema,this._.schema,this._.tableNamesMap,n.fullSchema[r],o,e,t)}static[ss]="PgDatabase";query;$with(e){const t=this;return{as:n=>("function"==typeof n&&(n=n(new vc(t.dialect))),new Proxy(new $s(n.getSQL(),n.getSelectedFields(),e,!0),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}$count(e,t){return new Ac({source:e,filters:t,session:this.session})}with(...e){const t=this;function select5(n){return new oc({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e})}function selectDistinct(n){return new oc({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}function selectDistinctOn(n,r){return new oc({fields:r??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:{on:n}})}function update(n){return new xc(n,t.session,t.dialect,e)}function insert(n){return new kc(n,t.session,t.dialect,e)}function delete_(n){return new kl(n,t.session,t.dialect,e)}return __name(select5,"select"),__name(selectDistinct,"selectDistinct"),__name(selectDistinctOn,"selectDistinctOn"),__name(update,"update"),__name(insert,"insert"),__name(delete_,"delete_"),{select:select5,selectDistinct:selectDistinct,selectDistinctOn:selectDistinctOn,update:update,insert:insert,delete:delete_}}select(e){return new oc({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new oc({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(e,t){return new oc({fields:t??void 0,session:this.session,dialect:this.dialect,distinct:{on:e}})}update(e){return new xc(e,this.session,this.dialect)}insert(e){return new kc(e,this.session,this.dialect)}delete(e){return new kl(e,this.session,this.dialect)}refreshMaterializedView(e){return new _c(e,this.session,this.dialect)}authToken;execute(e){const t="string"==typeof e?sql.raw(e):e.getSQL(),n=this.dialect.sqlToQuery(t),r=this.session.prepareQuery(n,void 0,void 0,!1);return new Rc(()=>r.execute(void 0,this.authToken),t,n,e=>r.mapResult(e,!0))}transaction(e,t){return this.session.transaction(e,t)}}}});function index(e){return new Lc(!1,e)}function uniqueIndex(e){return new Lc(!0,e)}var Qc,Kc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/indexes.js"(){tn(),ui(),gs(),xl(),Lc=class{static{__name(this,"IndexBuilderOn")}constructor(e,t){this.unique=e,this.name=t}static[ss]="PgIndexBuilderOn";on(...e){return new $c(e.map(e=>{if(is(e,Zs))return e;const t=new _s(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),t}),this.unique,!1,this.name)}onOnly(...e){return new $c(e.map(e=>{if(is(e,Zs))return e;const t=new _s(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=e.defaultConfig,t}),this.unique,!0,this.name)}using(e,...t){return new $c(t.map(e=>{if(is(e,Zs))return e;const t=new _s(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),t}),this.unique,!0,this.name,e)}},$c=class{static{__name(this,"IndexBuilder")}static[ss]="PgIndexBuilder";config;constructor(e,t,n,r,o="btree"){this.config={name:r,columns:e,unique:t,only:n,method:o}}concurrently(){return this.config.concurrently=!0,this}with(e){return this.config.with=e,this}where(e){return this.config.where=e,this}build(e){return new Dc(this.config,e)}},Dc=class{static{__name(this,"Index")}static[ss]="PgIndex";config;constructor(e,t){this.config={...e,table:t}}},__name(index,"index"),__name(uniqueIndex,"uniqueIndex")}});function pgPolicy(e,t){return new Qc(e,t)}var Yc,Jc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/policies.js"(){tn(),gs(),Qc=class{static{__name(this,"PgPolicy")}constructor(e,t){this.name=e,t&&(this.as=t.as,this.for=t.for,this.to=t.to,this.using=t.using,this.withCheck=t.withCheck)}static[ss]="PgPolicy";as;for;to;using;withCheck;_linkedTable;link(e){return this._linkedTable=e,this}},__name(pgPolicy,"pgPolicy")}}),Xc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/roles.js"(){tn(),gs(),class{static{__name(this,"PgRole")}constructor(e,t){this.name=e,t&&(this.createDb=t.createDb,this.createRole=t.createRole,this.inherit=t.inherit)}static[ss]="PgRole";_existing;createDb;createRole;inherit;existing(){return this._existing=!0,this}}}});function pgSequenceWithSchema(e,t,n){return new Yc(e,t,n)}var Zc,eu,tu,nu,ru,ou,su,iu,au,lu,cu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/sequence.js"(){tn(),gs(),Yc=class{static{__name(this,"PgSequence")}constructor(e,t,n){this.seqName=e,this.seqOptions=t,this.schema=n}static[ss]="PgSequence"},__name(pgSequenceWithSchema,"pgSequenceWithSchema")}}),uu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/view-common.js"(){tn(),Zc=Symbol.for("drizzle:PgViewConfig")}});function pgViewWithSchema(e,t,n){return t?new nu(e,t,n):new tu(e,n)}function pgMaterializedViewWithSchema(e,t,n){return t?new su(e,t,n):new ou(e,n)}var du,mu,pu,gu,hu,fu,yu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/view.js"(){tn(),gs(),Ec(),Ei(),Fc(),Gl(),Sc(),uu(),eu=class{static{__name(this,"DefaultViewBuilderCore")}constructor(e,t){this.name=e,this.schema=t}static[ss]="PgDefaultViewBuilderCore";config={};with(e){return this.config.with=e,this}},tu=class extends eu{static{__name(this,"ViewBuilder")}static[ss]="PgViewBuilder";as(e){"function"==typeof e&&(e=e(new vc));const t=new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),n=new Proxy(e.getSelectedFields(),t);return new Proxy(new iu({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:n,query:e.getSQL().inlineParams()}}),t)}},nu=class extends eu{static{__name(this,"ManualViewBuilder")}static[ss]="PgManualViewBuilder";columns;constructor(e,t,n){super(e,n),this.columns=getTableColumns(Ol(e,t))}existing(){return new Proxy(new iu({pgConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new iu({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}},ru=class{static{__name(this,"MaterializedViewBuilderCore")}constructor(e,t){this.name=e,this.schema=t}static[ss]="PgMaterializedViewBuilderCore";config={};using(e){return this.config.using=e,this}with(e){return this.config.with=e,this}tablespace(e){return this.config.tablespace=e,this}withNoData(){return this.config.withNoData=!0,this}},ou=class extends ru{static{__name(this,"MaterializedViewBuilder")}static[ss]="PgMaterializedViewBuilder";as(e){"function"==typeof e&&(e=e(new vc));const t=new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),n=new Proxy(e.getSelectedFields(),t);return new Proxy(new lu({pgConfig:{with:this.config.with,using:this.config.using,tablespace:this.config.tablespace,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:n,query:e.getSQL().inlineParams()}}),t)}},su=class extends ru{static{__name(this,"ManualMaterializedViewBuilder")}static[ss]="PgManualMaterializedViewBuilder";columns;constructor(e,t,n){super(e,n),this.columns=getTableColumns(Ol(e,t))}existing(){return new Proxy(new lu({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new lu({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}},iu=class extends ec{static{__name(this,"PgView")}static[ss]="PgView";[Zc];constructor({pgConfig:e,config:t}){super(t),e&&(this[Zc]={with:e.with})}},au=Symbol.for("drizzle:PgMaterializedViewConfig"),lu=class extends ec{static{__name(this,"PgMaterializedView")}static[ss]="PgMaterializedView";[au];constructor({pgConfig:e,config:t}){super(t),this[au]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}},__name(pgViewWithSchema,"pgViewWithSchema"),__name(pgMaterializedViewWithSchema,"pgMaterializedViewWithSchema")}}),wu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/schema.js"(){tn(),gs(),ui(),Vs(),cu(),Gl(),yu(),class{static{__name(this,"PgSchema")}constructor(e){this.schemaName=e}static[ss]="PgSchema";table=__name((e,t,n)=>pgTableWithSchema(e,t,n,this.schemaName),"table");view=__name((e,t)=>pgViewWithSchema(e,t,this.schemaName),"view");materializedView=__name((e,t)=>pgMaterializedViewWithSchema(e,t,this.schemaName),"materializedView");enum=__name((e,t)=>pgEnumWithSchema(e,t,this.schemaName),"enum");sequence=__name((e,t)=>pgSequenceWithSchema(e,t,this.schemaName),"sequence");getSQL(){return new Zs([sql.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}}}}),Su=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/session.js"(){tn(),gs(),Ml(),wc(),Ys(),Vc(),class{static{__name(this,"PgPreparedQuery")}constructor(e){this.query=e}authToken;getQuery(){return this.query}mapResult(e,t){return e}setToken(e){return this.authToken=e,this}static[ss]="PgPreparedQuery";joinsNotNullableMap},class{static{__name(this,"PgSession")}constructor(e){this.dialect=e}static[ss]="PgSession";execute(e,t){return Ds.startActiveSpan("drizzle.operation",()=>Ds.startActiveSpan("drizzle.prepareQuery",()=>this.prepareQuery(this.dialect.sqlToQuery(e),void 0,void 0,!1)).setToken(t).execute(void 0,t))}all(e){return this.prepareQuery(this.dialect.sqlToQuery(e),void 0,void 0,!1).all()}async count(e,t){const n=await this.execute(e,t);return Number(n[0].count)}},class extends Mc{static{__name(this,"PgTransaction")}constructor(e,t,n,r=0){super(e,t,n),this.schema=n,this.nestedIndex=r}static[ss]="PgTransaction";rollback(){throw new Nl}getTransactionConfigSQL(e){const t=[];return e.isolationLevel&&t.push(`isolation level ${e.isolationLevel}`),e.accessMode&&t.push(e.accessMode),"boolean"==typeof e.deferrable&&t.push(e.deferrable?"deferrable":"not deferrable"),sql.raw(t.join(" "))}setTransaction(e){return this.session.execute(sql`set transaction ${this.getTransactionConfigSQL(e)}`)}}}}),bu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/subquery.js"(){tn()}}),Eu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/utils.js"(){tn()}}),Cu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/utils/index.js"(){tn(),Rs()}}),vu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/pg-core/index.js"(){tn(),gi(),hi(),xl(),Vc(),bc(),ws(),Kc(),Jc(),Vl(),zc(),Xc(),wu(),cu(),Su(),bu(),Gl(),Cs(),Eu(),Cu(),uu(),yu()}}),ku=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/expressions.js"(){tn(),Zl()}}),Tu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/logger.js"(){tn(),gs(),du=class{static{__name(this,"ConsoleLogWriter")}static[ss]="ConsoleLogWriter";write(e){console.log(e)}},class{static{__name(this,"DefaultLogger")}static[ss]="DefaultLogger";writer;constructor(e){this.writer=e?.writer??new du}logQuery(e,t){const n=t.map(e=>{try{return JSON.stringify(e)}catch{return String(e)}}),r=n.length?` -- params: [${n.join(", ")}]`:"";this.writer.write(`Query: ${e}${r}`)}},class{static{__name(this,"NoopLogger")}static[ss]="NoopLogger";logQuery(){}}}}),_u=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/operations.js"(){tn()}}),xu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/index.js"(){tn(),pi(),fs(),hs(),gs(),Ml(),ku(),Tu(),_u(),Pl(),gc(),wc(),Qs(),ai(),Ei(),Js()}}),Pu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/alias.js"(){tn()}}),Au=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/checks.js"(){tn(),gs(),class{static{__name(this,"CheckBuilder")}constructor(e,t){this.name=e,this.value=t}static[ss]="MySqlCheckBuilder";brand;build(e){return new mu(e,this)}},mu=class{static{__name(this,"Check")}constructor(e,t){this.table=e,this.name=t.name,this.value=t.value}static[ss]="MySqlCheck";name;value}}}),Iu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/foreign-keys.js"(){tn(),gs(),ys(),pu=class{static{__name(this,"ForeignKeyBuilder")}static[ss]="MySqlForeignKeyBuilder";reference;_onUpdate;_onDelete;constructor(e,t){this.reference=()=>{const{name:t,columns:n,foreignColumns:r}=e();return{name:t,columns:n,foreignTable:r[0].table,foreignColumns:r}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e,this}onDelete(e){return this._onDelete=e,this}build(e){return new gu(e,this)}},gu=class{static{__name(this,"ForeignKey")}constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[ss]="MySqlForeignKey";reference;onUpdate;onDelete;getName(){const{name:e,columns:t,foreignColumns:n}=this.reference(),r=t.map(e=>e.name),o=n.map(e=>e.name),s=[this.table[ds],...r,n[0].table[ds],...o];return e??`${s.join("_")}_fk`}}}});function uniqueKeyName2(e,t){return`${e[ds]}_${t.join("_")}_unique`}var Nu,Ru,Mu,Lu,$u,Du,Ou,Fu,qu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/unique-constraint.js"(){tn(),gs(),ys(),__name(uniqueKeyName2,"uniqueKeyName"),hu=class{static{__name(this,"UniqueConstraintBuilder")}constructor(e,t){this.name=t,this.columns=e}static[ss]="MySqlUniqueConstraintBuilder";columns;build(e){return new fu(e,this.columns,this.name)}},class{static{__name(this,"UniqueOnConstraintBuilder")}static[ss]="MySqlUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new hu(e,this.name)}},fu=class{static{__name(this,"UniqueConstraint")}constructor(e,t,n){this.table=e,this.columns=t,this.name=n??uniqueKeyName2(this.table,this.columns.map(e=>e.name))}static[ss]="MySqlUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}}}}),ju=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/common.js"(){tn(),fs(),hs(),gs(),Iu(),qu(),Nu=class extends us{static{__name(this,"MySqlColumnBuilder")}static[ss]="MySqlColumnBuilder";foreignKeyConfigs=[];references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e){return this.config.isUnique=!0,this.config.uniqueName=e,this}generatedAlwaysAs(e,t){return this.config.generated={as:e,type:"always",mode:t?.mode??"virtual"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:n,actions:r})=>((n,r)=>{const o=new pu(()=>{const t=n();return{columns:[e],foreignColumns:[t]}});return r.onUpdate&&o.onUpdate(r.onUpdate),r.onDelete&&o.onDelete(r.onDelete),o.build(t)})(n,r))}},Ru=class extends cs{static{__name(this,"MySqlColumn")}constructor(e,t){t.uniqueName||(t.uniqueName=uniqueKeyName2(e,[t.name])),super(e,t),this.table=e}static[ss]="MySqlColumn"},Mu=class extends Nu{static{__name(this,"MySqlColumnBuilderWithAutoIncrement")}static[ss]="MySqlColumnBuilderWithAutoIncrement";constructor(e,t,n){super(e,t,n),this.config.autoIncrement=!1}autoincrement(){return this.config.autoIncrement=!0,this.config.hasDefault=!0,this}},Lu=class extends Ru{static{__name(this,"MySqlColumnWithAutoIncrement")}static[ss]="MySqlColumnWithAutoIncrement";autoIncrement=this.config.autoIncrement}}});function bigint2(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"number"===r.mode?new $u(n,r.unsigned):new Ou(n,r.unsigned)}var Bu,Uu,zu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/bigint.js"(){tn(),gs(),Ei(),ju(),$u=class extends Mu{static{__name(this,"MySqlBigInt53Builder")}static[ss]="MySqlBigInt53Builder";constructor(e,t=!1){super(e,"number","MySqlBigInt53"),this.config.unsigned=t}build(e){return new Du(e,this.config)}},Du=class extends Lu{static{__name(this,"MySqlBigInt53")}static[ss]="MySqlBigInt53";getSQLType(){return"bigint"+(this.config.unsigned?" unsigned":"")}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}},Ou=class extends Mu{static{__name(this,"MySqlBigInt64Builder")}static[ss]="MySqlBigInt64Builder";constructor(e,t=!1){super(e,"bigint","MySqlBigInt64"),this.config.unsigned=t}build(e){return new Fu(e,this.config)}},Fu=class extends Lu{static{__name(this,"MySqlBigInt64")}static[ss]="MySqlBigInt64";getSQLType(){return"bigint"+(this.config.unsigned?" unsigned":"")}mapFromDriverValue(e){return BigInt(e)}},__name(bigint2,"bigint")}});function binary(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Bu(n,r.length)}var Hu,Wu,Gu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/binary.js"(){tn(),gs(),Ei(),ju(),Bu=class extends Nu{static{__name(this,"MySqlBinaryBuilder")}static[ss]="MySqlBinaryBuilder";constructor(e,t){super(e,"string","MySqlBinary"),this.config.length=t}build(e){return new Uu(e,this.config)}},Uu=class extends Ru{static{__name(this,"MySqlBinary")}static[ss]="MySqlBinary";length=this.config.length;getSQLType(){return void 0===this.length?"binary":`binary(${this.length})`}},__name(binary,"binary")}});function boolean2(e){return new Hu(e??"")}var Vu,Qu,Ku=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/boolean.js"(){tn(),gs(),ju(),Hu=class extends Nu{static{__name(this,"MySqlBooleanBuilder")}static[ss]="MySqlBooleanBuilder";constructor(e){super(e,"boolean","MySqlBoolean")}build(e){return new Wu(e,this.config)}},Wu=class extends Ru{static{__name(this,"MySqlBoolean")}static[ss]="MySqlBoolean";getSQLType(){return"boolean"}mapFromDriverValue(e){return"boolean"==typeof e?e:1===e}},__name(boolean2,"boolean")}});function char2(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Vu(n,r)}var Yu,Ju,Xu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/char.js"(){tn(),gs(),Ei(),ju(),Vu=class extends Nu{static{__name(this,"MySqlCharBuilder")}static[ss]="MySqlCharBuilder";constructor(e,t){super(e,"string","MySqlChar"),this.config.length=t.length,this.config.enum=t.enum}build(e){return new Qu(e,this.config)}},Qu=class extends Ru{static{__name(this,"MySqlChar")}static[ss]="MySqlChar";length=this.config.length;enumValues=this.config.enum;getSQLType(){return void 0===this.length?"char":`char(${this.length})`}},__name(char2,"char")}});function customType2(e){return(t,n)=>{const{name:r,config:o}=getColumnNameAndConfig(t,n);return new Yu(r,o,e)}}var Zu,ed,td,nd,rd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/custom.js"(){tn(),gs(),Ei(),ju(),Yu=class extends Nu{static{__name(this,"MySqlCustomColumnBuilder")}static[ss]="MySqlCustomColumnBuilder";constructor(e,t,n){super(e,"custom","MySqlCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=n}build(e){return new Ju(e,this.config)}},Ju=class extends Ru{static{__name(this,"MySqlCustomColumn")}static[ss]="MySqlCustomColumn";sqlName;mapTo;mapFrom;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return"function"==typeof this.mapFrom?this.mapFrom(e):e}mapToDriverValue(e){return"function"==typeof this.mapTo?this.mapTo(e):e}},__name(customType2,"customType")}});function date2(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"string"===r?.mode?new td(n):new Zu(n)}var od,sd,id,ad,ld=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/date.js"(){tn(),gs(),Ei(),ju(),Zu=class extends Nu{static{__name(this,"MySqlDateBuilder")}static[ss]="MySqlDateBuilder";constructor(e){super(e,"date","MySqlDate")}build(e){return new ed(e,this.config)}},ed=class extends Ru{static{__name(this,"MySqlDate")}static[ss]="MySqlDate";constructor(e,t){super(e,t)}getSQLType(){return"date"}mapFromDriverValue(e){return new Date(e)}},td=class extends Nu{static{__name(this,"MySqlDateStringBuilder")}static[ss]="MySqlDateStringBuilder";constructor(e){super(e,"string","MySqlDateString")}build(e){return new nd(e,this.config)}},nd=class extends Ru{static{__name(this,"MySqlDateString")}static[ss]="MySqlDateString";constructor(e,t){super(e,t)}getSQLType(){return"date"}},__name(date2,"date")}});function datetime(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"string"===r?.mode?new id(n,r):new od(n,r)}var cd,ud,dd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/datetime.js"(){tn(),gs(),Ei(),ju(),od=class extends Nu{static{__name(this,"MySqlDateTimeBuilder")}static[ss]="MySqlDateTimeBuilder";constructor(e,t){super(e,"date","MySqlDateTime"),this.config.fsp=t?.fsp}build(e){return new sd(e,this.config)}},sd=class extends Ru{static{__name(this,"MySqlDateTime")}static[ss]="MySqlDateTime";fsp;constructor(e,t){super(e,t),this.fsp=t.fsp}getSQLType(){return"datetime"+(void 0===this.fsp?"":`(${this.fsp})`)}mapToDriverValue(e){return e.toISOString().replace("T"," ").replace("Z","")}mapFromDriverValue(e){return new Date(e.replace(" ","T")+"Z")}},id=class extends Nu{static{__name(this,"MySqlDateTimeStringBuilder")}static[ss]="MySqlDateTimeStringBuilder";constructor(e,t){super(e,"string","MySqlDateTimeString"),this.config.fsp=t?.fsp}build(e){return new ad(e,this.config)}},ad=class extends Ru{static{__name(this,"MySqlDateTimeString")}static[ss]="MySqlDateTimeString";fsp;constructor(e,t){super(e,t),this.fsp=t.fsp}getSQLType(){return"datetime"+(void 0===this.fsp?"":`(${this.fsp})`)}},__name(datetime,"datetime")}});function decimal(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new cd(n,r)}var md,pd,gd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/decimal.js"(){tn(),gs(),Ei(),ju(),cd=class extends Mu{static{__name(this,"MySqlDecimalBuilder")}static[ss]="MySqlDecimalBuilder";constructor(e,t){super(e,"string","MySqlDecimal"),this.config.precision=t?.precision,this.config.scale=t?.scale,this.config.unsigned=t?.unsigned}build(e){return new ud(e,this.config)}},ud=class extends Lu{static{__name(this,"MySqlDecimal")}static[ss]="MySqlDecimal";precision=this.config.precision;scale=this.config.scale;unsigned=this.config.unsigned;getSQLType(){let e="";return void 0!==this.precision&&void 0!==this.scale?e+=`decimal(${this.precision},${this.scale})`:void 0===this.precision?e+="decimal":e+=`decimal(${this.precision})`,e="decimal(10,0)"===e||"decimal(10)"===e?"decimal":e,this.unsigned?`${e} unsigned`:e}},__name(decimal,"decimal")}});function double(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new md(n,r)}var hd,fd,yd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/double.js"(){tn(),gs(),Ei(),ju(),md=class extends Mu{static{__name(this,"MySqlDoubleBuilder")}static[ss]="MySqlDoubleBuilder";constructor(e,t){super(e,"number","MySqlDouble"),this.config.precision=t?.precision,this.config.scale=t?.scale,this.config.unsigned=t?.unsigned}build(e){return new pd(e,this.config)}},pd=class extends Lu{static{__name(this,"MySqlDouble")}static[ss]="MySqlDouble";precision=this.config.precision;scale=this.config.scale;unsigned=this.config.unsigned;getSQLType(){let e="";return void 0!==this.precision&&void 0!==this.scale?e+=`double(${this.precision},${this.scale})`:void 0===this.precision?e+="double":e+=`double(${this.precision})`,this.unsigned?`${e} unsigned`:e}},__name(double,"double")}});function mysqlEnum(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);if(0===r.length)throw new Error(`You have an empty array for "${n}" enum values`);return new hd(n,r)}var wd,Sd,bd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/enum.js"(){tn(),gs(),Ei(),ju(),hd=class extends Nu{static{__name(this,"MySqlEnumColumnBuilder")}static[ss]="MySqlEnumColumnBuilder";constructor(e,t){super(e,"string","MySqlEnumColumn"),this.config.enumValues=t}build(e){return new fd(e,this.config)}},fd=class extends Ru{static{__name(this,"MySqlEnumColumn")}static[ss]="MySqlEnumColumn";enumValues=this.config.enumValues;getSQLType(){return`enum(${this.enumValues.map(e=>`'${e}'`).join(",")})`}},__name(mysqlEnum,"mysqlEnum")}});function float(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new wd(n,r)}var Ed,Cd,vd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/float.js"(){tn(),gs(),Ei(),ju(),wd=class extends Mu{static{__name(this,"MySqlFloatBuilder")}static[ss]="MySqlFloatBuilder";constructor(e,t){super(e,"number","MySqlFloat"),this.config.precision=t?.precision,this.config.scale=t?.scale,this.config.unsigned=t?.unsigned}build(e){return new Sd(e,this.config)}},Sd=class extends Lu{static{__name(this,"MySqlFloat")}static[ss]="MySqlFloat";precision=this.config.precision;scale=this.config.scale;unsigned=this.config.unsigned;getSQLType(){let e="";return void 0!==this.precision&&void 0!==this.scale?e+=`float(${this.precision},${this.scale})`:void 0===this.precision?e+="float":e+=`float(${this.precision})`,this.unsigned?`${e} unsigned`:e}},__name(float,"float")}});function int(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Ed(n,r)}var kd,Td,_d=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/int.js"(){tn(),gs(),Ei(),ju(),Ed=class extends Mu{static{__name(this,"MySqlIntBuilder")}static[ss]="MySqlIntBuilder";constructor(e,t){super(e,"number","MySqlInt"),this.config.unsigned=!!t&&t.unsigned}build(e){return new Cd(e,this.config)}},Cd=class extends Lu{static{__name(this,"MySqlInt")}static[ss]="MySqlInt";getSQLType(){return"int"+(this.config.unsigned?" unsigned":"")}mapFromDriverValue(e){return"string"==typeof e?Number(e):e}},__name(int,"int")}});function json2(e){return new kd(e??"")}var xd,Pd,Ad=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/json.js"(){tn(),gs(),ju(),kd=class extends Nu{static{__name(this,"MySqlJsonBuilder")}static[ss]="MySqlJsonBuilder";constructor(e){super(e,"json","MySqlJson")}build(e){return new Td(e,this.config)}},Td=class extends Ru{static{__name(this,"MySqlJson")}static[ss]="MySqlJson";getSQLType(){return"json"}mapToDriverValue(e){return JSON.stringify(e)}},__name(json2,"json")}});function mediumint(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new xd(n,r)}var Id,Nd,Rd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/mediumint.js"(){tn(),gs(),Ei(),ju(),xd=class extends Mu{static{__name(this,"MySqlMediumIntBuilder")}static[ss]="MySqlMediumIntBuilder";constructor(e,t){super(e,"number","MySqlMediumInt"),this.config.unsigned=!!t&&t.unsigned}build(e){return new Pd(e,this.config)}},Pd=class extends Lu{static{__name(this,"MySqlMediumInt")}static[ss]="MySqlMediumInt";getSQLType(){return"mediumint"+(this.config.unsigned?" unsigned":"")}mapFromDriverValue(e){return"string"==typeof e?Number(e):e}},__name(mediumint,"mediumint")}});function real2(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Id(n,r)}var Md,Ld,$d=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/real.js"(){tn(),gs(),Ei(),ju(),Id=class extends Mu{static{__name(this,"MySqlRealBuilder")}static[ss]="MySqlRealBuilder";constructor(e,t){super(e,"number","MySqlReal"),this.config.precision=t?.precision,this.config.scale=t?.scale}build(e){return new Nd(e,this.config)}},Nd=class extends Lu{static{__name(this,"MySqlReal")}static[ss]="MySqlReal";precision=this.config.precision;scale=this.config.scale;getSQLType(){return void 0!==this.precision&&void 0!==this.scale?`real(${this.precision}, ${this.scale})`:void 0===this.precision?"real":`real(${this.precision})`}},__name(real2,"real")}});function serial2(e){return new Md(e??"")}var Dd,Od,Fd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/serial.js"(){tn(),gs(),ju(),Md=class extends Mu{static{__name(this,"MySqlSerialBuilder")}static[ss]="MySqlSerialBuilder";constructor(e){super(e,"number","MySqlSerial"),this.config.hasDefault=!0,this.config.autoIncrement=!0}build(e){return new Ld(e,this.config)}},Ld=class extends Lu{static{__name(this,"MySqlSerial")}static[ss]="MySqlSerial";getSQLType(){return"serial"}mapFromDriverValue(e){return"string"==typeof e?Number(e):e}},__name(serial2,"serial")}});function smallint2(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Dd(n,r)}var qd,jd,Bd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/smallint.js"(){tn(),gs(),Ei(),ju(),Dd=class extends Mu{static{__name(this,"MySqlSmallIntBuilder")}static[ss]="MySqlSmallIntBuilder";constructor(e,t){super(e,"number","MySqlSmallInt"),this.config.unsigned=!!t&&t.unsigned}build(e){return new Od(e,this.config)}},Od=class extends Lu{static{__name(this,"MySqlSmallInt")}static[ss]="MySqlSmallInt";getSQLType(){return"smallint"+(this.config.unsigned?" unsigned":"")}mapFromDriverValue(e){return"string"==typeof e?Number(e):e}},__name(smallint2,"smallint")}});function text2(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new qd(n,"text",r)}function tinytext(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new qd(n,"tinytext",r)}function mediumtext(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new qd(n,"mediumtext",r)}function longtext(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new qd(n,"longtext",r)}var Ud,zd,Hd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/text.js"(){tn(),gs(),Ei(),ju(),qd=class extends Nu{static{__name(this,"MySqlTextBuilder")}static[ss]="MySqlTextBuilder";constructor(e,t,n){super(e,"string","MySqlText"),this.config.textType=t,this.config.enumValues=n.enum}build(e){return new jd(e,this.config)}},jd=class extends Ru{static{__name(this,"MySqlText")}static[ss]="MySqlText";textType=this.config.textType;enumValues=this.config.enumValues;getSQLType(){return this.textType}},__name(text2,"text"),__name(tinytext,"tinytext"),__name(mediumtext,"mediumtext"),__name(longtext,"longtext")}});function time2(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Ud(n,r)}var Wd,Gd,Vd,Qd,Kd,Yd,Jd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/time.js"(){tn(),gs(),Ei(),ju(),Ud=class extends Nu{static{__name(this,"MySqlTimeBuilder")}static[ss]="MySqlTimeBuilder";constructor(e,t){super(e,"string","MySqlTime"),this.config.fsp=t?.fsp}build(e){return new zd(e,this.config)}},zd=class extends Ru{static{__name(this,"MySqlTime")}static[ss]="MySqlTime";fsp=this.config.fsp;getSQLType(){return"time"+(void 0===this.fsp?"":`(${this.fsp})`)}},__name(time2,"time")}}),Xd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/date.common.js"(){tn(),gs(),ui(),ju(),Wd=class extends Nu{static{__name(this,"MySqlDateColumnBaseBuilder")}static[ss]="MySqlDateColumnBuilder";defaultNow(){return this.default(sql`(now())`)}onUpdateNow(){return this.config.hasOnUpdateNow=!0,this.config.hasDefault=!0,this}},Gd=class extends Ru{static{__name(this,"MySqlDateBaseColumn")}static[ss]="MySqlDateColumn";hasOnUpdateNow=this.config.hasOnUpdateNow}}});function timestamp2(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"string"===r?.mode?new Kd(n,r):new Vd(n,r)}var Zd,em,tm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/timestamp.js"(){tn(),gs(),Ei(),Xd(),Vd=class extends Wd{static{__name(this,"MySqlTimestampBuilder")}static[ss]="MySqlTimestampBuilder";constructor(e,t){super(e,"date","MySqlTimestamp"),this.config.fsp=t?.fsp}build(e){return new Qd(e,this.config)}},Qd=class extends Gd{static{__name(this,"MySqlTimestamp")}static[ss]="MySqlTimestamp";fsp=this.config.fsp;getSQLType(){return"timestamp"+(void 0===this.fsp?"":`(${this.fsp})`)}mapFromDriverValue(e){return new Date(e+"+0000")}mapToDriverValue(e){return e.toISOString().slice(0,-1).replace("T"," ")}},Kd=class extends Wd{static{__name(this,"MySqlTimestampStringBuilder")}static[ss]="MySqlTimestampStringBuilder";constructor(e,t){super(e,"string","MySqlTimestampString"),this.config.fsp=t?.fsp}build(e){return new Yd(e,this.config)}},Yd=class extends Gd{static{__name(this,"MySqlTimestampString")}static[ss]="MySqlTimestampString";fsp=this.config.fsp;getSQLType(){return"timestamp"+(void 0===this.fsp?"":`(${this.fsp})`)}},__name(timestamp2,"timestamp")}});function tinyint(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Zd(n,r)}var nm,rm,om=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/tinyint.js"(){tn(),gs(),Ei(),ju(),Zd=class extends Mu{static{__name(this,"MySqlTinyIntBuilder")}static[ss]="MySqlTinyIntBuilder";constructor(e,t){super(e,"number","MySqlTinyInt"),this.config.unsigned=!!t&&t.unsigned}build(e){return new em(e,this.config)}},em=class extends Lu{static{__name(this,"MySqlTinyInt")}static[ss]="MySqlTinyInt";getSQLType(){return"tinyint"+(this.config.unsigned?" unsigned":"")}mapFromDriverValue(e){return"string"==typeof e?Number(e):e}},__name(tinyint,"tinyint")}});function varbinary(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new nm(n,r)}var sm,im,am=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/varbinary.js"(){tn(),gs(),Ei(),ju(),nm=class extends Nu{static{__name(this,"MySqlVarBinaryBuilder")}static[ss]="MySqlVarBinaryBuilder";constructor(e,t){super(e,"string","MySqlVarBinary"),this.config.length=t?.length}build(e){return new rm(e,this.config)}},rm=class extends Ru{static{__name(this,"MySqlVarBinary")}static[ss]="MySqlVarBinary";length=this.config.length;getSQLType(){return void 0===this.length?"varbinary":`varbinary(${this.length})`}},__name(varbinary,"varbinary")}});function varchar2(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new sm(n,r)}var lm,cm,um=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/varchar.js"(){tn(),gs(),Ei(),ju(),sm=class extends Nu{static{__name(this,"MySqlVarCharBuilder")}static[ss]="MySqlVarCharBuilder";constructor(e,t){super(e,"string","MySqlVarChar"),this.config.length=t.length,this.config.enum=t.enum}build(e){return new im(e,this.config)}},im=class extends Ru{static{__name(this,"MySqlVarChar")}static[ss]="MySqlVarChar";length=this.config.length;enumValues=this.config.enum;getSQLType(){return void 0===this.length?"varchar":`varchar(${this.length})`}},__name(varchar2,"varchar")}});function year(e){return new lm(e??"")}var dm,mm,pm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/year.js"(){tn(),gs(),ju(),lm=class extends Nu{static{__name(this,"MySqlYearBuilder")}static[ss]="MySqlYearBuilder";constructor(e){super(e,"number","MySqlYear")}build(e){return new cm(e,this.config)}},cm=class extends Ru{static{__name(this,"MySqlYear")}static[ss]="MySqlYear";getSQLType(){return"year"}},__name(year,"year")}}),gm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/index.js"(){tn(),zu(),Gu(),Ku(),Xu(),ju(),rd(),ld(),dd(),gd(),yd(),bd(),vd(),_d(),Ad(),Rd(),$d(),Fd(),Bd(),Hd(),Jd(),tm(),om(),am(),um(),pm()}}),hm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/query-builders/count.js"(){tn(),gs(),ui(),dm=class _MySqlCountBuilder extends Zs{static{__name(this,"MySqlCountBuilder")}constructor(e){super(_MySqlCountBuilder.buildEmbeddedCount(e.source,e.filters).queryChunks),this.params=e,this.mapWith(Number),this.session=e.session,this.sql=_MySqlCountBuilder.buildCount(e.source,e.filters)}sql;static[ss]="MySqlCountBuilder";[Symbol.toStringTag]="MySqlCountBuilder";session;static buildEmbeddedCount(e,t){return sql`(select count(*) from ${e}${sql.raw(" where ").if(t)}${t})`}static buildCount(e,t){return sql`select count(*) as count from ${e}${sql.raw(" where ").if(t)}${t}`}then(e,t){return Promise.resolve(this.session.count(this.sql)).then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}}}}),fm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/query-builders/delete.js"(){tn(),gs(),Pl(),Ec(),ai(),mm=class extends vl{static{__name(this,"MySqlDeleteBase")}constructor(e,t,n,r){super(),this.table=e,this.session=t,this.dialect=n,this.config={table:e,withList:r}}static[ss]="MySqlDelete";config;where(e){return this.config.where=e,this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.table[Gs.Symbol.Columns],new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(t)?t:[t];this.config.orderBy=n}else{const t=e;this.config.orderBy=t}return this}limit(e){return this.config.limit=e,this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}prepare(){return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning)}execute=__name(e=>this.prepare().execute(e),"execute");createIterator=__name(()=>{const e=this;return async function*(t){yield*e.prepare().iterator(t)}},"createIterator");iterator=this.createIterator();$dynamic(){return this}}}});function getMySqlColumnBuilders(){return{bigint:bigint2,binary:binary,boolean:boolean2,char:char2,customType:customType2,date:date2,datetime:datetime,decimal:decimal,double:double,mysqlEnum:mysqlEnum,float:float,int:int,json:json2,mediumint:mediumint,real:real2,serial:serial2,smallint:smallint2,text:text2,time:time2,timestamp:timestamp2,tinyint:tinyint,varbinary:varbinary,varchar:varchar2,year:year,longtext:longtext,mediumtext:mediumtext,tinytext:tinytext}}var ym,wm,Sm,bm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/columns/all.js"(){tn(),zu(),Gu(),Ku(),Xu(),rd(),ld(),dd(),gd(),yd(),bd(),vd(),_d(),Ad(),Rd(),$d(),Fd(),Bd(),Hd(),Jd(),tm(),om(),am(),um(),pm(),__name(getMySqlColumnBuilders,"getMySqlColumnBuilders")}});function mysqlTableWithSchema(e,t,n,r,o=e){const s=new wm(e,r,o),i="function"==typeof t?t(getMySqlColumnBuilders()):t,a=Object.fromEntries(Object.entries(i).map(([e,t])=>{const n=t;n.setName(e);const r=n.build(s);return s[ym].push(...n.buildForeignKeys(r,s)),[e,r]})),l=Object.assign(s,a);return l[Gs.Symbol.Columns]=a,l[Gs.Symbol.ExtraConfigColumns]=a,n&&(l[wm.Symbol.ExtraConfigBuilder]=n),l}var Em,Cm,vm,km,Tm,_m,xm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/table.js"(){tn(),gs(),ai(),bm(),ym=Symbol.for("drizzle:MySqlInlineForeignKeys"),wm=class extends Gs{static{__name(this,"MySqlTable")}static[ss]="MySqlTable";static Symbol=Object.assign({},Gs.Symbol,{InlineForeignKeys:ym});[Gs.Symbol.Columns];[ym]=[];[Gs.Symbol.ExtraConfigBuilder]=void 0},__name(mysqlTableWithSchema,"mysqlTableWithSchema"),Sm=__name((e,t,n)=>mysqlTableWithSchema(e,t,n,void 0,e),"mysqlTable")}}),Pm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/view-base.js"(){tn(),gs(),ui(),Em=class extends ii{static{__name(this,"MySqlViewBase")}static[ss]="MySqlViewBase"}}}),Am=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/dialect.js"(){tn(),pi(),Rl(),hs(),gs(),Ml(),ku(),gc(),ui(),Qs(),ai(),Ei(),Js(),ju(),xm(),Pm(),Cm=class{static{__name(this,"MySqlDialect")}static[ss]="MySqlDialect";casing;constructor(e){this.casing=new Tl(e?.casing)}async migrate(e,t,n){const r=n.migrationsTable??"__drizzle_migrations",o=sql`
8
+ `;await t.execute(sql`CREATE SCHEMA IF NOT EXISTS ${sql.identifier(o)}`),await t.execute(s);const i=(await t.all(sql`select id, hash, created_at from ${sql.identifier(o)}.${sql.identifier(r)} order by created_at desc limit 1`))[0];await t.transaction(async t=>{for await(const n of e)if(!i||Number(i.created_at)<n.folderMillis){for(const e of n.sql)await t.execute(sql.raw(e));await t.execute(sql`insert into ${sql.identifier(o)}.${sql.identifier(r)} ("hash", "created_at") values(${n.hash}, ${n.folderMillis})`)}})}escapeName(e){return`"${e}"`}escapeParam(e){return`$${e+1}`}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;const t=[sql`with `];for(const[n,r]of e.entries())t.push(sql`${sql.identifier(r._.alias)} as (${r._.sql})`),n<e.length-1&&t.push(sql`, `);return t.push(sql` `),sql.join(t)}buildDeleteQuery({table:e,where:t,returning:n,withList:r}){return sql`${this.buildWithCTE(r)}delete from ${e}${t?sql` where ${t}`:void 0}${n?sql` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0}`}buildUpdateSet(e,t){const n=e[Gs.Symbol.Columns],r=Object.keys(n).filter(e=>void 0!==t[e]||void 0!==n[e]?.onUpdateFn),o=r.length;return sql.join(r.flatMap((e,r)=>{const s=n[e],i=t[e]??sql.param(s.onUpdateFn(),s),a=sql`${sql.identifier(this.casing.getColumnCasing(s))} = ${i}`;return r<o-1?[a,sql.raw(", ")]:[a]}))}buildUpdateQuery({table:e,set:t,where:n,returning:r,withList:o,from:s,joins:i}){const a=this.buildWithCTE(o),l=e[Dl.Symbol.Name],u=e[Dl.Symbol.Schema],d=e[Dl.Symbol.OriginalName],m=l===d?void 0:l,g=sql`${u?sql`${sql.identifier(u)}.`:void 0}${sql.identifier(d)}${m&&sql` ${sql.identifier(m)}`}`,h=this.buildUpdateSet(e,t),f=s&&sql.join([sql.raw(" from "),this.buildFromTable(s)]);return sql`${a}update ${g} set ${h}${f}${this.buildJoins(i)}${n?sql` where ${n}`:void 0}${r?sql` returning ${this.buildSelection(r,{isSingleTable:!s})}`:void 0}`}buildSelection(e,{isSingleTable:t=!1}={}){const n=e.length,r=e.flatMap(({field:e},r)=>{const o=[];if(is(e,Zs.Aliased)&&e.isSelectionField)o.push(sql.identifier(e.fieldAlias));else if(is(e,Zs.Aliased)||is(e,Zs)){const n=is(e,Zs.Aliased)?e.sql:e;t?o.push(new Zs(n.queryChunks.map(e=>is(e,ks)?sql.identifier(this.casing.getColumnCasing(e)):e))):o.push(n),is(e,Zs.Aliased)&&o.push(sql` as ${sql.identifier(e.fieldAlias)}`)}else is(e,cs)&&(t?o.push(sql.identifier(this.casing.getColumnCasing(e))):o.push(e));return r<n-1&&o.push(sql`, `),o});return sql.join(r)}buildJoins(e){if(!e||0===e.length)return;const t=[];for(const[n,r]of e.entries()){0===n&&t.push(sql` `);const o=r.table,s=r.lateral?sql` lateral`:void 0;if(is(o,Dl)){const e=o[Dl.Symbol.Name],n=o[Dl.Symbol.Schema],i=o[Dl.Symbol.OriginalName],a=e===i?void 0:r.alias;t.push(sql`${sql.raw(r.joinType)} join${s} ${n?sql`${sql.identifier(n)}.`:void 0}${sql.identifier(i)}${a&&sql` ${sql.identifier(a)}`} on ${r.on}`)}else if(is(o,ii)){const e=o[Os].name,n=o[Os].schema,i=o[Os].originalName,a=e===i?void 0:r.alias;t.push(sql`${sql.raw(r.joinType)} join${s} ${n?sql`${sql.identifier(n)}.`:void 0}${sql.identifier(i)}${a&&sql` ${sql.identifier(a)}`} on ${r.on}`)}else t.push(sql`${sql.raw(r.joinType)} join${s} ${o} on ${r.on}`);n<e.length-1&&t.push(sql` `)}return sql.join(t)}buildFromTable(e){if(is(e,Gs)&&e[Gs.Symbol.OriginalName]!==e[Gs.Symbol.Name]){let t=sql`${sql.identifier(e[Gs.Symbol.OriginalName])}`;return e[Gs.Symbol.Schema]&&(t=sql`${sql.identifier(e[Gs.Symbol.Schema])}.${t}`),sql`${t} ${sql.identifier(e[Gs.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:t,fieldsFlat:n,where:r,having:o,table:s,joins:i,orderBy:a,groupBy:l,limit:u,offset:d,lockingClause:m,distinct:g,setOperators:h}){const f=n??orderSelectedFields(t);for(const e of f)if(is(e.field,cs)&&getTableName(e.field.table)!==(is(s,Ls)?s._.alias:is(s,ec)?s[Os].name:is(s,Zs)?void 0:getTableName(s))&&!(e=>i?.some(({alias:t})=>t===(e[Gs.Symbol.IsAlias]?getTableName(e):e[Gs.Symbol.BaseName])))(e.field.table)){const t=getTableName(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${t}"."${e.field.name}", but the table "${t}" is not part of the query! Did you forget to join it?`)}const y=!i||0===i.length,w=this.buildWithCTE(e);let S;g&&(S=!0===g?sql` distinct`:sql` distinct on (${sql.join(g.on,sql`, `)})`);const E=this.buildSelection(f,{isSingleTable:y}),C=this.buildFromTable(s),v=this.buildJoins(i),k=r?sql` where ${r}`:void 0,T=o?sql` having ${o}`:void 0;let _,x;a&&a.length>0&&(_=sql` order by ${sql.join(a,sql`, `)}`),l&&l.length>0&&(x=sql` group by ${sql.join(l,sql`, `)}`);const P="object"==typeof u||"number"==typeof u&&u>=0?sql` limit ${u}`:void 0,A=d?sql` offset ${d}`:void 0,I=sql.empty();if(m){const e=sql` for ${sql.raw(m.strength)}`;m.config.of&&e.append(sql` of ${sql.join(Array.isArray(m.config.of)?m.config.of:[m.config.of],sql`, `)}`),m.config.noWait?e.append(sql` no wait`):m.config.skipLocked&&e.append(sql` skip locked`),I.append(e)}const N=sql`${w}select${S} ${E} from ${C}${v}${k}${x}${T}${_}${P}${A}${I}`;return h.length>0?this.buildSetOperations(N,h):N}buildSetOperations(e,t){const[n,...r]=t;if(!n)throw new Error("Cannot pass undefined values to any set operator");return 0===r.length?this.buildSetOperationQuery({leftSelect:e,setOperator:n}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:n}),r)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:n,rightSelect:r,limit:o,orderBy:s,offset:i}}){const a=sql`(${e.getSQL()}) `,l=sql`(${r.getSQL()})`;let u;if(s&&s.length>0){const e=[];for(const t of s)if(is(t,ks))e.push(sql.identifier(t.name));else if(is(t,Zs)){for(let e=0;e<t.queryChunks.length;e++){const n=t.queryChunks[e];is(n,ks)&&(t.queryChunks[e]=sql.identifier(n.name))}e.push(sql`${t}`)}else e.push(sql`${t}`);u=sql` order by ${sql.join(e,sql`, `)} `}const d="object"==typeof o||"number"==typeof o&&o>=0?sql` limit ${o}`:void 0,m=sql.raw(`${t} ${n?"all ":""}`);return sql`${a}${m}${l}${u}${d}${i?sql` offset ${i}`:void 0}`}buildInsertQuery({table:e,values:t,onConflict:n,returning:r,withList:o,select:s,overridingSystemValue_:i}){const a=[],l=e[Gs.Symbol.Columns],u=Object.entries(l).filter(([e,t])=>!t.shouldDisableInsert()),d=u.map(([,e])=>sql.identifier(this.casing.getColumnCasing(e)));if(s){const e=t;is(e,Zs)?a.push(e):a.push(e.getSQL())}else{const e=t;a.push(sql.raw("values "));for(const[t,n]of e.entries()){const r=[];for(const[e,t]of u){const o=n[e];if(void 0===o||is(o,ri)&&void 0===o.value)if(void 0!==t.defaultFn){const e=t.defaultFn(),n=is(e,Zs)?e:sql.param(e,t);r.push(n)}else if(t.default||void 0===t.onUpdateFn)r.push(sql`default`);else{const e=t.onUpdateFn(),n=is(e,Zs)?e:sql.param(e,t);r.push(n)}else r.push(o)}a.push(r),t<e.length-1&&a.push(sql`, `)}}const m=this.buildWithCTE(o),g=sql.join(a);return sql`${m}insert into ${e} ${d} ${!0===i?sql`overriding system value `:void 0}${g}${n?sql` on conflict ${n}`:void 0}${r?sql` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0}`}buildRefreshMaterializedViewQuery({view:e,concurrently:t,withNoData:n}){return sql`refresh materialized view${t?sql` concurrently`:void 0} ${e}${n?sql` with no data`:void 0}`}prepareTyping(e){return is(e,ca)||is(e,ia)?"json":is(e,va)?"decimal":is(e,Xa)?"time":is(e,tl)||is(e,rl)?"timestamp":is(e,Ui)||is(e,Hi)?"date":is(e,il)?"uuid":"none"}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:t})}buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:n,table:r,tableConfig:o,queryConfig:s,tableAlias:i,nestedQueryRelation:a,joinOn:l}){let u,d,m,g=[],h=[];const f=[];if(!0===s)g=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:aliasedTableColumn(t,i),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{const r=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,aliasedTableColumn(t,i)]));if(s.where){const e="function"==typeof s.where?s.where(r,getOperators()):s.where;m=e&&mapColumnsInSQLToAlias(e,i)}const a=[];let l=[];if(s.columns){let e=!1;for(const[t,n]of Object.entries(s.columns))void 0!==n&&t in o.columns&&(e||!0!==n||(e=!0),l.push(t));l.length>0&&(l=e?l.filter(e=>!0===s.columns?.[e]):Object.keys(o.columns).filter(e=>!l.includes(e)))}else l=Object.keys(o.columns);for(const e of l){const t=o.columns[e];a.push({tsKey:e,value:t})}let y,w=[];if(s.with&&(w=Object.entries(s.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]}))),s.extras){y="function"==typeof s.extras?s.extras(r,{sql:sql}):s.extras;for(const[e,t]of Object.entries(y))a.push({tsKey:e,value:mapColumnsInAliasedSQLToAlias(t,i)})}for(const{tsKey:e,value:t}of a)g.push({dbKey:is(t,Zs.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:is(t,cs)?aliasedTableColumn(t,i):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let S="function"==typeof s.orderBy?s.orderBy(r,getOrderByOperators()):s.orderBy??[];Array.isArray(S)||(S=[S]),h=S.map(e=>is(e,cs)?aliasedTableColumn(e,i):mapColumnsInSQLToAlias(e,i)),u=s.limit,d=s.offset;for(const{tsKey:r,queryConfig:o,relation:s}of w){const a=normalizeRelation(t,n,s),l=n[getTableUniqueName(s.referencedTable)],u=`${i}_${r}`,d=and(...a.fields.map((e,t)=>jl(aliasedTableColumn(a.references[t],u),aliasedTableColumn(e,i)))),m=this.buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:n,table:e[l],tableConfig:t[l],queryConfig:is(s,Yl)?!0===o?{limit:1}:{...o,limit:1}:o,tableAlias:u,joinOn:d,nestedQueryRelation:s}),h=sql`${sql.identifier(u)}.${sql.identifier("data")}`.as(r);f.push({on:sql`true`,table:new Ls(m.sql,{},u),alias:u,joinType:"left",lateral:!0}),g.push({dbKey:r,tsKey:r,field:h,relationTableTsKey:l,isJson:!0,selection:m.selection})}}if(0===g.length)throw new Il({message:`No fields selected for table "${o.tsName}" ("${i}")`});let y;if(m=and(l,m),a){let e=sql`json_build_array(${sql.join(g.map(({field:e,tsKey:t,isJson:n})=>n?sql`${sql.identifier(`${i}_${t}`)}.${sql.identifier("data")}`:is(e,Zs.Aliased)?e.sql:e),sql`, `)})`;is(a,Jl)&&(e=sql`coalesce(json_agg(${e}${h.length>0?sql` order by ${sql.join(h,sql`, `)}`:void 0}), '[]'::json)`);const t=[{dbKey:"data",tsKey:"data",field:e.as("data"),isJson:!0,relationTableTsKey:o.tsName,selection:g}];void 0!==u||void 0!==d||h.length>0?(y=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:[{path:[],field:sql.raw("*")}],where:m,limit:u,offset:d,orderBy:h,setOperators:[]}),m=void 0,u=void 0,d=void 0,h=[]):y=aliasedTable(r,i),y=this.buildSelectQuery({table:is(y,Dl)?y:new Ls(y,{},i),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),joins:f,where:m,limit:u,offset:d,orderBy:h,setOperators:[]})}else y=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:g.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),joins:f,where:m,limit:u,offset:d,orderBy:h,setOperators:[]});return{tableTsKey:o.tsName,sql:y,selection:g}}}}}),Ec=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/selection-proxy.js"(){tn(),pi(),hs(),gs(),ui(),Qs(),Js(),nc=class _SelectionProxyHandler{static{__name(this,"SelectionProxyHandler")}static[ss]="SelectionProxyHandler";config;constructor(e){this.config={...e}}get(e,t){if("_"===t)return{...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(t===Os)return{...e[Os],selectedFields:new Proxy(e[Os].selectedFields,this)};if("symbol"==typeof t)return e[t];const n=(is(e,Ls)?e._.selectedFields:is(e,ii)?e[Os].selectedFields:e)[t];if(is(n,Zs.Aliased)){if("sql"===this.config.sqlAliasedBehavior&&!n.isSelectionField)return n.sql;const e=n.clone();return e.isSelectionField=!0,e}if(is(n,Zs)){if("sql"===this.config.sqlBehavior)return n;throw new Error(`You tried to reference "${t}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return is(n,cs)?this.config.alias?new Proxy(n,new li(new Proxy(n.table,new ci(this.config.alias,this.config.replaceOriginalName??!1)))):n:"object"!=typeof n||null===n?n:new Proxy(n,new _SelectionProxyHandler(this.config))}}}}),Cc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/query-builders/query-builder.js"(){tn(),gs(),rc=class{static{__name(this,"TypedQueryBuilder")}static[ss]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}}});function createSetOperator(e,t){return(n,r,...o)=>{const s=[r,...o].map(n=>({type:e,isAll:t,rightSelect:n}));for(const e of s)if(!haveSameKeys(n.getSelectedFields(),e.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return n.addSetOperators(s)}}var vc,kc,Tc,_c,xc,Pc,Ac,Ic,Nc,Rc,Mc,Lc,$c,Dc,Oc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/query-builders/select.js"(){tn(),gs(),Sc(),Cc(),Pl(),Ec(),ui(),Qs(),ai(),Ys(),Ei(),Ei(),Js(),oc=class{static{__name(this,"PgSelectBuilder")}static[ss]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,e.withList&&(this.withList=e.withList),this.distinct=e.distinct}authToken;setToken(e){return this.authToken=e,this}from(e){const t=!!this.fields;let n;return n=this.fields?this.fields:is(e,Ls)?Object.fromEntries(Object.keys(e._.selectedFields).map(t=>[t,e[t]])):is(e,ec)?e[Os].selectedFields:is(e,Zs)?{}:getTableColumns(e),new ic({table:e,fields:n,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}},sc=class extends rc{static{__name(this,"PgSelectQueryBuilderBase")}static[ss]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:e,fields:t,isPartialSelect:n,session:r,dialect:o,withList:s,distinct:i}){super(),this.config={withList:s,table:e,fields:{...t},distinct:i,setOperators:[]},this.isPartialSelect=n,this.session=r,this.dialect=o,this._={selectedFields:t},this.tableName=getTableLikeName(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{}}createJoin(e){return(t,n)=>{const r=this.tableName,o=getTableLikeName(t);if("string"==typeof o&&this.config.joins?.some(e=>e.alias===o))throw new Error(`Alias "${o}" is already used in this query`);if(!this.isPartialSelect&&(1===Object.keys(this.joinsNotNullableMap).length&&"string"==typeof r&&(this.config.fields={[r]:this.config.fields}),"string"==typeof o&&!is(t,Zs))){const e=is(t,Ls)?t._.selectedFields:is(t,ii)?t[Os].selectedFields:t[Gs.Symbol.Columns];this.config.fields[o]=e}if("function"==typeof n&&(n=n(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:n,table:t,joinType:e,alias:o}),"string"==typeof o)switch(e){case"left":this.joinsNotNullableMap[o]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!0;break;case"inner":this.joinsNotNullableMap[o]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!1}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(e,t){return n=>{const r="function"==typeof n?n(ac()):n;if(!haveSameKeys(this.getSelectedFields(),r.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:r}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=n:this.config.orderBy=n}else{const t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}for(e,t={}){return this.config.lockingClause={strength:e,config:t},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){return new Proxy(new Ls(this.getSQL(),this.config.fields,e),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new nc({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}},applyMixins(ic=class extends sc{static{__name(this,"PgSelectBase")}static[ss]="PgSelect";_prepare(e){const{session:t,config:n,dialect:r,joinsNotNullableMap:o,authToken:s}=this;if(!t)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");return Ds.startActiveSpan("drizzle.prepareQuery",()=>{const i=orderSelectedFields(n.fields),a=t.prepareQuery(r.sqlToQuery(this.getSQL()),i,e,!0);return a.joinsNotNullableMap=o,a.setToken(s)})}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=__name(e=>Ds.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute")},[vl]),__name(createSetOperator,"createSetOperator"),ac=__name(()=>({union:lc,unionAll:cc,intersect:uc,intersectAll:dc,except:mc,exceptAll:pc}),"getPgSetOperators"),lc=createSetOperator("union",!1),cc=createSetOperator("union",!0),uc=createSetOperator("intersect",!1),dc=createSetOperator("intersect",!0),mc=createSetOperator("except",!1),pc=createSetOperator("except",!0)}}),Fc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/query-builders/query-builder.js"(){tn(),gs(),bc(),Ec(),Qs(),Oc(),vc=class{static{__name(this,"QueryBuilder")}static[ss]="PgQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=is(e,tc)?e:void 0,this.dialectConfig=is(e,tc)?void 0:e}$with(e){const t=this;return{as:n=>("function"==typeof n&&(n=n(t)),new Proxy(new $s(n.getSQL(),n.getSelectedFields(),e,!0),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}with(...e){const t=this;function select5(n){return new oc({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e})}function selectDistinct(e){return new oc({fields:e??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})}function selectDistinctOn(e,n){return new oc({fields:n??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:e}})}return __name(select5,"select"),__name(selectDistinct,"selectDistinct"),__name(selectDistinctOn,"selectDistinctOn"),{select:select5,selectDistinct:selectDistinct,selectDistinctOn:selectDistinctOn}}select(e){return new oc({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new oc({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new oc({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||(this.dialect=new tc(this.dialectConfig)),this.dialect}}}}),qc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/query-builders/insert.js"(){tn(),gs(),Pl(),ui(),ai(),Ys(),Ei(),Fc(),kc=class{static{__name(this,"PgInsertBuilder")}constructor(e,t,n,r,o){this.table=e,this.session=t,this.dialect=n,this.withList=r,this.overridingSystemValue_=o}static[ss]="PgInsertBuilder";authToken;setToken(e){return this.authToken=e,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(e){if(0===(e=Array.isArray(e)?e:[e]).length)throw new Error("values() must be called with at least one value");const t=e.map(e=>{const t={},n=this.table[Gs.Symbol.Columns];for(const r of Object.keys(e)){const o=e[r];t[r]=is(o,Zs)?o:new ri(o,n[r])}return t});return new Tc(this.table,t,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(e){const t="function"==typeof e?e(new vc):e;if(!is(t,Zs)&&!haveSameKeys(this.table[qs],t._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new Tc(this.table,t,this.session,this.dialect,this.withList,!0)}},Tc=class extends vl{static{__name(this,"PgInsertBase")}constructor(e,t,n,r,o,s,i){super(),this.session=n,this.dialect=r,this.config={table:e,values:t,withList:o,select:s,overridingSystemValue_:i}}static[ss]="PgInsert";config;returning(e=this.config.table[Gs.Symbol.Columns]){return this.config.returning=orderSelectedFields(e),this}onConflictDoNothing(e={}){if(void 0===e.target)this.config.onConflict=sql`do nothing`;else{let t="";t=Array.isArray(e.target)?e.target.map(e=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(e))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(e.target));const n=e.where?sql` where ${e.where}`:void 0;this.config.onConflict=sql`(${sql.raw(t)})${n} do nothing`}return this}onConflictDoUpdate(e){if(e.where&&(e.targetWhere||e.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');const t=e.where?sql` where ${e.where}`:void 0,n=e.targetWhere?sql` where ${e.targetWhere}`:void 0,r=e.setWhere?sql` where ${e.setWhere}`:void 0,o=this.dialect.buildUpdateSet(this.config.table,mapUpdateSet(this.config.table,e.set));let s="";return s=Array.isArray(e.target)?e.target.map(e=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(e))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(e.target)),this.config.onConflict=sql`(${sql.raw(s)})${n} do update set ${o}${t}${r}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return Ds.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=__name(e=>Ds.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute");$dynamic(){return this}}}}),jc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/query-builders/refresh-materialized-view.js"(){tn(),gs(),Pl(),Ys(),_c=class extends vl{static{__name(this,"PgRefreshMaterializedView")}constructor(e,t,n){super(),this.session=t,this.dialect=n,this.config={view:e}}static[ss]="PgRefreshMaterializedView";config;concurrently(){if(void 0!==this.config.withNoData)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(void 0!==this.config.concurrently)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return Ds.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,e,!0))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=__name(e=>Ds.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken)),"execute")}}}),Bc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/query-builders/select.types.js"(){tn()}}),Uc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/query-builders/update.js"(){tn(),gs(),Gl(),Pl(),Ec(),ui(),Qs(),ai(),Ei(),Js(),xc=class{static{__name(this,"PgUpdateBuilder")}constructor(e,t,n,r){this.table=e,this.session=t,this.dialect=n,this.withList=r}static[ss]="PgUpdateBuilder";authToken;setToken(e){return this.authToken=e,this}set(e){return new Pc(this.table,mapUpdateSet(this.table,e),this.session,this.dialect,this.withList).setToken(this.authToken)}},Pc=class extends vl{static{__name(this,"PgUpdateBase")}constructor(e,t,n,r,o){super(),this.session=n,this.dialect=r,this.config={set:t,table:e,withList:o,joins:[]},this.tableName=getTableLikeName(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{}}static[ss]="PgUpdate";config;tableName;joinsNotNullableMap;from(e){const t=getTableLikeName(e);return"string"==typeof t&&(this.joinsNotNullableMap[t]=!0),this.config.from=e,this}getTableLikeFields(e){return is(e,Dl)?e[Gs.Symbol.Columns]:is(e,Ls)?e._.selectedFields:e[Os].selectedFields}createJoin(e){return(t,n)=>{const r=getTableLikeName(t);if("string"==typeof r&&this.config.joins.some(e=>e.alias===r))throw new Error(`Alias "${r}" is already used in this query`);if("function"==typeof n){const e=this.config.from&&!is(this.config.from,Zs)?this.getTableLikeFields(this.config.from):void 0;n=n(new Proxy(this.config.table[Gs.Symbol.Columns],new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),e&&new Proxy(e,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:n,table:t,joinType:e,alias:r}),"string"==typeof r)switch(e){case"left":this.joinsNotNullableMap[r]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[r]=!0;break;case"inner":this.joinsNotNullableMap[r]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[r]=!1}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(e){return this.config.where=e,this}returning(e){if(!e&&(e=Object.assign({},this.config.table[Gs.Symbol.Columns]),this.config.from)){const t=getTableLikeName(this.config.from);if("string"==typeof t&&this.config.from&&!is(this.config.from,Zs)){const n=this.getTableLikeFields(this.config.from);e[t]=n}for(const t of this.config.joins){const n=getTableLikeName(t.table);if("string"==typeof n&&!is(t.table,Zs)){const r=this.getTableLikeFields(t.table);e[n]=r}}}return this.config.returning=orderSelectedFields(e),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){const t=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0);return t.joinsNotNullableMap=this.joinsNotNullableMap,t}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=__name(e=>this._prepare().execute(e,this.authToken),"execute");$dynamic(){return this}}}}),zc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/query-builders/index.js"(){tn(),Al(),qc(),Fc(),jc(),Oc(),Bc(),Uc()}}),Hc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/query-builders/count.js"(){tn(),gs(),ui(),Ac=class _PgCountBuilder extends Zs{static{__name(this,"PgCountBuilder")}constructor(e){super(_PgCountBuilder.buildEmbeddedCount(e.source,e.filters).queryChunks),this.params=e,this.mapWith(Number),this.session=e.session,this.sql=_PgCountBuilder.buildCount(e.source,e.filters)}sql;token;static[ss]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(e,t){return sql`(select count(*) from ${e}${sql.raw(" where ").if(t)}${t})`}static buildCount(e,t){return sql`select count(*) as count from ${e}${sql.raw(" where ").if(t)}${t};`}setToken(e){return this.token=e,this}then(e,t){return Promise.resolve(this.session.count(this.sql,this.token)).then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}}}}),Wc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/query-builders/query.js"(){tn(),gs(),Pl(),gc(),Ys(),Ic=class{static{__name(this,"RelationalQueryBuilder")}constructor(e,t,n,r,o,s,i){this.fullSchema=e,this.schema=t,this.tableNamesMap=n,this.table=r,this.tableConfig=o,this.dialect=s,this.session=i}static[ss]="PgRelationalQueryBuilder";findMany(e){return new Nc(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many")}findFirst(e){return new Nc(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first")}},Nc=class extends vl{static{__name(this,"PgRelationalQuery")}constructor(e,t,n,r,o,s,i,a,l){super(),this.fullSchema=e,this.schema=t,this.tableNamesMap=n,this.table=r,this.tableConfig=o,this.dialect=s,this.session=i,this.config=a,this.mode=l}static[ss]="PgRelationalQuery";_prepare(e){return Ds.startActiveSpan("drizzle.prepareQuery",()=>{const{query:t,builtQuery:n}=this._toSQL();return this.session.prepareQuery(n,void 0,e,!0,(e,n)=>{const r=e.map(e=>mapRelationalRow(this.schema,this.tableConfig,e,t.selection,n));return"first"===this.mode?r[0]:r})})}prepare(e){return this._prepare(e)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){const e=this._getQuery();return{query:e,builtQuery:this.dialect.sqlToQuery(e.sql)}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(e){return this.authToken=e,this}execute(){return Ds.startActiveSpan("drizzle.operation",()=>this._prepare().execute(void 0,this.authToken))}}}}),Gc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/query-builders/raw.js"(){tn(),gs(),Pl(),Rc=class extends vl{static{__name(this,"PgRaw")}constructor(e,t,n,r){super(),this.execute=e,this.sql=t,this.query=n,this.mapBatchResult=r}static[ss]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(e,t){return t?this.mapBatchResult(e):e}_prepare(){return this}isResponseInArrayMode(){return!1}}}}),Vc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/db.js"(){tn(),gs(),zc(),Ec(),ui(),Qs(),Hc(),Wc(),Gc(),jc(),Mc=class{static{__name(this,"PgDatabase")}constructor(e,t,n){if(this.dialect=e,this.session=t,this._=n?{schema:n.schema,fullSchema:n.fullSchema,tableNamesMap:n.tableNamesMap,session:t}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:t},this.query={},this._.schema)for(const[r,o]of Object.entries(this._.schema))this.query[r]=new Ic(n.fullSchema,this._.schema,this._.tableNamesMap,n.fullSchema[r],o,e,t)}static[ss]="PgDatabase";query;$with(e){const t=this;return{as:n=>("function"==typeof n&&(n=n(new vc(t.dialect))),new Proxy(new $s(n.getSQL(),n.getSelectedFields(),e,!0),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}$count(e,t){return new Ac({source:e,filters:t,session:this.session})}with(...e){const t=this;function select5(n){return new oc({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e})}function selectDistinct(n){return new oc({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}function selectDistinctOn(n,r){return new oc({fields:r??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:{on:n}})}function update(n){return new xc(n,t.session,t.dialect,e)}function insert(n){return new kc(n,t.session,t.dialect,e)}function delete_(n){return new kl(n,t.session,t.dialect,e)}return __name(select5,"select"),__name(selectDistinct,"selectDistinct"),__name(selectDistinctOn,"selectDistinctOn"),__name(update,"update"),__name(insert,"insert"),__name(delete_,"delete_"),{select:select5,selectDistinct:selectDistinct,selectDistinctOn:selectDistinctOn,update:update,insert:insert,delete:delete_}}select(e){return new oc({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new oc({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(e,t){return new oc({fields:t??void 0,session:this.session,dialect:this.dialect,distinct:{on:e}})}update(e){return new xc(e,this.session,this.dialect)}insert(e){return new kc(e,this.session,this.dialect)}delete(e){return new kl(e,this.session,this.dialect)}refreshMaterializedView(e){return new _c(e,this.session,this.dialect)}authToken;execute(e){const t="string"==typeof e?sql.raw(e):e.getSQL(),n=this.dialect.sqlToQuery(t),r=this.session.prepareQuery(n,void 0,void 0,!1);return new Rc(()=>r.execute(void 0,this.authToken),t,n,e=>r.mapResult(e,!0))}transaction(e,t){return this.session.transaction(e,t)}}}});function index(e){return new Lc(!1,e)}function uniqueIndex(e){return new Lc(!0,e)}var Qc,Kc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/indexes.js"(){tn(),ui(),gs(),xl(),Lc=class{static{__name(this,"IndexBuilderOn")}constructor(e,t){this.unique=e,this.name=t}static[ss]="PgIndexBuilderOn";on(...e){return new $c(e.map(e=>{if(is(e,Zs))return e;const t=new _s(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),t}),this.unique,!1,this.name)}onOnly(...e){return new $c(e.map(e=>{if(is(e,Zs))return e;const t=new _s(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=e.defaultConfig,t}),this.unique,!0,this.name)}using(e,...t){return new $c(t.map(e=>{if(is(e,Zs))return e;const t=new _s(e.name,!!e.keyAsName,e.columnType,e.indexConfig);return e.indexConfig=JSON.parse(JSON.stringify(e.defaultConfig)),t}),this.unique,!0,this.name,e)}},$c=class{static{__name(this,"IndexBuilder")}static[ss]="PgIndexBuilder";config;constructor(e,t,n,r,o="btree"){this.config={name:r,columns:e,unique:t,only:n,method:o}}concurrently(){return this.config.concurrently=!0,this}with(e){return this.config.with=e,this}where(e){return this.config.where=e,this}build(e){return new Dc(this.config,e)}},Dc=class{static{__name(this,"Index")}static[ss]="PgIndex";config;constructor(e,t){this.config={...e,table:t}}},__name(index,"index"),__name(uniqueIndex,"uniqueIndex")}});function pgPolicy(e,t){return new Qc(e,t)}var Yc,Jc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/policies.js"(){tn(),gs(),Qc=class{static{__name(this,"PgPolicy")}constructor(e,t){this.name=e,t&&(this.as=t.as,this.for=t.for,this.to=t.to,this.using=t.using,this.withCheck=t.withCheck)}static[ss]="PgPolicy";as;for;to;using;withCheck;_linkedTable;link(e){return this._linkedTable=e,this}},__name(pgPolicy,"pgPolicy")}}),Xc=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/roles.js"(){tn(),gs(),class{static{__name(this,"PgRole")}constructor(e,t){this.name=e,t&&(this.createDb=t.createDb,this.createRole=t.createRole,this.inherit=t.inherit)}static[ss]="PgRole";_existing;createDb;createRole;inherit;existing(){return this._existing=!0,this}}}});function pgSequenceWithSchema(e,t,n){return new Yc(e,t,n)}var Zc,eu,tu,nu,ru,ou,su,iu,au,lu,cu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/sequence.js"(){tn(),gs(),Yc=class{static{__name(this,"PgSequence")}constructor(e,t,n){this.seqName=e,this.seqOptions=t,this.schema=n}static[ss]="PgSequence"},__name(pgSequenceWithSchema,"pgSequenceWithSchema")}}),uu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/view-common.js"(){tn(),Zc=Symbol.for("drizzle:PgViewConfig")}});function pgViewWithSchema(e,t,n){return t?new nu(e,t,n):new tu(e,n)}function pgMaterializedViewWithSchema(e,t,n){return t?new su(e,t,n):new ou(e,n)}var du,mu,pu,gu,hu,fu,yu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/view.js"(){tn(),gs(),Ec(),Ei(),Fc(),Gl(),Sc(),uu(),eu=class{static{__name(this,"DefaultViewBuilderCore")}constructor(e,t){this.name=e,this.schema=t}static[ss]="PgDefaultViewBuilderCore";config={};with(e){return this.config.with=e,this}},tu=class extends eu{static{__name(this,"ViewBuilder")}static[ss]="PgViewBuilder";as(e){"function"==typeof e&&(e=e(new vc));const t=new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),n=new Proxy(e.getSelectedFields(),t);return new Proxy(new iu({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:n,query:e.getSQL().inlineParams()}}),t)}},nu=class extends eu{static{__name(this,"ManualViewBuilder")}static[ss]="PgManualViewBuilder";columns;constructor(e,t,n){super(e,n),this.columns=getTableColumns(Ol(e,t))}existing(){return new Proxy(new iu({pgConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new iu({pgConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}},ru=class{static{__name(this,"MaterializedViewBuilderCore")}constructor(e,t){this.name=e,this.schema=t}static[ss]="PgMaterializedViewBuilderCore";config={};using(e){return this.config.using=e,this}with(e){return this.config.with=e,this}tablespace(e){return this.config.tablespace=e,this}withNoData(){return this.config.withNoData=!0,this}},ou=class extends ru{static{__name(this,"MaterializedViewBuilder")}static[ss]="PgMaterializedViewBuilder";as(e){"function"==typeof e&&(e=e(new vc));const t=new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),n=new Proxy(e.getSelectedFields(),t);return new Proxy(new lu({pgConfig:{with:this.config.with,using:this.config.using,tablespace:this.config.tablespace,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:n,query:e.getSQL().inlineParams()}}),t)}},su=class extends ru{static{__name(this,"ManualMaterializedViewBuilder")}static[ss]="PgManualMaterializedViewBuilder";columns;constructor(e,t,n){super(e,n),this.columns=getTableColumns(Ol(e,t))}existing(){return new Proxy(new lu({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new lu({pgConfig:{tablespace:this.config.tablespace,using:this.config.using,with:this.config.with,withNoData:this.config.withNoData},config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}},iu=class extends ec{static{__name(this,"PgView")}static[ss]="PgView";[Zc];constructor({pgConfig:e,config:t}){super(t),e&&(this[Zc]={with:e.with})}},au=Symbol.for("drizzle:PgMaterializedViewConfig"),lu=class extends ec{static{__name(this,"PgMaterializedView")}static[ss]="PgMaterializedView";[au];constructor({pgConfig:e,config:t}){super(t),this[au]={with:e?.with,using:e?.using,tablespace:e?.tablespace,withNoData:e?.withNoData}}},__name(pgViewWithSchema,"pgViewWithSchema"),__name(pgMaterializedViewWithSchema,"pgMaterializedViewWithSchema")}}),wu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/schema.js"(){tn(),gs(),ui(),Vs(),cu(),Gl(),yu(),class{static{__name(this,"PgSchema")}constructor(e){this.schemaName=e}static[ss]="PgSchema";table=__name((e,t,n)=>pgTableWithSchema(e,t,n,this.schemaName),"table");view=__name((e,t)=>pgViewWithSchema(e,t,this.schemaName),"view");materializedView=__name((e,t)=>pgMaterializedViewWithSchema(e,t,this.schemaName),"materializedView");enum=__name((e,t)=>pgEnumWithSchema(e,t,this.schemaName),"enum");sequence=__name((e,t)=>pgSequenceWithSchema(e,t,this.schemaName),"sequence");getSQL(){return new Zs([sql.identifier(this.schemaName)])}shouldOmitSQLParens(){return!0}}}}),Su=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/session.js"(){tn(),gs(),Ml(),wc(),Ys(),Vc(),class{static{__name(this,"PgPreparedQuery")}constructor(e){this.query=e}authToken;getQuery(){return this.query}mapResult(e,t){return e}setToken(e){return this.authToken=e,this}static[ss]="PgPreparedQuery";joinsNotNullableMap},class{static{__name(this,"PgSession")}constructor(e){this.dialect=e}static[ss]="PgSession";execute(e,t){return Ds.startActiveSpan("drizzle.operation",()=>Ds.startActiveSpan("drizzle.prepareQuery",()=>this.prepareQuery(this.dialect.sqlToQuery(e),void 0,void 0,!1)).setToken(t).execute(void 0,t))}all(e){return this.prepareQuery(this.dialect.sqlToQuery(e),void 0,void 0,!1).all()}async count(e,t){const n=await this.execute(e,t);return Number(n[0].count)}},class extends Mc{static{__name(this,"PgTransaction")}constructor(e,t,n,r=0){super(e,t,n),this.schema=n,this.nestedIndex=r}static[ss]="PgTransaction";rollback(){throw new Nl}getTransactionConfigSQL(e){const t=[];return e.isolationLevel&&t.push(`isolation level ${e.isolationLevel}`),e.accessMode&&t.push(e.accessMode),"boolean"==typeof e.deferrable&&t.push(e.deferrable?"deferrable":"not deferrable"),sql.raw(t.join(" "))}setTransaction(e){return this.session.execute(sql`set transaction ${this.getTransactionConfigSQL(e)}`)}}}}),bu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/subquery.js"(){tn()}}),Eu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/utils.js"(){tn()}}),Cu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/utils/index.js"(){tn(),Rs()}}),vu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/pg-core/index.js"(){tn(),gi(),hi(),xl(),Vc(),bc(),ws(),Kc(),Jc(),Vl(),zc(),Xc(),wu(),cu(),Su(),bu(),Gl(),Cs(),Eu(),Cu(),uu(),yu()}}),ku=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/expressions.js"(){tn(),Zl()}}),Tu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/logger.js"(){tn(),gs(),du=class{static{__name(this,"ConsoleLogWriter")}static[ss]="ConsoleLogWriter";write(e){console.log(e)}},class{static{__name(this,"DefaultLogger")}static[ss]="DefaultLogger";writer;constructor(e){this.writer=e?.writer??new du}logQuery(e,t){const n=t.map(e=>{try{return JSON.stringify(e)}catch{return String(e)}}),r=n.length?` -- params: [${n.join(", ")}]`:"";this.writer.write(`Query: ${e}${r}`)}},class{static{__name(this,"NoopLogger")}static[ss]="NoopLogger";logQuery(){}}}}),_u=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/operations.js"(){tn()}}),xu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/index.js"(){tn(),pi(),fs(),hs(),gs(),Ml(),ku(),Tu(),_u(),Pl(),gc(),wc(),Qs(),ai(),Ei(),Js()}}),Pu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/alias.js"(){tn()}}),Au=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/checks.js"(){tn(),gs(),class{static{__name(this,"CheckBuilder")}constructor(e,t){this.name=e,this.value=t}static[ss]="MySqlCheckBuilder";brand;build(e){return new mu(e,this)}},mu=class{static{__name(this,"Check")}constructor(e,t){this.table=e,this.name=t.name,this.value=t.value}static[ss]="MySqlCheck";name;value}}}),Iu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/foreign-keys.js"(){tn(),gs(),ys(),pu=class{static{__name(this,"ForeignKeyBuilder")}static[ss]="MySqlForeignKeyBuilder";reference;_onUpdate;_onDelete;constructor(e,t){this.reference=()=>{const{name:t,columns:n,foreignColumns:r}=e();return{name:t,columns:n,foreignTable:r[0].table,foreignColumns:r}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e,this}onDelete(e){return this._onDelete=e,this}build(e){return new gu(e,this)}},gu=class{static{__name(this,"ForeignKey")}constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[ss]="MySqlForeignKey";reference;onUpdate;onDelete;getName(){const{name:e,columns:t,foreignColumns:n}=this.reference(),r=t.map(e=>e.name),o=n.map(e=>e.name),s=[this.table[ds],...r,n[0].table[ds],...o];return e??`${s.join("_")}_fk`}}}});function uniqueKeyName2(e,t){return`${e[ds]}_${t.join("_")}_unique`}var Nu,Ru,Mu,Lu,$u,Du,Ou,Fu,qu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/unique-constraint.js"(){tn(),gs(),ys(),__name(uniqueKeyName2,"uniqueKeyName"),hu=class{static{__name(this,"UniqueConstraintBuilder")}constructor(e,t){this.name=t,this.columns=e}static[ss]="MySqlUniqueConstraintBuilder";columns;build(e){return new fu(e,this.columns,this.name)}},class{static{__name(this,"UniqueOnConstraintBuilder")}static[ss]="MySqlUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new hu(e,this.name)}},fu=class{static{__name(this,"UniqueConstraint")}constructor(e,t,n){this.table=e,this.columns=t,this.name=n??uniqueKeyName2(this.table,this.columns.map(e=>e.name))}static[ss]="MySqlUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}}}}),ju=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/common.js"(){tn(),fs(),hs(),gs(),Iu(),qu(),Nu=class extends us{static{__name(this,"MySqlColumnBuilder")}static[ss]="MySqlColumnBuilder";foreignKeyConfigs=[];references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e){return this.config.isUnique=!0,this.config.uniqueName=e,this}generatedAlwaysAs(e,t){return this.config.generated={as:e,type:"always",mode:t?.mode??"virtual"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:n,actions:r})=>((n,r)=>{const o=new pu(()=>{const t=n();return{columns:[e],foreignColumns:[t]}});return r.onUpdate&&o.onUpdate(r.onUpdate),r.onDelete&&o.onDelete(r.onDelete),o.build(t)})(n,r))}},Ru=class extends cs{static{__name(this,"MySqlColumn")}constructor(e,t){t.uniqueName||(t.uniqueName=uniqueKeyName2(e,[t.name])),super(e,t),this.table=e}static[ss]="MySqlColumn"},Mu=class extends Nu{static{__name(this,"MySqlColumnBuilderWithAutoIncrement")}static[ss]="MySqlColumnBuilderWithAutoIncrement";constructor(e,t,n){super(e,t,n),this.config.autoIncrement=!1}autoincrement(){return this.config.autoIncrement=!0,this.config.hasDefault=!0,this}},Lu=class extends Ru{static{__name(this,"MySqlColumnWithAutoIncrement")}static[ss]="MySqlColumnWithAutoIncrement";autoIncrement=this.config.autoIncrement}}});function bigint2(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"number"===r.mode?new $u(n,r.unsigned):new Ou(n,r.unsigned)}var Bu,Uu,zu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/bigint.js"(){tn(),gs(),Ei(),ju(),$u=class extends Mu{static{__name(this,"MySqlBigInt53Builder")}static[ss]="MySqlBigInt53Builder";constructor(e,t=!1){super(e,"number","MySqlBigInt53"),this.config.unsigned=t}build(e){return new Du(e,this.config)}},Du=class extends Lu{static{__name(this,"MySqlBigInt53")}static[ss]="MySqlBigInt53";getSQLType(){return"bigint"+(this.config.unsigned?" unsigned":"")}mapFromDriverValue(e){return"number"==typeof e?e:Number(e)}},Ou=class extends Mu{static{__name(this,"MySqlBigInt64Builder")}static[ss]="MySqlBigInt64Builder";constructor(e,t=!1){super(e,"bigint","MySqlBigInt64"),this.config.unsigned=t}build(e){return new Fu(e,this.config)}},Fu=class extends Lu{static{__name(this,"MySqlBigInt64")}static[ss]="MySqlBigInt64";getSQLType(){return"bigint"+(this.config.unsigned?" unsigned":"")}mapFromDriverValue(e){return BigInt(e)}},__name(bigint2,"bigint")}});function binary(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Bu(n,r.length)}var Hu,Wu,Gu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/binary.js"(){tn(),gs(),Ei(),ju(),Bu=class extends Nu{static{__name(this,"MySqlBinaryBuilder")}static[ss]="MySqlBinaryBuilder";constructor(e,t){super(e,"string","MySqlBinary"),this.config.length=t}build(e){return new Uu(e,this.config)}},Uu=class extends Ru{static{__name(this,"MySqlBinary")}static[ss]="MySqlBinary";length=this.config.length;getSQLType(){return void 0===this.length?"binary":`binary(${this.length})`}},__name(binary,"binary")}});function boolean2(e){return new Hu(e??"")}var Vu,Qu,Ku=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/boolean.js"(){tn(),gs(),ju(),Hu=class extends Nu{static{__name(this,"MySqlBooleanBuilder")}static[ss]="MySqlBooleanBuilder";constructor(e){super(e,"boolean","MySqlBoolean")}build(e){return new Wu(e,this.config)}},Wu=class extends Ru{static{__name(this,"MySqlBoolean")}static[ss]="MySqlBoolean";getSQLType(){return"boolean"}mapFromDriverValue(e){return"boolean"==typeof e?e:1===e}},__name(boolean2,"boolean")}});function char2(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Vu(n,r)}var Yu,Ju,Xu=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/char.js"(){tn(),gs(),Ei(),ju(),Vu=class extends Nu{static{__name(this,"MySqlCharBuilder")}static[ss]="MySqlCharBuilder";constructor(e,t){super(e,"string","MySqlChar"),this.config.length=t.length,this.config.enum=t.enum}build(e){return new Qu(e,this.config)}},Qu=class extends Ru{static{__name(this,"MySqlChar")}static[ss]="MySqlChar";length=this.config.length;enumValues=this.config.enum;getSQLType(){return void 0===this.length?"char":`char(${this.length})`}},__name(char2,"char")}});function customType2(e){return(t,n)=>{const{name:r,config:o}=getColumnNameAndConfig(t,n);return new Yu(r,o,e)}}var Zu,ed,td,nd,rd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/custom.js"(){tn(),gs(),Ei(),ju(),Yu=class extends Nu{static{__name(this,"MySqlCustomColumnBuilder")}static[ss]="MySqlCustomColumnBuilder";constructor(e,t,n){super(e,"custom","MySqlCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=n}build(e){return new Ju(e,this.config)}},Ju=class extends Ru{static{__name(this,"MySqlCustomColumn")}static[ss]="MySqlCustomColumn";sqlName;mapTo;mapFrom;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return"function"==typeof this.mapFrom?this.mapFrom(e):e}mapToDriverValue(e){return"function"==typeof this.mapTo?this.mapTo(e):e}},__name(customType2,"customType")}});function date2(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"string"===r?.mode?new td(n):new Zu(n)}var od,sd,id,ad,ld=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/date.js"(){tn(),gs(),Ei(),ju(),Zu=class extends Nu{static{__name(this,"MySqlDateBuilder")}static[ss]="MySqlDateBuilder";constructor(e){super(e,"date","MySqlDate")}build(e){return new ed(e,this.config)}},ed=class extends Ru{static{__name(this,"MySqlDate")}static[ss]="MySqlDate";constructor(e,t){super(e,t)}getSQLType(){return"date"}mapFromDriverValue(e){return new Date(e)}},td=class extends Nu{static{__name(this,"MySqlDateStringBuilder")}static[ss]="MySqlDateStringBuilder";constructor(e){super(e,"string","MySqlDateString")}build(e){return new nd(e,this.config)}},nd=class extends Ru{static{__name(this,"MySqlDateString")}static[ss]="MySqlDateString";constructor(e,t){super(e,t)}getSQLType(){return"date"}},__name(date2,"date")}});function datetime(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"string"===r?.mode?new id(n,r):new od(n,r)}var cd,ud,dd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/datetime.js"(){tn(),gs(),Ei(),ju(),od=class extends Nu{static{__name(this,"MySqlDateTimeBuilder")}static[ss]="MySqlDateTimeBuilder";constructor(e,t){super(e,"date","MySqlDateTime"),this.config.fsp=t?.fsp}build(e){return new sd(e,this.config)}},sd=class extends Ru{static{__name(this,"MySqlDateTime")}static[ss]="MySqlDateTime";fsp;constructor(e,t){super(e,t),this.fsp=t.fsp}getSQLType(){return"datetime"+(void 0===this.fsp?"":`(${this.fsp})`)}mapToDriverValue(e){return e.toISOString().replace("T"," ").replace("Z","")}mapFromDriverValue(e){return new Date(e.replace(" ","T")+"Z")}},id=class extends Nu{static{__name(this,"MySqlDateTimeStringBuilder")}static[ss]="MySqlDateTimeStringBuilder";constructor(e,t){super(e,"string","MySqlDateTimeString"),this.config.fsp=t?.fsp}build(e){return new ad(e,this.config)}},ad=class extends Ru{static{__name(this,"MySqlDateTimeString")}static[ss]="MySqlDateTimeString";fsp;constructor(e,t){super(e,t),this.fsp=t.fsp}getSQLType(){return"datetime"+(void 0===this.fsp?"":`(${this.fsp})`)}},__name(datetime,"datetime")}});function decimal(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new cd(n,r)}var md,pd,gd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/decimal.js"(){tn(),gs(),Ei(),ju(),cd=class extends Mu{static{__name(this,"MySqlDecimalBuilder")}static[ss]="MySqlDecimalBuilder";constructor(e,t){super(e,"string","MySqlDecimal"),this.config.precision=t?.precision,this.config.scale=t?.scale,this.config.unsigned=t?.unsigned}build(e){return new ud(e,this.config)}},ud=class extends Lu{static{__name(this,"MySqlDecimal")}static[ss]="MySqlDecimal";precision=this.config.precision;scale=this.config.scale;unsigned=this.config.unsigned;getSQLType(){let e="";return void 0!==this.precision&&void 0!==this.scale?e+=`decimal(${this.precision},${this.scale})`:void 0===this.precision?e+="decimal":e+=`decimal(${this.precision})`,e="decimal(10,0)"===e||"decimal(10)"===e?"decimal":e,this.unsigned?`${e} unsigned`:e}},__name(decimal,"decimal")}});function double(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new md(n,r)}var hd,fd,yd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/double.js"(){tn(),gs(),Ei(),ju(),md=class extends Mu{static{__name(this,"MySqlDoubleBuilder")}static[ss]="MySqlDoubleBuilder";constructor(e,t){super(e,"number","MySqlDouble"),this.config.precision=t?.precision,this.config.scale=t?.scale,this.config.unsigned=t?.unsigned}build(e){return new pd(e,this.config)}},pd=class extends Lu{static{__name(this,"MySqlDouble")}static[ss]="MySqlDouble";precision=this.config.precision;scale=this.config.scale;unsigned=this.config.unsigned;getSQLType(){let e="";return void 0!==this.precision&&void 0!==this.scale?e+=`double(${this.precision},${this.scale})`:void 0===this.precision?e+="double":e+=`double(${this.precision})`,this.unsigned?`${e} unsigned`:e}},__name(double,"double")}});function mysqlEnum(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);if(0===r.length)throw new Error(`You have an empty array for "${n}" enum values`);return new hd(n,r)}var wd,Sd,bd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/enum.js"(){tn(),gs(),Ei(),ju(),hd=class extends Nu{static{__name(this,"MySqlEnumColumnBuilder")}static[ss]="MySqlEnumColumnBuilder";constructor(e,t){super(e,"string","MySqlEnumColumn"),this.config.enumValues=t}build(e){return new fd(e,this.config)}},fd=class extends Ru{static{__name(this,"MySqlEnumColumn")}static[ss]="MySqlEnumColumn";enumValues=this.config.enumValues;getSQLType(){return`enum(${this.enumValues.map(e=>`'${e}'`).join(",")})`}},__name(mysqlEnum,"mysqlEnum")}});function float(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new wd(n,r)}var Ed,Cd,vd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/float.js"(){tn(),gs(),Ei(),ju(),wd=class extends Mu{static{__name(this,"MySqlFloatBuilder")}static[ss]="MySqlFloatBuilder";constructor(e,t){super(e,"number","MySqlFloat"),this.config.precision=t?.precision,this.config.scale=t?.scale,this.config.unsigned=t?.unsigned}build(e){return new Sd(e,this.config)}},Sd=class extends Lu{static{__name(this,"MySqlFloat")}static[ss]="MySqlFloat";precision=this.config.precision;scale=this.config.scale;unsigned=this.config.unsigned;getSQLType(){let e="";return void 0!==this.precision&&void 0!==this.scale?e+=`float(${this.precision},${this.scale})`:void 0===this.precision?e+="float":e+=`float(${this.precision})`,this.unsigned?`${e} unsigned`:e}},__name(float,"float")}});function int(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Ed(n,r)}var kd,Td,_d=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/int.js"(){tn(),gs(),Ei(),ju(),Ed=class extends Mu{static{__name(this,"MySqlIntBuilder")}static[ss]="MySqlIntBuilder";constructor(e,t){super(e,"number","MySqlInt"),this.config.unsigned=!!t&&t.unsigned}build(e){return new Cd(e,this.config)}},Cd=class extends Lu{static{__name(this,"MySqlInt")}static[ss]="MySqlInt";getSQLType(){return"int"+(this.config.unsigned?" unsigned":"")}mapFromDriverValue(e){return"string"==typeof e?Number(e):e}},__name(int,"int")}});function json2(e){return new kd(e??"")}var xd,Pd,Ad=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/json.js"(){tn(),gs(),ju(),kd=class extends Nu{static{__name(this,"MySqlJsonBuilder")}static[ss]="MySqlJsonBuilder";constructor(e){super(e,"json","MySqlJson")}build(e){return new Td(e,this.config)}},Td=class extends Ru{static{__name(this,"MySqlJson")}static[ss]="MySqlJson";getSQLType(){return"json"}mapToDriverValue(e){return JSON.stringify(e)}},__name(json2,"json")}});function mediumint(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new xd(n,r)}var Id,Nd,Rd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/mediumint.js"(){tn(),gs(),Ei(),ju(),xd=class extends Mu{static{__name(this,"MySqlMediumIntBuilder")}static[ss]="MySqlMediumIntBuilder";constructor(e,t){super(e,"number","MySqlMediumInt"),this.config.unsigned=!!t&&t.unsigned}build(e){return new Pd(e,this.config)}},Pd=class extends Lu{static{__name(this,"MySqlMediumInt")}static[ss]="MySqlMediumInt";getSQLType(){return"mediumint"+(this.config.unsigned?" unsigned":"")}mapFromDriverValue(e){return"string"==typeof e?Number(e):e}},__name(mediumint,"mediumint")}});function real2(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Id(n,r)}var Md,Ld,$d=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/real.js"(){tn(),gs(),Ei(),ju(),Id=class extends Mu{static{__name(this,"MySqlRealBuilder")}static[ss]="MySqlRealBuilder";constructor(e,t){super(e,"number","MySqlReal"),this.config.precision=t?.precision,this.config.scale=t?.scale}build(e){return new Nd(e,this.config)}},Nd=class extends Lu{static{__name(this,"MySqlReal")}static[ss]="MySqlReal";precision=this.config.precision;scale=this.config.scale;getSQLType(){return void 0!==this.precision&&void 0!==this.scale?`real(${this.precision}, ${this.scale})`:void 0===this.precision?"real":`real(${this.precision})`}},__name(real2,"real")}});function serial2(e){return new Md(e??"")}var Dd,Od,Fd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/serial.js"(){tn(),gs(),ju(),Md=class extends Mu{static{__name(this,"MySqlSerialBuilder")}static[ss]="MySqlSerialBuilder";constructor(e){super(e,"number","MySqlSerial"),this.config.hasDefault=!0,this.config.autoIncrement=!0}build(e){return new Ld(e,this.config)}},Ld=class extends Lu{static{__name(this,"MySqlSerial")}static[ss]="MySqlSerial";getSQLType(){return"serial"}mapFromDriverValue(e){return"string"==typeof e?Number(e):e}},__name(serial2,"serial")}});function smallint2(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Dd(n,r)}var qd,jd,Bd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/smallint.js"(){tn(),gs(),Ei(),ju(),Dd=class extends Mu{static{__name(this,"MySqlSmallIntBuilder")}static[ss]="MySqlSmallIntBuilder";constructor(e,t){super(e,"number","MySqlSmallInt"),this.config.unsigned=!!t&&t.unsigned}build(e){return new Od(e,this.config)}},Od=class extends Lu{static{__name(this,"MySqlSmallInt")}static[ss]="MySqlSmallInt";getSQLType(){return"smallint"+(this.config.unsigned?" unsigned":"")}mapFromDriverValue(e){return"string"==typeof e?Number(e):e}},__name(smallint2,"smallint")}});function text2(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new qd(n,"text",r)}function tinytext(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new qd(n,"tinytext",r)}function mediumtext(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new qd(n,"mediumtext",r)}function longtext(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new qd(n,"longtext",r)}var Ud,zd,Hd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/text.js"(){tn(),gs(),Ei(),ju(),qd=class extends Nu{static{__name(this,"MySqlTextBuilder")}static[ss]="MySqlTextBuilder";constructor(e,t,n){super(e,"string","MySqlText"),this.config.textType=t,this.config.enumValues=n.enum}build(e){return new jd(e,this.config)}},jd=class extends Ru{static{__name(this,"MySqlText")}static[ss]="MySqlText";textType=this.config.textType;enumValues=this.config.enumValues;getSQLType(){return this.textType}},__name(text2,"text"),__name(tinytext,"tinytext"),__name(mediumtext,"mediumtext"),__name(longtext,"longtext")}});function time2(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Ud(n,r)}var Wd,Gd,Vd,Qd,Kd,Yd,Jd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/time.js"(){tn(),gs(),Ei(),ju(),Ud=class extends Nu{static{__name(this,"MySqlTimeBuilder")}static[ss]="MySqlTimeBuilder";constructor(e,t){super(e,"string","MySqlTime"),this.config.fsp=t?.fsp}build(e){return new zd(e,this.config)}},zd=class extends Ru{static{__name(this,"MySqlTime")}static[ss]="MySqlTime";fsp=this.config.fsp;getSQLType(){return"time"+(void 0===this.fsp?"":`(${this.fsp})`)}},__name(time2,"time")}}),Xd=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/date.common.js"(){tn(),gs(),ui(),ju(),Wd=class extends Nu{static{__name(this,"MySqlDateColumnBaseBuilder")}static[ss]="MySqlDateColumnBuilder";defaultNow(){return this.default(sql`(now())`)}onUpdateNow(){return this.config.hasOnUpdateNow=!0,this.config.hasDefault=!0,this}},Gd=class extends Ru{static{__name(this,"MySqlDateBaseColumn")}static[ss]="MySqlDateColumn";hasOnUpdateNow=this.config.hasOnUpdateNow}}});function timestamp2(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"string"===r?.mode?new Kd(n,r):new Vd(n,r)}var Zd,em,tm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/timestamp.js"(){tn(),gs(),Ei(),Xd(),Vd=class extends Wd{static{__name(this,"MySqlTimestampBuilder")}static[ss]="MySqlTimestampBuilder";constructor(e,t){super(e,"date","MySqlTimestamp"),this.config.fsp=t?.fsp}build(e){return new Qd(e,this.config)}},Qd=class extends Gd{static{__name(this,"MySqlTimestamp")}static[ss]="MySqlTimestamp";fsp=this.config.fsp;getSQLType(){return"timestamp"+(void 0===this.fsp?"":`(${this.fsp})`)}mapFromDriverValue(e){return new Date(e+"+0000")}mapToDriverValue(e){return e.toISOString().slice(0,-1).replace("T"," ")}},Kd=class extends Wd{static{__name(this,"MySqlTimestampStringBuilder")}static[ss]="MySqlTimestampStringBuilder";constructor(e,t){super(e,"string","MySqlTimestampString"),this.config.fsp=t?.fsp}build(e){return new Yd(e,this.config)}},Yd=class extends Gd{static{__name(this,"MySqlTimestampString")}static[ss]="MySqlTimestampString";fsp=this.config.fsp;getSQLType(){return"timestamp"+(void 0===this.fsp?"":`(${this.fsp})`)}},__name(timestamp2,"timestamp")}});function tinyint(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new Zd(n,r)}var nm,rm,om=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/tinyint.js"(){tn(),gs(),Ei(),ju(),Zd=class extends Mu{static{__name(this,"MySqlTinyIntBuilder")}static[ss]="MySqlTinyIntBuilder";constructor(e,t){super(e,"number","MySqlTinyInt"),this.config.unsigned=!!t&&t.unsigned}build(e){return new em(e,this.config)}},em=class extends Lu{static{__name(this,"MySqlTinyInt")}static[ss]="MySqlTinyInt";getSQLType(){return"tinyint"+(this.config.unsigned?" unsigned":"")}mapFromDriverValue(e){return"string"==typeof e?Number(e):e}},__name(tinyint,"tinyint")}});function varbinary(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new nm(n,r)}var sm,im,am=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/varbinary.js"(){tn(),gs(),Ei(),ju(),nm=class extends Nu{static{__name(this,"MySqlVarBinaryBuilder")}static[ss]="MySqlVarBinaryBuilder";constructor(e,t){super(e,"string","MySqlVarBinary"),this.config.length=t?.length}build(e){return new rm(e,this.config)}},rm=class extends Ru{static{__name(this,"MySqlVarBinary")}static[ss]="MySqlVarBinary";length=this.config.length;getSQLType(){return void 0===this.length?"varbinary":`varbinary(${this.length})`}},__name(varbinary,"varbinary")}});function varchar2(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return new sm(n,r)}var lm,cm,um=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/varchar.js"(){tn(),gs(),Ei(),ju(),sm=class extends Nu{static{__name(this,"MySqlVarCharBuilder")}static[ss]="MySqlVarCharBuilder";constructor(e,t){super(e,"string","MySqlVarChar"),this.config.length=t.length,this.config.enum=t.enum}build(e){return new im(e,this.config)}},im=class extends Ru{static{__name(this,"MySqlVarChar")}static[ss]="MySqlVarChar";length=this.config.length;enumValues=this.config.enum;getSQLType(){return void 0===this.length?"varchar":`varchar(${this.length})`}},__name(varchar2,"varchar")}});function year(e){return new lm(e??"")}var dm,mm,pm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/year.js"(){tn(),gs(),ju(),lm=class extends Nu{static{__name(this,"MySqlYearBuilder")}static[ss]="MySqlYearBuilder";constructor(e){super(e,"number","MySqlYear")}build(e){return new cm(e,this.config)}},cm=class extends Ru{static{__name(this,"MySqlYear")}static[ss]="MySqlYear";getSQLType(){return"year"}},__name(year,"year")}}),gm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/index.js"(){tn(),zu(),Gu(),Ku(),Xu(),ju(),rd(),ld(),dd(),gd(),yd(),bd(),vd(),_d(),Ad(),Rd(),$d(),Fd(),Bd(),Hd(),Jd(),tm(),om(),am(),um(),pm()}}),hm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/query-builders/count.js"(){tn(),gs(),ui(),dm=class _MySqlCountBuilder extends Zs{static{__name(this,"MySqlCountBuilder")}constructor(e){super(_MySqlCountBuilder.buildEmbeddedCount(e.source,e.filters).queryChunks),this.params=e,this.mapWith(Number),this.session=e.session,this.sql=_MySqlCountBuilder.buildCount(e.source,e.filters)}sql;static[ss]="MySqlCountBuilder";[Symbol.toStringTag]="MySqlCountBuilder";session;static buildEmbeddedCount(e,t){return sql`(select count(*) from ${e}${sql.raw(" where ").if(t)}${t})`}static buildCount(e,t){return sql`select count(*) as count from ${e}${sql.raw(" where ").if(t)}${t}`}then(e,t){return Promise.resolve(this.session.count(this.sql)).then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}}}}),fm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/query-builders/delete.js"(){tn(),gs(),Pl(),Ec(),ai(),mm=class extends vl{static{__name(this,"MySqlDeleteBase")}constructor(e,t,n,r){super(),this.table=e,this.session=t,this.dialect=n,this.config={table:e,withList:r}}static[ss]="MySqlDelete";config;where(e){return this.config.where=e,this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.table[Gs.Symbol.Columns],new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(t)?t:[t];this.config.orderBy=n}else{const t=e;this.config.orderBy=t}return this}limit(e){return this.config.limit=e,this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}prepare(){return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning)}execute=__name(e=>this.prepare().execute(e),"execute");createIterator=__name(()=>{const e=this;return async function*(t){yield*e.prepare().iterator(t)}},"createIterator");iterator=this.createIterator();$dynamic(){return this}}}});function getMySqlColumnBuilders(){return{bigint:bigint2,binary:binary,boolean:boolean2,char:char2,customType:customType2,date:date2,datetime:datetime,decimal:decimal,double:double,mysqlEnum:mysqlEnum,float:float,int:int,json:json2,mediumint:mediumint,real:real2,serial:serial2,smallint:smallint2,text:text2,time:time2,timestamp:timestamp2,tinyint:tinyint,varbinary:varbinary,varchar:varchar2,year:year,longtext:longtext,mediumtext:mediumtext,tinytext:tinytext}}var ym,wm,Sm,bm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/columns/all.js"(){tn(),zu(),Gu(),Ku(),Xu(),rd(),ld(),dd(),gd(),yd(),bd(),vd(),_d(),Ad(),Rd(),$d(),Fd(),Bd(),Hd(),Jd(),tm(),om(),am(),um(),pm(),__name(getMySqlColumnBuilders,"getMySqlColumnBuilders")}});function mysqlTableWithSchema(e,t,n,r,o=e){const s=new wm(e,r,o),i="function"==typeof t?t(getMySqlColumnBuilders()):t,a=Object.fromEntries(Object.entries(i).map(([e,t])=>{const n=t;n.setName(e);const r=n.build(s);return s[ym].push(...n.buildForeignKeys(r,s)),[e,r]})),l=Object.assign(s,a);return l[Gs.Symbol.Columns]=a,l[Gs.Symbol.ExtraConfigColumns]=a,n&&(l[wm.Symbol.ExtraConfigBuilder]=n),l}var Em,Cm,vm,km,Tm,_m,xm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/table.js"(){tn(),gs(),ai(),bm(),ym=Symbol.for("drizzle:MySqlInlineForeignKeys"),wm=class extends Gs{static{__name(this,"MySqlTable")}static[ss]="MySqlTable";static Symbol=Object.assign({},Gs.Symbol,{InlineForeignKeys:ym});[Gs.Symbol.Columns];[ym]=[];[Gs.Symbol.ExtraConfigBuilder]=void 0},__name(mysqlTableWithSchema,"mysqlTableWithSchema"),Sm=__name((e,t,n)=>mysqlTableWithSchema(e,t,n,void 0,e),"mysqlTable")}}),Pm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/view-base.js"(){tn(),gs(),ui(),Em=class extends ii{static{__name(this,"MySqlViewBase")}static[ss]="MySqlViewBase"}}}),Am=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/dialect.js"(){tn(),pi(),Rl(),hs(),gs(),Ml(),ku(),gc(),ui(),Qs(),ai(),Ei(),Js(),ju(),xm(),Pm(),Cm=class{static{__name(this,"MySqlDialect")}static[ss]="MySqlDialect";casing;constructor(e){this.casing=new Tl(e?.casing)}async migrate(e,t,n){const r=n.migrationsTable??"__drizzle_migrations",o=sql`
9
9
  create table if not exists ${sql.identifier(r)} (
10
10
  id serial primary key,
11
11
  hash text not null,
12
12
  created_at bigint
13
13
  )
14
- `;await t.execute(o);const s=(await t.all(sql`select id, hash, created_at from ${sql.identifier(r)} order by created_at desc limit 1`))[0];await t.transaction(async t=>{for(const n of e)if(!s||Number(s.created_at)<n.folderMillis){for(const e of n.sql)await t.execute(sql.raw(e));await t.execute(sql`insert into ${sql.identifier(r)} (\`hash\`, \`created_at\`) values(${n.hash}, ${n.folderMillis})`)}})}escapeName(e){return`\`${e}\``}escapeParam(e){return"?"}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;const t=[sql`with `];for(const[n,r]of e.entries())t.push(sql`${sql.identifier(r._.alias)} as (${r._.sql})`),n<e.length-1&&t.push(sql`, `);return t.push(sql` `),sql.join(t)}buildDeleteQuery({table:e,where:t,returning:n,withList:r,limit:o,orderBy:s}){const i=this.buildWithCTE(r),a=n?sql` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0;return sql`${i}delete from ${e}${t?sql` where ${t}`:void 0}${this.buildOrderBy(s)}${this.buildLimit(o)}${a}`}buildUpdateSet(e,t){const n=e[Gs.Symbol.Columns],r=Object.keys(n).filter(e=>void 0!==t[e]||void 0!==n[e]?.onUpdateFn),o=r.length;return sql.join(r.flatMap((e,r)=>{const s=n[e],i=t[e]??sql.param(s.onUpdateFn(),s),a=sql`${sql.identifier(this.casing.getColumnCasing(s))} = ${i}`;return r<o-1?[a,sql.raw(", ")]:[a]}))}buildUpdateQuery({table:e,set:t,where:n,returning:r,withList:o,limit:s,orderBy:i}){const a=this.buildWithCTE(o),l=this.buildUpdateSet(e,t),u=r?sql` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0;return sql`${a}update ${e} set ${l}${n?sql` where ${n}`:void 0}${this.buildOrderBy(i)}${this.buildLimit(s)}${u}`}buildSelection(e,{isSingleTable:t=!1}={}){const n=e.length,r=e.flatMap(({field:e},r)=>{const o=[];if(is(e,Zs.Aliased)&&e.isSelectionField)o.push(sql.identifier(e.fieldAlias));else if(is(e,Zs.Aliased)||is(e,Zs)){const n=is(e,Zs.Aliased)?e.sql:e;t?o.push(new Zs(n.queryChunks.map(e=>is(e,Ru)?sql.identifier(this.casing.getColumnCasing(e)):e))):o.push(n),is(e,Zs.Aliased)&&o.push(sql` as ${sql.identifier(e.fieldAlias)}`)}else is(e,cs)&&(t?o.push(sql.identifier(this.casing.getColumnCasing(e))):o.push(e));return r<n-1&&o.push(sql`, `),o});return sql.join(r)}buildLimit(e){return"object"==typeof e||"number"==typeof e&&e>=0?sql` limit ${e}`:void 0}buildOrderBy(e){return e&&e.length>0?sql` order by ${sql.join(e,sql`, `)}`:void 0}buildIndex({indexes:e,indexFor:t}){return e&&e.length>0?sql` ${sql.raw(t)} INDEX (${sql.raw(e.join(", "))})`:void 0}buildSelectQuery({withList:e,fields:t,fieldsFlat:n,where:r,having:o,table:s,joins:i,orderBy:a,groupBy:l,limit:u,offset:d,lockingClause:m,distinct:g,setOperators:h,useIndex:f,forceIndex:y,ignoreIndex:w}){const S=n??orderSelectedFields(t);for(const e of S)if(is(e.field,cs)&&getTableName(e.field.table)!==(is(s,Ls)?s._.alias:is(s,Em)?s[Os].name:is(s,Zs)?void 0:getTableName(s))&&!(e=>i?.some(({alias:t})=>t===(e[Gs.Symbol.IsAlias]?getTableName(e):e[Gs.Symbol.BaseName])))(e.field.table)){const t=getTableName(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${t}"."${e.field.name}", but the table "${t}" is not part of the query! Did you forget to join it?`)}const E=!i||0===i.length,C=this.buildWithCTE(e),v=g?sql` distinct`:void 0,k=this.buildSelection(S,{isSingleTable:E}),T=is(s,Gs)&&s[Gs.Symbol.OriginalName]!==s[Gs.Symbol.Name]?sql`${sql.identifier(s[Gs.Symbol.OriginalName])} ${sql.identifier(s[Gs.Symbol.Name])}`:s,_=[];if(i)for(const[e,t]of i.entries()){0===e&&_.push(sql` `);const n=t.table,r=t.lateral?sql` lateral`:void 0;if(is(n,wm)){const e=n[wm.Symbol.Name],o=n[wm.Symbol.Schema],s=n[wm.Symbol.OriginalName],i=e===s?void 0:t.alias,a=this.buildIndex({indexes:t.useIndex,indexFor:"USE"}),l=this.buildIndex({indexes:t.forceIndex,indexFor:"FORCE"}),u=this.buildIndex({indexes:t.ignoreIndex,indexFor:"IGNORE"});_.push(sql`${sql.raw(t.joinType)} join${r} ${o?sql`${sql.identifier(o)}.`:void 0}${sql.identifier(s)}${a}${l}${u}${i&&sql` ${sql.identifier(i)}`} on ${t.on}`)}else if(is(n,ii)){const e=n[Os].name,o=n[Os].schema,s=n[Os].originalName,i=e===s?void 0:t.alias;_.push(sql`${sql.raw(t.joinType)} join${r} ${o?sql`${sql.identifier(o)}.`:void 0}${sql.identifier(s)}${i&&sql` ${sql.identifier(i)}`} on ${t.on}`)}else _.push(sql`${sql.raw(t.joinType)} join${r} ${n} on ${t.on}`);e<i.length-1&&_.push(sql` `)}const x=sql.join(_),P=r?sql` where ${r}`:void 0,A=o?sql` having ${o}`:void 0,I=this.buildOrderBy(a),N=l&&l.length>0?sql` group by ${sql.join(l,sql`, `)}`:void 0,R=this.buildLimit(u),M=d?sql` offset ${d}`:void 0,L=this.buildIndex({indexes:f,indexFor:"USE"}),$=this.buildIndex({indexes:y,indexFor:"FORCE"}),D=this.buildIndex({indexes:w,indexFor:"IGNORE"});let O;if(m){const{config:e,strength:t}=m;O=sql` for ${sql.raw(t)}`,e.noWait?O.append(sql` no wait`):e.skipLocked&&O.append(sql` skip locked`)}const F=sql`${C}select${v} ${k} from ${T}${L}${$}${D}${x}${P}${N}${A}${I}${R}${M}${O}`;return h.length>0?this.buildSetOperations(F,h):F}buildSetOperations(e,t){const[n,...r]=t;if(!n)throw new Error("Cannot pass undefined values to any set operator");return 0===r.length?this.buildSetOperationQuery({leftSelect:e,setOperator:n}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:n}),r)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:n,rightSelect:r,limit:o,orderBy:s,offset:i}}){const a=sql`(${e.getSQL()}) `,l=sql`(${r.getSQL()})`;let u;if(s&&s.length>0){const e=[];for(const t of s)if(is(t,Ru))e.push(sql.identifier(this.casing.getColumnCasing(t)));else if(is(t,Zs)){for(let e=0;e<t.queryChunks.length;e++){const n=t.queryChunks[e];is(n,Ru)&&(t.queryChunks[e]=sql.identifier(this.casing.getColumnCasing(n)))}e.push(sql`${t}`)}else e.push(sql`${t}`);u=sql` order by ${sql.join(e,sql`, `)} `}const d="object"==typeof o||"number"==typeof o&&o>=0?sql` limit ${o}`:void 0,m=sql.raw(`${t} ${n?"all ":""}`);return sql`${a}${m}${l}${u}${d}${i?sql` offset ${i}`:void 0}`}buildInsertQuery({table:e,values:t,ignore:n,onConflict:r,select:o}){const s=[],i=e[Gs.Symbol.Columns],a=Object.entries(i).filter(([e,t])=>!t.shouldDisableInsert()),l=a.map(([,e])=>sql.identifier(this.casing.getColumnCasing(e))),u=[];if(o){const e=t;is(e,Zs)?s.push(e):s.push(e.getSQL())}else{const e=t;s.push(sql.raw("values "));for(const[t,n]of e.entries()){const r={},o=[];for(const[e,t]of a){const s=n[e];if(void 0===s||is(s,ri)&&void 0===s.value)if(void 0!==t.defaultFn){const n=t.defaultFn();r[e]=n;const s=is(n,Zs)?n:sql.param(n,t);o.push(s)}else if(t.default||void 0===t.onUpdateFn)o.push(sql`default`);else{const e=t.onUpdateFn(),n=is(e,Zs)?e:sql.param(e,t);o.push(n)}else t.defaultFn&&is(s,ri)&&(r[e]=s.value),o.push(s)}u.push(r),s.push(o),t<e.length-1&&s.push(sql`, `)}}const d=sql.join(s);return{sql:sql`insert${n?sql` ignore`:void 0} into ${e} ${l} ${d}${r?sql` on duplicate key ${r}`:void 0}`,generatedIds:u}}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,invokeSource:t})}buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:n,table:r,tableConfig:o,queryConfig:s,tableAlias:i,nestedQueryRelation:a,joinOn:l}){let u,d,m,g,h=[];const f=[];if(!0===s)h=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:aliasedTableColumn(t,i),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{const r=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,aliasedTableColumn(t,i)]));if(s.where){const e="function"==typeof s.where?s.where(r,getOperators()):s.where;g=e&&mapColumnsInSQLToAlias(e,i)}const a=[];let l=[];if(s.columns){let e=!1;for(const[t,n]of Object.entries(s.columns))void 0!==n&&t in o.columns&&(e||!0!==n||(e=!0),l.push(t));l.length>0&&(l=e?l.filter(e=>!0===s.columns?.[e]):Object.keys(o.columns).filter(e=>!l.includes(e)))}else l=Object.keys(o.columns);for(const e of l){const t=o.columns[e];a.push({tsKey:e,value:t})}let y,w=[];if(s.with&&(w=Object.entries(s.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]}))),s.extras){y="function"==typeof s.extras?s.extras(r,{sql:sql}):s.extras;for(const[e,t]of Object.entries(y))a.push({tsKey:e,value:mapColumnsInAliasedSQLToAlias(t,i)})}for(const{tsKey:e,value:t}of a)h.push({dbKey:is(t,Zs.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:is(t,cs)?aliasedTableColumn(t,i):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let S="function"==typeof s.orderBy?s.orderBy(r,getOrderByOperators()):s.orderBy??[];Array.isArray(S)||(S=[S]),m=S.map(e=>is(e,cs)?aliasedTableColumn(e,i):mapColumnsInSQLToAlias(e,i)),u=s.limit,d=s.offset;for(const{tsKey:r,queryConfig:o,relation:s}of w){const a=normalizeRelation(t,n,s),l=n[getTableUniqueName(s.referencedTable)],u=`${i}_${r}`,d=and(...a.fields.map((e,t)=>jl(aliasedTableColumn(a.references[t],u),aliasedTableColumn(e,i)))),m=this.buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:n,table:e[l],tableConfig:t[l],queryConfig:is(s,Yl)?!0===o?{limit:1}:{...o,limit:1}:o,tableAlias:u,joinOn:d,nestedQueryRelation:s}),g=sql`${sql.identifier(u)}.${sql.identifier("data")}`.as(r);f.push({on:sql`true`,table:new Ls(m.sql,{},u),alias:u,joinType:"left",lateral:!0}),h.push({dbKey:r,tsKey:r,field:g,relationTableTsKey:l,isJson:!0,selection:m.selection})}}if(0===h.length)throw new Il({message:`No fields selected for table "${o.tsName}" ("${i}")`});let y;if(g=and(l,g),a){let e=sql`json_array(${sql.join(h.map(({field:e,tsKey:t,isJson:n})=>n?sql`${sql.identifier(`${i}_${t}`)}.${sql.identifier("data")}`:is(e,Zs.Aliased)?e.sql:e),sql`, `)})`;is(a,Jl)&&(e=sql`coalesce(json_arrayagg(${e}), json_array())`);const t=[{dbKey:"data",tsKey:"data",field:e.as("data"),isJson:!0,relationTableTsKey:o.tsName,selection:h}];void 0!==u||void 0!==d||(m?.length??0)>0?(y=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:[{path:[],field:sql.raw("*")},...(m?.length??0)>0?[{path:[],field:sql`row_number() over (order by ${sql.join(m,sql`, `)})`}]:[]],where:g,limit:u,offset:d,setOperators:[]}),g=void 0,u=void 0,d=void 0,m=void 0):y=aliasedTable(r,i),y=this.buildSelectQuery({table:is(y,wm)?y:new Ls(y,{},i),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),joins:f,where:g,limit:u,offset:d,orderBy:m,setOperators:[]})}else y=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:h.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),joins:f,where:g,limit:u,offset:d,orderBy:m,setOperators:[]});return{tableTsKey:o.tsName,sql:y,selection:h}}buildRelationalQueryWithoutLateralSubqueries({fullSchema:e,schema:t,tableNamesMap:n,table:r,tableConfig:o,queryConfig:s,tableAlias:i,nestedQueryRelation:a,joinOn:l}){let u,d,m,g,h=[],f=[];if(!0===s)h=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:aliasedTableColumn(t,i),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{const r=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,aliasedTableColumn(t,i)]));if(s.where){const e="function"==typeof s.where?s.where(r,getOperators()):s.where;m=e&&mapColumnsInSQLToAlias(e,i)}const a=[];let l=[];if(s.columns){let e=!1;for(const[t,n]of Object.entries(s.columns))void 0!==n&&t in o.columns&&(e||!0!==n||(e=!0),l.push(t));l.length>0&&(l=e?l.filter(e=>!0===s.columns?.[e]):Object.keys(o.columns).filter(e=>!l.includes(e)))}else l=Object.keys(o.columns);for(const e of l){const t=o.columns[e];a.push({tsKey:e,value:t})}let g,y=[];if(s.with&&(y=Object.entries(s.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]}))),s.extras){g="function"==typeof s.extras?s.extras(r,{sql:sql}):s.extras;for(const[e,t]of Object.entries(g))a.push({tsKey:e,value:mapColumnsInAliasedSQLToAlias(t,i)})}for(const{tsKey:e,value:t}of a)h.push({dbKey:is(t,Zs.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:is(t,cs)?aliasedTableColumn(t,i):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let w="function"==typeof s.orderBy?s.orderBy(r,getOrderByOperators()):s.orderBy??[];Array.isArray(w)||(w=[w]),f=w.map(e=>is(e,cs)?aliasedTableColumn(e,i):mapColumnsInSQLToAlias(e,i)),u=s.limit,d=s.offset;for(const{tsKey:r,queryConfig:o,relation:s}of y){const a=normalizeRelation(t,n,s),l=n[getTableUniqueName(s.referencedTable)],u=`${i}_${r}`,d=and(...a.fields.map((e,t)=>jl(aliasedTableColumn(a.references[t],u),aliasedTableColumn(e,i)))),m=this.buildRelationalQueryWithoutLateralSubqueries({fullSchema:e,schema:t,tableNamesMap:n,table:e[l],tableConfig:t[l],queryConfig:is(s,Yl)?!0===o?{limit:1}:{...o,limit:1}:o,tableAlias:u,joinOn:d,nestedQueryRelation:s});let g=sql`(${m.sql})`;is(s,Jl)&&(g=sql`coalesce(${g}, json_array())`);const f=g.as(r);h.push({dbKey:r,tsKey:r,field:f,relationTableTsKey:l,isJson:!0,selection:m.selection})}}if(0===h.length)throw new Il({message:`No fields selected for table "${o.tsName}" ("${i}"). You need to have at least one item in "columns", "with" or "extras". If you need to select all columns, omit the "columns" key or set it to undefined.`});if(m=and(l,m),a){let e=sql`json_array(${sql.join(h.map(({field:e})=>is(e,Ru)?sql.identifier(this.casing.getColumnCasing(e)):is(e,Zs.Aliased)?e.sql:e),sql`, `)})`;is(a,Jl)&&(e=sql`json_arrayagg(${e})`);const t=[{dbKey:"data",tsKey:"data",field:e,isJson:!0,relationTableTsKey:o.tsName,selection:h}];void 0!==u||void 0!==d||f.length>0?(g=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:[{path:[],field:sql.raw("*")},...f.length>0?[{path:[],field:sql`row_number() over (order by ${sql.join(f,sql`, `)})`}]:[]],where:m,limit:u,offset:d,setOperators:[]}),m=void 0,u=void 0,d=void 0,f=void 0):g=aliasedTable(r,i),g=this.buildSelectQuery({table:is(g,wm)?g:new Ls(g,{},i),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),where:m,limit:u,offset:d,orderBy:f,setOperators:[]})}else g=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:h.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),where:m,limit:u,offset:d,orderBy:f,setOperators:[]});return{tableTsKey:o.tsName,sql:g,selection:h}}}}}),Im=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/indexes.js"(){tn(),gs(),class{static{__name(this,"IndexBuilderOn")}constructor(e,t){this.name=e,this.unique=t}static[ss]="MySqlIndexBuilderOn";on(...e){return new vm(this.name,e,this.unique)}},vm=class{static{__name(this,"IndexBuilder")}static[ss]="MySqlIndexBuilder";config;constructor(e,t,n){this.config={name:e,columns:t,unique:n}}using(e){return this.config.using=e,this}algorythm(e){return this.config.algorythm=e,this}lock(e){return this.config.lock=e,this}build(e){return new km(this.config,e)}},km=class{static{__name(this,"Index")}static[ss]="MySqlIndex";config;constructor(e,t){this.config={...e,table:t}}}}}),Nm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/primary-keys.js"(){tn(),gs(),xm(),class{static{__name(this,"PrimaryKeyBuilder")}static[ss]="MySqlPrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new Tm(e,this.columns,this.name)}},Tm=class{static{__name(this,"PrimaryKey")}constructor(e,t,n){this.table=e,this.columns=t,this.name=n}static[ss]="MySqlPrimaryKey";columns;name;getName(){return this.name??`${this.table[wm.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}}}}),Rm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/view-common.js"(){tn(),_m=Symbol.for("drizzle:MySqlViewConfig")}});function convertIndexToString(e){return e.map(e=>"object"==typeof e?e.config.name:e)}function toArray(e){return Array.isArray(e)?e:[e]}var Mm,Lm,$m,Dm,Om,Fm,qm,jm,Bm,Um,zm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/utils.js"(){tn(),__name(convertIndexToString,"convertIndexToString"),__name(toArray,"toArray")}});function createSetOperator2(e,t){return(n,r,...o)=>{const s=[r,...o].map(n=>({type:e,isAll:t,rightSelect:n}));for(const e of s)if(!haveSameKeys(n.getSelectedFields(),e.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return n.addSetOperators(s)}}var Hm,Wm,Gm,Vm,Qm,Km,Ym,Jm,Xm,Zm,ep,tp,np=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/query-builders/select.js"(){tn(),gs(),xm(),Cc(),Pl(),Ec(),ui(),Qs(),ai(),Ei(),Js(),zm(),Pm(),Mm=class{static{__name(this,"MySqlSelectBuilder")}static[ss]="MySqlSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,e.withList&&(this.withList=e.withList),this.distinct=e.distinct}from(e,t){const n=!!this.fields;let r;r=this.fields?this.fields:is(e,Ls)?Object.fromEntries(Object.keys(e._.selectedFields).map(t=>[t,e[t]])):is(e,Em)?e[Os].selectedFields:is(e,Zs)?{}:getTableColumns(e);let o=[],s=[],i=[];return is(e,wm)&&t&&"string"!=typeof t&&(t.useIndex&&(o=convertIndexToString(toArray(t.useIndex))),t.forceIndex&&(s=convertIndexToString(toArray(t.forceIndex))),t.ignoreIndex&&(i=convertIndexToString(toArray(t.ignoreIndex)))),new $m({table:e,fields:r,isPartialSelect:n,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct,useIndex:o,forceIndex:s,ignoreIndex:i})}},Lm=class extends rc{static{__name(this,"MySqlSelectQueryBuilderBase")}static[ss]="MySqlSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:e,fields:t,isPartialSelect:n,session:r,dialect:o,withList:s,distinct:i,useIndex:a,forceIndex:l,ignoreIndex:u}){super(),this.config={withList:s,table:e,fields:{...t},distinct:i,setOperators:[],useIndex:a,forceIndex:l,ignoreIndex:u},this.isPartialSelect=n,this.session=r,this.dialect=o,this._={selectedFields:t},this.tableName=getTableLikeName(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{}}createJoin(e){return(t,n,r)=>{const o=this.tableName,s=getTableLikeName(t);if("string"==typeof s&&this.config.joins?.some(e=>e.alias===s))throw new Error(`Alias "${s}" is already used in this query`);if(!this.isPartialSelect&&(1===Object.keys(this.joinsNotNullableMap).length&&"string"==typeof o&&(this.config.fields={[o]:this.config.fields}),"string"==typeof s&&!is(t,Zs))){const e=is(t,Ls)?t._.selectedFields:is(t,ii)?t[Os].selectedFields:t[Gs.Symbol.Columns];this.config.fields[s]=e}"function"==typeof n&&(n=n(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]);let i=[],a=[],l=[];if(is(t,wm)&&r&&"string"!=typeof r&&(r.useIndex&&(i=convertIndexToString(toArray(r.useIndex))),r.forceIndex&&(a=convertIndexToString(toArray(r.forceIndex))),r.ignoreIndex&&(l=convertIndexToString(toArray(r.ignoreIndex)))),this.config.joins.push({on:n,table:t,joinType:e,alias:s,useIndex:i,forceIndex:a,ignoreIndex:l}),"string"==typeof s)switch(e){case"left":this.joinsNotNullableMap[s]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[s]=!0;break;case"inner":this.joinsNotNullableMap[s]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[s]=!1}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(e,t){return n=>{const r="function"==typeof n?n(Dm()):n;if(!haveSameKeys(this.getSelectedFields(),r.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:r}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=n:this.config.orderBy=n}else{const t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}for(e,t={}){return this.config.lockingClause={strength:e,config:t},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){return new Proxy(new Ls(this.getSQL(),this.config.fields,e),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new nc({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}},applyMixins($m=class extends Lm{static{__name(this,"MySqlSelectBase")}static[ss]="MySqlSelect";prepare(){if(!this.session)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");const e=orderSelectedFields(this.config.fields),t=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),e);return t.joinsNotNullableMap=this.joinsNotNullableMap,t}execute=__name(e=>this.prepare().execute(e),"execute");createIterator=__name(()=>{const e=this;return async function*(t){yield*e.prepare().iterator(t)}},"createIterator");iterator=this.createIterator()},[vl]),__name(createSetOperator2,"createSetOperator"),Dm=__name(()=>({union:Om,unionAll:Fm,intersect:qm,intersectAll:jm,except:Bm,exceptAll:Um}),"getMySqlSetOperators"),Om=createSetOperator2("union",!1),Fm=createSetOperator2("union",!0),qm=createSetOperator2("intersect",!1),jm=createSetOperator2("intersect",!0),Bm=createSetOperator2("except",!1),Um=createSetOperator2("except",!0)}}),rp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/query-builders/query-builder.js"(){tn(),gs(),Am(),Ec(),Qs(),np(),Hm=class{static{__name(this,"QueryBuilder")}static[ss]="MySqlQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=is(e,Cm)?e:void 0,this.dialectConfig=is(e,Cm)?void 0:e}$with(e){const t=this;return{as:n=>("function"==typeof n&&(n=n(t)),new Proxy(new $s(n.getSQL(),n.getSelectedFields(),e,!0),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}with(...e){const t=this;function select5(n){return new Mm({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e})}function selectDistinct(n){return new Mm({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e,distinct:!0})}return __name(select5,"select"),__name(selectDistinct,"selectDistinct"),{select:select5,selectDistinct:selectDistinct}}select(e){return new Mm({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new Mm({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){return this.dialect||(this.dialect=new Cm(this.dialectConfig)),this.dialect}}}}),op=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/query-builders/insert.js"(){tn(),gs(),Pl(),ui(),ai(),Ei(),rp(),Wm=class{static{__name(this,"MySqlInsertBuilder")}constructor(e,t,n){this.table=e,this.session=t,this.dialect=n}static[ss]="MySqlInsertBuilder";shouldIgnore=!1;ignore(){return this.shouldIgnore=!0,this}values(e){if(0===(e=Array.isArray(e)?e:[e]).length)throw new Error("values() must be called with at least one value");const t=e.map(e=>{const t={},n=this.table[Gs.Symbol.Columns];for(const r of Object.keys(e)){const o=e[r];t[r]=is(o,Zs)?o:new ri(o,n[r])}return t});return new Gm(this.table,t,this.shouldIgnore,this.session,this.dialect)}select(e){const t="function"==typeof e?e(new Hm):e;if(!is(t,Zs)&&!haveSameKeys(this.table[qs],t._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new Gm(this.table,t,this.shouldIgnore,this.session,this.dialect,!0)}},Gm=class extends vl{static{__name(this,"MySqlInsertBase")}constructor(e,t,n,r,o,s){super(),this.session=r,this.dialect=o,this.config={table:e,values:t,select:s,ignore:n}}static[ss]="MySqlInsert";config;onDuplicateKeyUpdate(e){const t=this.dialect.buildUpdateSet(this.config.table,mapUpdateSet(this.config.table,e.set));return this.config.onConflict=sql`update ${t}`,this}$returningId(){const e=[];for(const[t,n]of Object.entries(this.config.table[Gs.Symbol.Columns]))n.primary&&e.push({field:n,path:[t]});return this.config.returning=e,this}getSQL(){return this.dialect.buildInsertQuery(this.config).sql}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}prepare(){const{sql:e,generatedIds:t}=this.dialect.buildInsertQuery(this.config);return this.session.prepareQuery(this.dialect.sqlToQuery(e),void 0,void 0,t,this.config.returning)}execute=__name(e=>this.prepare().execute(e),"execute");createIterator=__name(()=>{const e=this;return async function*(t){yield*e.prepare().iterator(t)}},"createIterator");iterator=this.createIterator();$dynamic(){return this}}}}),sp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/query-builders/select.types.js"(){tn()}}),ip=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/query-builders/update.js"(){tn(),gs(),Pl(),Ec(),ai(),Ei(),Vm=class{static{__name(this,"MySqlUpdateBuilder")}constructor(e,t,n,r){this.table=e,this.session=t,this.dialect=n,this.withList=r}static[ss]="MySqlUpdateBuilder";set(e){return new Qm(this.table,mapUpdateSet(this.table,e),this.session,this.dialect,this.withList)}},Qm=class extends vl{static{__name(this,"MySqlUpdateBase")}constructor(e,t,n,r,o){super(),this.session=n,this.dialect=r,this.config={set:t,table:e,withList:o}}static[ss]="MySqlUpdate";config;where(e){return this.config.where=e,this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.table[Gs.Symbol.Columns],new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(t)?t:[t];this.config.orderBy=n}else{const t=e;this.config.orderBy=t}return this}limit(e){return this.config.limit=e,this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}prepare(){return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning)}execute=__name(e=>this.prepare().execute(e),"execute");createIterator=__name(()=>{const e=this;return async function*(t){yield*e.prepare().iterator(t)}},"createIterator");iterator=this.createIterator();$dynamic(){return this}}}}),ap=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/query-builders/index.js"(){tn(),fm(),op(),rp(),np(),sp(),ip()}}),lp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/query-builders/query.js"(){tn(),gs(),Pl(),gc(),Km=class{static{__name(this,"RelationalQueryBuilder")}constructor(e,t,n,r,o,s,i,a){this.fullSchema=e,this.schema=t,this.tableNamesMap=n,this.table=r,this.tableConfig=o,this.dialect=s,this.session=i,this.mode=a}static[ss]="MySqlRelationalQueryBuilder";findMany(e){return new Ym(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many",this.mode)}findFirst(e){return new Ym(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first",this.mode)}},Ym=class extends vl{static{__name(this,"MySqlRelationalQuery")}constructor(e,t,n,r,o,s,i,a,l,u){super(),this.fullSchema=e,this.schema=t,this.tableNamesMap=n,this.table=r,this.tableConfig=o,this.dialect=s,this.session=i,this.config=a,this.queryMode=l,this.mode=u}static[ss]="MySqlRelationalQuery";prepare(){const{query:e,builtQuery:t}=this._toSQL();return this.session.prepareQuery(t,void 0,t=>{const n=t.map(t=>mapRelationalRow(this.schema,this.tableConfig,t,e.selection));return"first"===this.queryMode?n[0]:n})}_getQuery(){return"planetscale"===this.mode?this.dialect.buildRelationalQueryWithoutLateralSubqueries({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}):this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}_toSQL(){const e=this._getQuery();return{builtQuery:this.dialect.sqlToQuery(e.sql),query:e}}getSQL(){return this._getQuery().sql}toSQL(){return this._toSQL().builtQuery}execute(){return this.prepare().execute()}}}}),cp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/db.js"(){tn(),gs(),Ec(),ui(),Qs(),hm(),ap(),lp(),Jm=class{static{__name(this,"MySqlDatabase")}constructor(e,t,n,r){if(this.dialect=e,this.session=t,this.mode=r,this._=n?{schema:n.schema,fullSchema:n.fullSchema,tableNamesMap:n.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={},this._.schema)for(const[r,o]of Object.entries(this._.schema))this.query[r]=new Km(n.fullSchema,this._.schema,this._.tableNamesMap,n.fullSchema[r],o,e,t,this.mode)}static[ss]="MySqlDatabase";query;$with(e){const t=this;return{as:n=>("function"==typeof n&&(n=n(new Hm(t.dialect))),new Proxy(new $s(n.getSQL(),n.getSelectedFields(),e,!0),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}$count(e,t){return new dm({source:e,filters:t,session:this.session})}with(...e){const t=this;function select5(n){return new Mm({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e})}function selectDistinct(n){return new Mm({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}function update(n){return new Vm(n,t.session,t.dialect,e)}function delete_(n){return new mm(n,t.session,t.dialect,e)}return __name(select5,"select"),__name(selectDistinct,"selectDistinct"),__name(update,"update"),__name(delete_,"delete_"),{select:select5,selectDistinct:selectDistinct,update:update,delete:delete_}}select(e){return new Mm({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new Mm({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(e){return new Vm(e,this.session,this.dialect)}insert(e){return new Wm(e,this.session,this.dialect)}delete(e){return new mm(e,this.session,this.dialect)}execute(e){return this.session.execute("string"==typeof e?sql.raw(e):e.getSQL())}transaction(e,t){return this.session.transaction(e,t)}}}});function mysqlViewWithSchema(e,t,n){return t?new ep(e,t,n):new Zm(e,n)}var up,dp,mp,pp,gp,hp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/view.js"(){tn(),gs(),Ec(),Ei(),rp(),xm(),Pm(),Rm(),Xm=class{static{__name(this,"ViewBuilderCore")}constructor(e,t){this.name=e,this.schema=t}static[ss]="MySqlViewBuilder";config={};algorithm(e){return this.config.algorithm=e,this}sqlSecurity(e){return this.config.sqlSecurity=e,this}withCheckOption(e){return this.config.withCheckOption=e??"cascaded",this}},Zm=class extends Xm{static{__name(this,"ViewBuilder")}static[ss]="MySqlViewBuilder";as(e){"function"==typeof e&&(e=e(new Hm));const t=new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),n=new Proxy(e.getSelectedFields(),t);return new Proxy(new tp({mysqlConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:n,query:e.getSQL().inlineParams()}}),t)}},ep=class extends Xm{static{__name(this,"ManualViewBuilder")}static[ss]="MySqlManualViewBuilder";columns;constructor(e,t,n){super(e,n),this.columns=getTableColumns(Sm(e,t))}existing(){return new Proxy(new tp({mysqlConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new tp({mysqlConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}},tp=class extends Em{static{__name(this,"MySqlView")}static[ss]="MySqlView";[_m];constructor({mysqlConfig:e,config:t}){super(t),this[_m]=e}},__name(mysqlViewWithSchema,"mysqlViewWithSchema")}}),fp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/schema.js"(){tn(),gs(),xm(),hp(),class{static{__name(this,"MySqlSchema")}constructor(e){this.schemaName=e}static[ss]="MySqlSchema";table=__name((e,t,n)=>mysqlTableWithSchema(e,t,n,this.schemaName),"table");view=__name((e,t)=>mysqlViewWithSchema(e,t,this.schemaName),"view")}}}),yp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/session.js"(){tn(),gs(),Ml(),ui(),cp(),class{static{__name(this,"MySqlPreparedQuery")}static[ss]="MySqlPreparedQuery";joinsNotNullableMap},class{static{__name(this,"MySqlSession")}constructor(e){this.dialect=e}static[ss]="MySqlSession";execute(e){return this.prepareQuery(this.dialect.sqlToQuery(e),void 0).execute()}async count(e){const t=await this.execute(e);return Number(t[0][0].count)}getSetTransactionSQL(e){const t=[];return e.isolationLevel&&t.push(`isolation level ${e.isolationLevel}`),t.length?sql`set transaction ${sql.raw(t.join(" "))}`:void 0}getStartTransactionSQL(e){const t=[];return e.withConsistentSnapshot&&t.push("with consistent snapshot"),e.accessMode&&t.push(e.accessMode),t.length?sql`start transaction ${sql.raw(t.join(" "))}`:void 0}},class extends Jm{static{__name(this,"MySqlTransaction")}constructor(e,t,n,r,o){super(e,t,n,o),this.schema=n,this.nestedIndex=r}static[ss]="MySqlTransaction";rollback(){throw new Nl}}}}),wp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/subquery.js"(){tn()}}),Sp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/mysql-core/index.js"(){tn(),Pu(),Au(),gm(),cp(),Am(),Iu(),Im(),Nm(),ap(),fp(),yp(),wp(),xm(),qu(),zm(),Rm(),hp()}}),bp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/alias.js"(){tn()}}),Ep=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/checks.js"(){tn(),gs(),class{static{__name(this,"CheckBuilder")}constructor(e,t){this.name=e,this.value=t}static[ss]="SQLiteCheckBuilder";brand;build(e){return new up(e,this)}},up=class{static{__name(this,"Check")}constructor(e,t){this.table=e,this.name=t.name,this.value=t.value}static[ss]="SQLiteCheck";name;value}}}),Cp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/foreign-keys.js"(){tn(),gs(),ys(),dp=class{static{__name(this,"ForeignKeyBuilder")}static[ss]="SQLiteForeignKeyBuilder";reference;_onUpdate;_onDelete;constructor(e,t){this.reference=()=>{const{name:t,columns:n,foreignColumns:r}=e();return{name:t,columns:n,foreignTable:r[0].table,foreignColumns:r}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e,this}onDelete(e){return this._onDelete=e,this}build(e){return new mp(e,this)}},mp=class{static{__name(this,"ForeignKey")}constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[ss]="SQLiteForeignKey";reference;onUpdate;onDelete;getName(){const{name:e,columns:t,foreignColumns:n}=this.reference(),r=t.map(e=>e.name),o=n.map(e=>e.name),s=[this.table[ds],...r,n[0].table[ds],...o];return e??`${s.join("_")}_fk`}}}});function uniqueKeyName3(e,t){return`${e[ds]}_${t.join("_")}_unique`}var vp,kp,Tp,_p,xp,Pp,Ap,Ip,Np=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/unique-constraint.js"(){tn(),gs(),ys(),__name(uniqueKeyName3,"uniqueKeyName"),pp=class{static{__name(this,"UniqueConstraintBuilder")}constructor(e,t){this.name=t,this.columns=e}static[ss]="SQLiteUniqueConstraintBuilder";columns;build(e){return new gp(e,this.columns,this.name)}},class{static{__name(this,"UniqueOnConstraintBuilder")}static[ss]="SQLiteUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new pp(e,this.name)}},gp=class{static{__name(this,"UniqueConstraint")}constructor(e,t,n){this.table=e,this.columns=t,this.name=n??uniqueKeyName3(this.table,this.columns.map(e=>e.name))}static[ss]="SQLiteUniqueConstraint";columns;name;getName(){return this.name}}}}),Rp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/columns/common.js"(){tn(),fs(),hs(),gs(),Cp(),Np(),vp=class extends us{static{__name(this,"SQLiteColumnBuilder")}static[ss]="SQLiteColumnBuilder";foreignKeyConfigs=[];references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e){return this.config.isUnique=!0,this.config.uniqueName=e,this}generatedAlwaysAs(e,t){return this.config.generated={as:e,type:"always",mode:t?.mode??"virtual"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:n,actions:r})=>((n,r)=>{const o=new dp(()=>{const t=n();return{columns:[e],foreignColumns:[t]}});return r.onUpdate&&o.onUpdate(r.onUpdate),r.onDelete&&o.onDelete(r.onDelete),o.build(t)})(n,r))}},kp=class extends cs{static{__name(this,"SQLiteColumn")}constructor(e,t){t.uniqueName||(t.uniqueName=uniqueKeyName3(e,[t.name])),super(e,t),this.table=e}static[ss]="SQLiteColumn"}}});function blob(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"json"===r?.mode?new xp(n):"bigint"===r?.mode?new Tp(n):new Ap(n)}var Mp,Lp,$p=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/columns/blob.js"(){tn(),gs(),Ei(),Rp(),Tp=class extends vp{static{__name(this,"SQLiteBigIntBuilder")}static[ss]="SQLiteBigIntBuilder";constructor(e){super(e,"bigint","SQLiteBigInt")}build(e){return new _p(e,this.config)}},_p=class extends kp{static{__name(this,"SQLiteBigInt")}static[ss]="SQLiteBigInt";getSQLType(){return"blob"}mapFromDriverValue(e){if(Buffer.isBuffer(e))return BigInt(e.toString());if(e instanceof ArrayBuffer){const t=new TextDecoder;return BigInt(t.decode(e))}return BigInt(String.fromCodePoint(...e))}mapToDriverValue(e){return Buffer.from(e.toString())}},xp=class extends vp{static{__name(this,"SQLiteBlobJsonBuilder")}static[ss]="SQLiteBlobJsonBuilder";constructor(e){super(e,"json","SQLiteBlobJson")}build(e){return new Pp(e,this.config)}},Pp=class extends kp{static{__name(this,"SQLiteBlobJson")}static[ss]="SQLiteBlobJson";getSQLType(){return"blob"}mapFromDriverValue(e){if(Buffer.isBuffer(e))return JSON.parse(e.toString());if(e instanceof ArrayBuffer){const t=new TextDecoder;return JSON.parse(t.decode(e))}return JSON.parse(String.fromCodePoint(...e))}mapToDriverValue(e){return Buffer.from(JSON.stringify(e))}},Ap=class extends vp{static{__name(this,"SQLiteBlobBufferBuilder")}static[ss]="SQLiteBlobBufferBuilder";constructor(e){super(e,"buffer","SQLiteBlobBuffer")}build(e){return new Ip(e,this.config)}},Ip=class extends kp{static{__name(this,"SQLiteBlobBuffer")}static[ss]="SQLiteBlobBuffer";getSQLType(){return"blob"}},__name(blob,"blob")}});function customType3(e){return(t,n)=>{const{name:r,config:o}=getColumnNameAndConfig(t,n);return new Mp(r,o,e)}}var Dp,Op,Fp,qp,jp,Bp,Up,zp,Hp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/columns/custom.js"(){tn(),gs(),Ei(),Rp(),Mp=class extends vp{static{__name(this,"SQLiteCustomColumnBuilder")}static[ss]="SQLiteCustomColumnBuilder";constructor(e,t,n){super(e,"custom","SQLiteCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=n}build(e){return new Lp(e,this.config)}},Lp=class extends kp{static{__name(this,"SQLiteCustomColumn")}static[ss]="SQLiteCustomColumn";sqlName;mapTo;mapFrom;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return"function"==typeof this.mapFrom?this.mapFrom(e):e}mapToDriverValue(e){return"function"==typeof this.mapTo?this.mapTo(e):e}},__name(customType3,"customType")}});function integer2(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"timestamp"===r?.mode||"timestamp_ms"===r?.mode?new jp(n,r.mode):"boolean"===r?.mode?new Up(n,r.mode):new Fp(n)}var Wp,Gp,Vp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/columns/integer.js"(){tn(),gs(),ui(),Ei(),Rp(),Dp=class extends vp{static{__name(this,"SQLiteBaseIntegerBuilder")}static[ss]="SQLiteBaseIntegerBuilder";constructor(e,t,n){super(e,t,n),this.config.autoIncrement=!1}primaryKey(e){return e?.autoIncrement&&(this.config.autoIncrement=!0),this.config.hasDefault=!0,super.primaryKey()}},Op=class extends kp{static{__name(this,"SQLiteBaseInteger")}static[ss]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}},Fp=class extends Dp{static{__name(this,"SQLiteIntegerBuilder")}static[ss]="SQLiteIntegerBuilder";constructor(e){super(e,"number","SQLiteInteger")}build(e){return new qp(e,this.config)}},qp=class extends Op{static{__name(this,"SQLiteInteger")}static[ss]="SQLiteInteger"},jp=class extends Dp{static{__name(this,"SQLiteTimestampBuilder")}static[ss]="SQLiteTimestampBuilder";constructor(e,t){super(e,"date","SQLiteTimestamp"),this.config.mode=t}defaultNow(){return this.default(sql`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build(e){return new Bp(e,this.config)}},Bp=class extends Op{static{__name(this,"SQLiteTimestamp")}static[ss]="SQLiteTimestamp";mode=this.config.mode;mapFromDriverValue(e){return"timestamp"===this.config.mode?new Date(1e3*e):new Date(e)}mapToDriverValue(e){const t=e.getTime();return"timestamp"===this.config.mode?Math.floor(t/1e3):t}},Up=class extends Dp{static{__name(this,"SQLiteBooleanBuilder")}static[ss]="SQLiteBooleanBuilder";constructor(e,t){super(e,"boolean","SQLiteBoolean"),this.config.mode=t}build(e){return new zp(e,this.config)}},zp=class extends Op{static{__name(this,"SQLiteBoolean")}static[ss]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(e){return 1===Number(e)}mapToDriverValue(e){return e?1:0}},__name(integer2,"integer")}});function numeric2(e){return new Wp(e??"")}var Qp,Kp,Yp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/columns/numeric.js"(){tn(),gs(),Rp(),Wp=class extends vp{static{__name(this,"SQLiteNumericBuilder")}static[ss]="SQLiteNumericBuilder";constructor(e){super(e,"string","SQLiteNumeric")}build(e){return new Gp(e,this.config)}},Gp=class extends kp{static{__name(this,"SQLiteNumeric")}static[ss]="SQLiteNumeric";getSQLType(){return"numeric"}},__name(numeric2,"numeric")}});function real3(e){return new Qp(e??"")}var Jp,Xp,Zp,eg,tg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/columns/real.js"(){tn(),gs(),Rp(),Qp=class extends vp{static{__name(this,"SQLiteRealBuilder")}static[ss]="SQLiteRealBuilder";constructor(e){super(e,"number","SQLiteReal")}build(e){return new Kp(e,this.config)}},Kp=class extends kp{static{__name(this,"SQLiteReal")}static[ss]="SQLiteReal";getSQLType(){return"real"}},__name(real3,"real")}});function text3(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"json"===r.mode?new Zp(n):new Jp(n,r)}var ng=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/columns/text.js"(){tn(),gs(),Ei(),Rp(),Jp=class extends vp{static{__name(this,"SQLiteTextBuilder")}static[ss]="SQLiteTextBuilder";constructor(e,t){super(e,"string","SQLiteText"),this.config.enumValues=t.enum,this.config.length=t.length}build(e){return new Xp(e,this.config)}},Xp=class extends kp{static{__name(this,"SQLiteText")}static[ss]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor(e,t){super(e,t)}getSQLType(){return"text"+(this.config.length?`(${this.config.length})`:"")}},Zp=class extends vp{static{__name(this,"SQLiteTextJsonBuilder")}static[ss]="SQLiteTextJsonBuilder";constructor(e){super(e,"json","SQLiteTextJson")}build(e){return new eg(e,this.config)}},eg=class extends kp{static{__name(this,"SQLiteTextJson")}static[ss]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(e){return JSON.parse(e)}mapToDriverValue(e){return JSON.stringify(e)}},__name(text3,"text")}}),rg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/columns/index.js"(){tn(),$p(),Rp(),Hp(),Vp(),Yp(),tg(),ng()}});function getSQLiteColumnBuilders(){return{blob:blob,customType:customType3,integer:integer2,numeric:numeric2,real:real3,text:text3}}var og,sg,ig,ag=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/columns/all.js"(){tn(),$p(),Hp(),Vp(),Yp(),tg(),ng(),__name(getSQLiteColumnBuilders,"getSQLiteColumnBuilders")}});function sqliteTableBase(e,t,n,r,o=e){const s=new sg(e,r,o),i="function"==typeof t?t(getSQLiteColumnBuilders()):t,a=Object.fromEntries(Object.entries(i).map(([e,t])=>{const n=t;n.setName(e);const r=n.build(s);return s[og].push(...n.buildForeignKeys(r,s)),[e,r]})),l=Object.assign(s,a);return l[Gs.Symbol.Columns]=a,l[Gs.Symbol.ExtraConfigColumns]=a,n&&(l[sg.Symbol.ExtraConfigBuilder]=n),l}var lg,cg,ug,dg,mg,pg,gg,hg,fg,yg,wg,Sg,bg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/table.js"(){tn(),gs(),ai(),ag(),og=Symbol.for("drizzle:SQLiteInlineForeignKeys"),sg=class extends Gs{static{__name(this,"SQLiteTable")}static[ss]="SQLiteTable";static Symbol=Object.assign({},Gs.Symbol,{InlineForeignKeys:og});[Gs.Symbol.Columns];[og]=[];[Gs.Symbol.ExtraConfigBuilder]=void 0},__name(sqliteTableBase,"sqliteTableBase"),ig=__name((e,t,n)=>sqliteTableBase(e,t,n),"sqliteTable")}}),Eg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/query-builders/delete.js"(){tn(),gs(),Pl(),Ec(),bg(),ai(),Ei(),lg=class extends vl{static{__name(this,"SQLiteDeleteBase")}constructor(e,t,n,r){super(),this.table=e,this.session=t,this.dialect=n,this.config={table:e,withList:r}}static[ss]="SQLiteDelete";config;where(e){return this.config.where=e,this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.table[Gs.Symbol.Columns],new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(t)?t:[t];this.config.orderBy=n}else{const t=e;this.config.orderBy=t}return this}limit(e){return this.config.limit=e,this}returning(e=this.table[sg.Symbol.Columns]){return this.config.returning=orderSelectedFields(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0)}prepare(){return this._prepare(!1)}run=__name(e=>this._prepare().run(e),"run");all=__name(e=>this._prepare().all(e),"all");get=__name(e=>this._prepare().get(e),"get");values=__name(e=>this._prepare().values(e),"values");async execute(e){return this._prepare().execute(e)}$dynamic(){return this}}}}),Cg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/view-base.js"(){tn(),gs(),ui(),cg=class extends ii{static{__name(this,"SQLiteViewBase")}static[ss]="SQLiteViewBase"}}}),vg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/dialect.js"(){tn(),pi(),Rl(),hs(),gs(),Ml(),gc(),wc(),ui(),rg(),bg(),Qs(),ai(),Ei(),Js(),Cg(),ug=class{static{__name(this,"SQLiteDialect")}static[ss]="SQLiteDialect";casing;constructor(e){this.casing=new Tl(e?.casing)}escapeName(e){return`"${e}"`}escapeParam(e){return"?"}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;const t=[sql`with `];for(const[n,r]of e.entries())t.push(sql`${sql.identifier(r._.alias)} as (${r._.sql})`),n<e.length-1&&t.push(sql`, `);return t.push(sql` `),sql.join(t)}buildDeleteQuery({table:e,where:t,returning:n,withList:r,limit:o,orderBy:s}){return sql`${this.buildWithCTE(r)}delete from ${e}${t?sql` where ${t}`:void 0}${n?sql` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0}${this.buildOrderBy(s)}${this.buildLimit(o)}`}buildUpdateSet(e,t){const n=e[Gs.Symbol.Columns],r=Object.keys(n).filter(e=>void 0!==t[e]||void 0!==n[e]?.onUpdateFn),o=r.length;return sql.join(r.flatMap((e,r)=>{const s=n[e],i=t[e]??sql.param(s.onUpdateFn(),s),a=sql`${sql.identifier(this.casing.getColumnCasing(s))} = ${i}`;return r<o-1?[a,sql.raw(", ")]:[a]}))}buildUpdateQuery({table:e,set:t,where:n,returning:r,withList:o,joins:s,from:i,limit:a,orderBy:l}){const u=this.buildWithCTE(o),d=this.buildUpdateSet(e,t),m=i&&sql.join([sql.raw(" from "),this.buildFromTable(i)]);return sql`${u}update ${e} set ${d}${m}${this.buildJoins(s)}${n?sql` where ${n}`:void 0}${r?sql` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0}${this.buildOrderBy(l)}${this.buildLimit(a)}`}buildSelection(e,{isSingleTable:t=!1}={}){const n=e.length,r=e.flatMap(({field:e},r)=>{const o=[];if(is(e,Zs.Aliased)&&e.isSelectionField)o.push(sql.identifier(e.fieldAlias));else if(is(e,Zs.Aliased)||is(e,Zs)){const n=is(e,Zs.Aliased)?e.sql:e;t?o.push(new Zs(n.queryChunks.map(e=>is(e,cs)?sql.identifier(this.casing.getColumnCasing(e)):e))):o.push(n),is(e,Zs.Aliased)&&o.push(sql` as ${sql.identifier(e.fieldAlias)}`)}else if(is(e,cs)){const n=e.table[Gs.Symbol.Name];t?o.push(sql.identifier(this.casing.getColumnCasing(e))):o.push(sql`${sql.identifier(n)}.${sql.identifier(this.casing.getColumnCasing(e))}`)}return r<n-1&&o.push(sql`, `),o});return sql.join(r)}buildJoins(e){if(!e||0===e.length)return;const t=[];if(e)for(const[n,r]of e.entries()){0===n&&t.push(sql` `);const o=r.table;if(is(o,sg)){const e=o[sg.Symbol.Name],n=o[sg.Symbol.Schema],s=o[sg.Symbol.OriginalName],i=e===s?void 0:r.alias;t.push(sql`${sql.raw(r.joinType)} join ${n?sql`${sql.identifier(n)}.`:void 0}${sql.identifier(s)}${i&&sql` ${sql.identifier(i)}`} on ${r.on}`)}else t.push(sql`${sql.raw(r.joinType)} join ${o} on ${r.on}`);n<e.length-1&&t.push(sql` `)}return sql.join(t)}buildLimit(e){return"object"==typeof e||"number"==typeof e&&e>=0?sql` limit ${e}`:void 0}buildOrderBy(e){const t=[];if(e)for(const[n,r]of e.entries())t.push(r),n<e.length-1&&t.push(sql`, `);return t.length>0?sql` order by ${sql.join(t)}`:void 0}buildFromTable(e){return is(e,Gs)&&e[Gs.Symbol.OriginalName]!==e[Gs.Symbol.Name]?sql`${sql.identifier(e[Gs.Symbol.OriginalName])} ${sql.identifier(e[Gs.Symbol.Name])}`:e}buildSelectQuery({withList:e,fields:t,fieldsFlat:n,where:r,having:o,table:s,joins:i,orderBy:a,groupBy:l,limit:u,offset:d,distinct:m,setOperators:g}){const h=n??orderSelectedFields(t);for(const e of h)if(is(e.field,cs)&&getTableName(e.field.table)!==(is(s,Ls)?s._.alias:is(s,cg)?s[Os].name:is(s,Zs)?void 0:getTableName(s))&&!(e=>i?.some(({alias:t})=>t===(e[Gs.Symbol.IsAlias]?getTableName(e):e[Gs.Symbol.BaseName])))(e.field.table)){const t=getTableName(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${t}"."${e.field.name}", but the table "${t}" is not part of the query! Did you forget to join it?`)}const f=!i||0===i.length,y=this.buildWithCTE(e),w=m?sql` distinct`:void 0,S=this.buildSelection(h,{isSingleTable:f}),E=this.buildFromTable(s),C=this.buildJoins(i),v=r?sql` where ${r}`:void 0,k=o?sql` having ${o}`:void 0,T=[];if(l)for(const[e,t]of l.entries())T.push(t),e<l.length-1&&T.push(sql`, `);const _=T.length>0?sql` group by ${sql.join(T)}`:void 0,x=sql`${y}select${w} ${S} from ${E}${C}${v}${_}${k}${this.buildOrderBy(a)}${this.buildLimit(u)}${d?sql` offset ${d}`:void 0}`;return g.length>0?this.buildSetOperations(x,g):x}buildSetOperations(e,t){const[n,...r]=t;if(!n)throw new Error("Cannot pass undefined values to any set operator");return 0===r.length?this.buildSetOperationQuery({leftSelect:e,setOperator:n}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:n}),r)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:n,rightSelect:r,limit:o,orderBy:s,offset:i}}){const a=sql`${e.getSQL()} `,l=sql`${r.getSQL()}`;let u;if(s&&s.length>0){const e=[];for(const t of s)if(is(t,kp))e.push(sql.identifier(t.name));else if(is(t,Zs)){for(let e=0;e<t.queryChunks.length;e++){const n=t.queryChunks[e];is(n,kp)&&(t.queryChunks[e]=sql.identifier(this.casing.getColumnCasing(n)))}e.push(sql`${t}`)}else e.push(sql`${t}`);u=sql` order by ${sql.join(e,sql`, `)}`}const d="object"==typeof o||"number"==typeof o&&o>=0?sql` limit ${o}`:void 0,m=sql.raw(`${t} ${n?"all ":""}`);return sql`${a}${m}${l}${u}${d}${i?sql` offset ${i}`:void 0}`}buildInsertQuery({table:e,values:t,onConflict:n,returning:r,withList:o,select:s}){const i=[],a=e[Gs.Symbol.Columns],l=Object.entries(a).filter(([e,t])=>!t.shouldDisableInsert()),u=l.map(([,e])=>sql.identifier(this.casing.getColumnCasing(e)));if(s){const e=t;is(e,Zs)?i.push(e):i.push(e.getSQL())}else{const e=t;i.push(sql.raw("values "));for(const[t,n]of e.entries()){const r=[];for(const[e,t]of l){const o=n[e];if(void 0===o||is(o,ri)&&void 0===o.value){let e;if(null!==t.default&&void 0!==t.default)e=is(t.default,Zs)?t.default:sql.param(t.default,t);else if(void 0!==t.defaultFn){const n=t.defaultFn();e=is(n,Zs)?n:sql.param(n,t)}else if(t.default||void 0===t.onUpdateFn)e=sql`null`;else{const n=t.onUpdateFn();e=is(n,Zs)?n:sql.param(n,t)}r.push(e)}else r.push(o)}i.push(r),t<e.length-1&&i.push(sql`, `)}}const d=this.buildWithCTE(o),m=sql.join(i);return sql`${d}insert into ${e} ${u} ${m}${n?sql` on conflict ${n}`:void 0}${r?sql` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0}`}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,invokeSource:t})}buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:n,table:r,tableConfig:o,queryConfig:s,tableAlias:i,nestedQueryRelation:a,joinOn:l}){let u,d,m,g=[],h=[];const f=[];if(!0===s)g=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:aliasedTableColumn(t,i),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{const r=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,aliasedTableColumn(t,i)]));if(s.where){const e="function"==typeof s.where?s.where(r,getOperators()):s.where;m=e&&mapColumnsInSQLToAlias(e,i)}const a=[];let l=[];if(s.columns){let e=!1;for(const[t,n]of Object.entries(s.columns))void 0!==n&&t in o.columns&&(e||!0!==n||(e=!0),l.push(t));l.length>0&&(l=e?l.filter(e=>!0===s.columns?.[e]):Object.keys(o.columns).filter(e=>!l.includes(e)))}else l=Object.keys(o.columns);for(const e of l){const t=o.columns[e];a.push({tsKey:e,value:t})}let f,y=[];if(s.with&&(y=Object.entries(s.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]}))),s.extras){f="function"==typeof s.extras?s.extras(r,{sql:sql}):s.extras;for(const[e,t]of Object.entries(f))a.push({tsKey:e,value:mapColumnsInAliasedSQLToAlias(t,i)})}for(const{tsKey:e,value:t}of a)g.push({dbKey:is(t,Zs.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:is(t,cs)?aliasedTableColumn(t,i):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let w="function"==typeof s.orderBy?s.orderBy(r,getOrderByOperators()):s.orderBy??[];Array.isArray(w)||(w=[w]),h=w.map(e=>is(e,cs)?aliasedTableColumn(e,i):mapColumnsInSQLToAlias(e,i)),u=s.limit,d=s.offset;for(const{tsKey:r,queryConfig:o,relation:s}of y){const a=normalizeRelation(t,n,s),l=n[getTableUniqueName(s.referencedTable)],u=`${i}_${r}`,d=and(...a.fields.map((e,t)=>jl(aliasedTableColumn(a.references[t],u),aliasedTableColumn(e,i)))),m=this.buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:n,table:e[l],tableConfig:t[l],queryConfig:is(s,Yl)?!0===o?{limit:1}:{...o,limit:1}:o,tableAlias:u,joinOn:d,nestedQueryRelation:s}),h=sql`(${m.sql})`.as(r);g.push({dbKey:r,tsKey:r,field:h,relationTableTsKey:l,isJson:!0,selection:m.selection})}}if(0===g.length)throw new Il({message:`No fields selected for table "${o.tsName}" ("${i}"). You need to have at least one item in "columns", "with" or "extras". If you need to select all columns, omit the "columns" key or set it to undefined.`});let y;if(m=and(l,m),a){let e=sql`json_array(${sql.join(g.map(({field:e})=>is(e,kp)?sql.identifier(this.casing.getColumnCasing(e)):is(e,Zs.Aliased)?e.sql:e),sql`, `)})`;is(a,Jl)&&(e=sql`coalesce(json_group_array(${e}), json_array())`);const t=[{dbKey:"data",tsKey:"data",field:e.as("data"),isJson:!0,relationTableTsKey:o.tsName,selection:g}];void 0!==u||void 0!==d||h.length>0?(y=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:[{path:[],field:sql.raw("*")}],where:m,limit:u,offset:d,orderBy:h,setOperators:[]}),m=void 0,u=void 0,d=void 0,h=void 0):y=aliasedTable(r,i),y=this.buildSelectQuery({table:is(y,sg)?y:new Ls(y,{},i),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),joins:f,where:m,limit:u,offset:d,orderBy:h,setOperators:[]})}else y=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:g.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),joins:f,where:m,limit:u,offset:d,orderBy:h,setOperators:[]});return{tableTsKey:o.tsName,sql:y,selection:g}}},dg=class extends ug{static{__name(this,"SQLiteSyncDialect")}static[ss]="SQLiteSyncDialect";migrate(e,t,n){const r=void 0===n||"string"==typeof n?"__drizzle_migrations":n.migrationsTable??"__drizzle_migrations",o=sql`
14
+ `;await t.execute(o);const s=(await t.all(sql`select id, hash, created_at from ${sql.identifier(r)} order by created_at desc limit 1`))[0];await t.transaction(async t=>{for(const n of e)if(!s||Number(s.created_at)<n.folderMillis){for(const e of n.sql)await t.execute(sql.raw(e));await t.execute(sql`insert into ${sql.identifier(r)} (\`hash\`, \`created_at\`) values(${n.hash}, ${n.folderMillis})`)}})}escapeName(e){return`\`${e}\``}escapeParam(e){return"?"}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;const t=[sql`with `];for(const[n,r]of e.entries())t.push(sql`${sql.identifier(r._.alias)} as (${r._.sql})`),n<e.length-1&&t.push(sql`, `);return t.push(sql` `),sql.join(t)}buildDeleteQuery({table:e,where:t,returning:n,withList:r,limit:o,orderBy:s}){const i=this.buildWithCTE(r),a=n?sql` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0;return sql`${i}delete from ${e}${t?sql` where ${t}`:void 0}${this.buildOrderBy(s)}${this.buildLimit(o)}${a}`}buildUpdateSet(e,t){const n=e[Gs.Symbol.Columns],r=Object.keys(n).filter(e=>void 0!==t[e]||void 0!==n[e]?.onUpdateFn),o=r.length;return sql.join(r.flatMap((e,r)=>{const s=n[e],i=t[e]??sql.param(s.onUpdateFn(),s),a=sql`${sql.identifier(this.casing.getColumnCasing(s))} = ${i}`;return r<o-1?[a,sql.raw(", ")]:[a]}))}buildUpdateQuery({table:e,set:t,where:n,returning:r,withList:o,limit:s,orderBy:i}){const a=this.buildWithCTE(o),l=this.buildUpdateSet(e,t),u=r?sql` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0;return sql`${a}update ${e} set ${l}${n?sql` where ${n}`:void 0}${this.buildOrderBy(i)}${this.buildLimit(s)}${u}`}buildSelection(e,{isSingleTable:t=!1}={}){const n=e.length,r=e.flatMap(({field:e},r)=>{const o=[];if(is(e,Zs.Aliased)&&e.isSelectionField)o.push(sql.identifier(e.fieldAlias));else if(is(e,Zs.Aliased)||is(e,Zs)){const n=is(e,Zs.Aliased)?e.sql:e;t?o.push(new Zs(n.queryChunks.map(e=>is(e,Ru)?sql.identifier(this.casing.getColumnCasing(e)):e))):o.push(n),is(e,Zs.Aliased)&&o.push(sql` as ${sql.identifier(e.fieldAlias)}`)}else is(e,cs)&&(t?o.push(sql.identifier(this.casing.getColumnCasing(e))):o.push(e));return r<n-1&&o.push(sql`, `),o});return sql.join(r)}buildLimit(e){return"object"==typeof e||"number"==typeof e&&e>=0?sql` limit ${e}`:void 0}buildOrderBy(e){return e&&e.length>0?sql` order by ${sql.join(e,sql`, `)}`:void 0}buildIndex({indexes:e,indexFor:t}){return e&&e.length>0?sql` ${sql.raw(t)} INDEX (${sql.raw(e.join(", "))})`:void 0}buildSelectQuery({withList:e,fields:t,fieldsFlat:n,where:r,having:o,table:s,joins:i,orderBy:a,groupBy:l,limit:u,offset:d,lockingClause:m,distinct:g,setOperators:h,useIndex:f,forceIndex:y,ignoreIndex:w}){const S=n??orderSelectedFields(t);for(const e of S)if(is(e.field,cs)&&getTableName(e.field.table)!==(is(s,Ls)?s._.alias:is(s,Em)?s[Os].name:is(s,Zs)?void 0:getTableName(s))&&!(e=>i?.some(({alias:t})=>t===(e[Gs.Symbol.IsAlias]?getTableName(e):e[Gs.Symbol.BaseName])))(e.field.table)){const t=getTableName(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${t}"."${e.field.name}", but the table "${t}" is not part of the query! Did you forget to join it?`)}const E=!i||0===i.length,C=this.buildWithCTE(e),v=g?sql` distinct`:void 0,k=this.buildSelection(S,{isSingleTable:E}),T=is(s,Gs)&&s[Gs.Symbol.OriginalName]!==s[Gs.Symbol.Name]?sql`${sql.identifier(s[Gs.Symbol.OriginalName])} ${sql.identifier(s[Gs.Symbol.Name])}`:s,_=[];if(i)for(const[e,t]of i.entries()){0===e&&_.push(sql` `);const n=t.table,r=t.lateral?sql` lateral`:void 0;if(is(n,wm)){const e=n[wm.Symbol.Name],o=n[wm.Symbol.Schema],s=n[wm.Symbol.OriginalName],i=e===s?void 0:t.alias,a=this.buildIndex({indexes:t.useIndex,indexFor:"USE"}),l=this.buildIndex({indexes:t.forceIndex,indexFor:"FORCE"}),u=this.buildIndex({indexes:t.ignoreIndex,indexFor:"IGNORE"});_.push(sql`${sql.raw(t.joinType)} join${r} ${o?sql`${sql.identifier(o)}.`:void 0}${sql.identifier(s)}${a}${l}${u}${i&&sql` ${sql.identifier(i)}`} on ${t.on}`)}else if(is(n,ii)){const e=n[Os].name,o=n[Os].schema,s=n[Os].originalName,i=e===s?void 0:t.alias;_.push(sql`${sql.raw(t.joinType)} join${r} ${o?sql`${sql.identifier(o)}.`:void 0}${sql.identifier(s)}${i&&sql` ${sql.identifier(i)}`} on ${t.on}`)}else _.push(sql`${sql.raw(t.joinType)} join${r} ${n} on ${t.on}`);e<i.length-1&&_.push(sql` `)}const x=sql.join(_),P=r?sql` where ${r}`:void 0,A=o?sql` having ${o}`:void 0,I=this.buildOrderBy(a),N=l&&l.length>0?sql` group by ${sql.join(l,sql`, `)}`:void 0,R=this.buildLimit(u),M=d?sql` offset ${d}`:void 0,L=this.buildIndex({indexes:f,indexFor:"USE"}),$=this.buildIndex({indexes:y,indexFor:"FORCE"}),D=this.buildIndex({indexes:w,indexFor:"IGNORE"});let O;if(m){const{config:e,strength:t}=m;O=sql` for ${sql.raw(t)}`,e.noWait?O.append(sql` no wait`):e.skipLocked&&O.append(sql` skip locked`)}const F=sql`${C}select${v} ${k} from ${T}${L}${$}${D}${x}${P}${N}${A}${I}${R}${M}${O}`;return h.length>0?this.buildSetOperations(F,h):F}buildSetOperations(e,t){const[n,...r]=t;if(!n)throw new Error("Cannot pass undefined values to any set operator");return 0===r.length?this.buildSetOperationQuery({leftSelect:e,setOperator:n}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:n}),r)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:n,rightSelect:r,limit:o,orderBy:s,offset:i}}){const a=sql`(${e.getSQL()}) `,l=sql`(${r.getSQL()})`;let u;if(s&&s.length>0){const e=[];for(const t of s)if(is(t,Ru))e.push(sql.identifier(this.casing.getColumnCasing(t)));else if(is(t,Zs)){for(let e=0;e<t.queryChunks.length;e++){const n=t.queryChunks[e];is(n,Ru)&&(t.queryChunks[e]=sql.identifier(this.casing.getColumnCasing(n)))}e.push(sql`${t}`)}else e.push(sql`${t}`);u=sql` order by ${sql.join(e,sql`, `)} `}const d="object"==typeof o||"number"==typeof o&&o>=0?sql` limit ${o}`:void 0,m=sql.raw(`${t} ${n?"all ":""}`);return sql`${a}${m}${l}${u}${d}${i?sql` offset ${i}`:void 0}`}buildInsertQuery({table:e,values:t,ignore:n,onConflict:r,select:o}){const s=[],i=e[Gs.Symbol.Columns],a=Object.entries(i).filter(([e,t])=>!t.shouldDisableInsert()),l=a.map(([,e])=>sql.identifier(this.casing.getColumnCasing(e))),u=[];if(o){const e=t;is(e,Zs)?s.push(e):s.push(e.getSQL())}else{const e=t;s.push(sql.raw("values "));for(const[t,n]of e.entries()){const r={},o=[];for(const[e,t]of a){const s=n[e];if(void 0===s||is(s,ri)&&void 0===s.value)if(void 0!==t.defaultFn){const n=t.defaultFn();r[e]=n;const s=is(n,Zs)?n:sql.param(n,t);o.push(s)}else if(t.default||void 0===t.onUpdateFn)o.push(sql`default`);else{const e=t.onUpdateFn(),n=is(e,Zs)?e:sql.param(e,t);o.push(n)}else t.defaultFn&&is(s,ri)&&(r[e]=s.value),o.push(s)}u.push(r),s.push(o),t<e.length-1&&s.push(sql`, `)}}const d=sql.join(s);return{sql:sql`insert${n?sql` ignore`:void 0} into ${e} ${l} ${d}${r?sql` on duplicate key ${r}`:void 0}`,generatedIds:u}}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,invokeSource:t})}buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:n,table:r,tableConfig:o,queryConfig:s,tableAlias:i,nestedQueryRelation:a,joinOn:l}){let u,d,m,g,h=[];const f=[];if(!0===s)h=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:aliasedTableColumn(t,i),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{const r=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,aliasedTableColumn(t,i)]));if(s.where){const e="function"==typeof s.where?s.where(r,getOperators()):s.where;g=e&&mapColumnsInSQLToAlias(e,i)}const a=[];let l=[];if(s.columns){let e=!1;for(const[t,n]of Object.entries(s.columns))void 0!==n&&t in o.columns&&(e||!0!==n||(e=!0),l.push(t));l.length>0&&(l=e?l.filter(e=>!0===s.columns?.[e]):Object.keys(o.columns).filter(e=>!l.includes(e)))}else l=Object.keys(o.columns);for(const e of l){const t=o.columns[e];a.push({tsKey:e,value:t})}let y,w=[];if(s.with&&(w=Object.entries(s.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]}))),s.extras){y="function"==typeof s.extras?s.extras(r,{sql:sql}):s.extras;for(const[e,t]of Object.entries(y))a.push({tsKey:e,value:mapColumnsInAliasedSQLToAlias(t,i)})}for(const{tsKey:e,value:t}of a)h.push({dbKey:is(t,Zs.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:is(t,cs)?aliasedTableColumn(t,i):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let S="function"==typeof s.orderBy?s.orderBy(r,getOrderByOperators()):s.orderBy??[];Array.isArray(S)||(S=[S]),m=S.map(e=>is(e,cs)?aliasedTableColumn(e,i):mapColumnsInSQLToAlias(e,i)),u=s.limit,d=s.offset;for(const{tsKey:r,queryConfig:o,relation:s}of w){const a=normalizeRelation(t,n,s),l=n[getTableUniqueName(s.referencedTable)],u=`${i}_${r}`,d=and(...a.fields.map((e,t)=>jl(aliasedTableColumn(a.references[t],u),aliasedTableColumn(e,i)))),m=this.buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:n,table:e[l],tableConfig:t[l],queryConfig:is(s,Yl)?!0===o?{limit:1}:{...o,limit:1}:o,tableAlias:u,joinOn:d,nestedQueryRelation:s}),g=sql`${sql.identifier(u)}.${sql.identifier("data")}`.as(r);f.push({on:sql`true`,table:new Ls(m.sql,{},u),alias:u,joinType:"left",lateral:!0}),h.push({dbKey:r,tsKey:r,field:g,relationTableTsKey:l,isJson:!0,selection:m.selection})}}if(0===h.length)throw new Il({message:`No fields selected for table "${o.tsName}" ("${i}")`});let y;if(g=and(l,g),a){let e=sql`json_array(${sql.join(h.map(({field:e,tsKey:t,isJson:n})=>n?sql`${sql.identifier(`${i}_${t}`)}.${sql.identifier("data")}`:is(e,Zs.Aliased)?e.sql:e),sql`, `)})`;is(a,Jl)&&(e=sql`coalesce(json_arrayagg(${e}), json_array())`);const t=[{dbKey:"data",tsKey:"data",field:e.as("data"),isJson:!0,relationTableTsKey:o.tsName,selection:h}];void 0!==u||void 0!==d||(m?.length??0)>0?(y=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:[{path:[],field:sql.raw("*")},...(m?.length??0)>0?[{path:[],field:sql`row_number() over (order by ${sql.join(m,sql`, `)})`}]:[]],where:g,limit:u,offset:d,setOperators:[]}),g=void 0,u=void 0,d=void 0,m=void 0):y=aliasedTable(r,i),y=this.buildSelectQuery({table:is(y,wm)?y:new Ls(y,{},i),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),joins:f,where:g,limit:u,offset:d,orderBy:m,setOperators:[]})}else y=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:h.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),joins:f,where:g,limit:u,offset:d,orderBy:m,setOperators:[]});return{tableTsKey:o.tsName,sql:y,selection:h}}buildRelationalQueryWithoutLateralSubqueries({fullSchema:e,schema:t,tableNamesMap:n,table:r,tableConfig:o,queryConfig:s,tableAlias:i,nestedQueryRelation:a,joinOn:l}){let u,d,m,g,h=[],f=[];if(!0===s)h=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:aliasedTableColumn(t,i),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{const r=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,aliasedTableColumn(t,i)]));if(s.where){const e="function"==typeof s.where?s.where(r,getOperators()):s.where;m=e&&mapColumnsInSQLToAlias(e,i)}const a=[];let l=[];if(s.columns){let e=!1;for(const[t,n]of Object.entries(s.columns))void 0!==n&&t in o.columns&&(e||!0!==n||(e=!0),l.push(t));l.length>0&&(l=e?l.filter(e=>!0===s.columns?.[e]):Object.keys(o.columns).filter(e=>!l.includes(e)))}else l=Object.keys(o.columns);for(const e of l){const t=o.columns[e];a.push({tsKey:e,value:t})}let g,y=[];if(s.with&&(y=Object.entries(s.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]}))),s.extras){g="function"==typeof s.extras?s.extras(r,{sql:sql}):s.extras;for(const[e,t]of Object.entries(g))a.push({tsKey:e,value:mapColumnsInAliasedSQLToAlias(t,i)})}for(const{tsKey:e,value:t}of a)h.push({dbKey:is(t,Zs.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:is(t,cs)?aliasedTableColumn(t,i):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let w="function"==typeof s.orderBy?s.orderBy(r,getOrderByOperators()):s.orderBy??[];Array.isArray(w)||(w=[w]),f=w.map(e=>is(e,cs)?aliasedTableColumn(e,i):mapColumnsInSQLToAlias(e,i)),u=s.limit,d=s.offset;for(const{tsKey:r,queryConfig:o,relation:s}of y){const a=normalizeRelation(t,n,s),l=n[getTableUniqueName(s.referencedTable)],u=`${i}_${r}`,d=and(...a.fields.map((e,t)=>jl(aliasedTableColumn(a.references[t],u),aliasedTableColumn(e,i)))),m=this.buildRelationalQueryWithoutLateralSubqueries({fullSchema:e,schema:t,tableNamesMap:n,table:e[l],tableConfig:t[l],queryConfig:is(s,Yl)?!0===o?{limit:1}:{...o,limit:1}:o,tableAlias:u,joinOn:d,nestedQueryRelation:s});let g=sql`(${m.sql})`;is(s,Jl)&&(g=sql`coalesce(${g}, json_array())`);const f=g.as(r);h.push({dbKey:r,tsKey:r,field:f,relationTableTsKey:l,isJson:!0,selection:m.selection})}}if(0===h.length)throw new Il({message:`No fields selected for table "${o.tsName}" ("${i}"). You need to have at least one item in "columns", "with" or "extras". If you need to select all columns, omit the "columns" key or set it to undefined.`});if(m=and(l,m),a){let e=sql`json_array(${sql.join(h.map(({field:e})=>is(e,Ru)?sql.identifier(this.casing.getColumnCasing(e)):is(e,Zs.Aliased)?e.sql:e),sql`, `)})`;is(a,Jl)&&(e=sql`json_arrayagg(${e})`);const t=[{dbKey:"data",tsKey:"data",field:e,isJson:!0,relationTableTsKey:o.tsName,selection:h}];void 0!==u||void 0!==d||f.length>0?(g=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:[{path:[],field:sql.raw("*")},...f.length>0?[{path:[],field:sql`row_number() over (order by ${sql.join(f,sql`, `)})`}]:[]],where:m,limit:u,offset:d,setOperators:[]}),m=void 0,u=void 0,d=void 0,f=void 0):g=aliasedTable(r,i),g=this.buildSelectQuery({table:is(g,wm)?g:new Ls(g,{},i),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),where:m,limit:u,offset:d,orderBy:f,setOperators:[]})}else g=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:h.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),where:m,limit:u,offset:d,orderBy:f,setOperators:[]});return{tableTsKey:o.tsName,sql:g,selection:h}}}}}),Im=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/indexes.js"(){tn(),gs(),class{static{__name(this,"IndexBuilderOn")}constructor(e,t){this.name=e,this.unique=t}static[ss]="MySqlIndexBuilderOn";on(...e){return new vm(this.name,e,this.unique)}},vm=class{static{__name(this,"IndexBuilder")}static[ss]="MySqlIndexBuilder";config;constructor(e,t,n){this.config={name:e,columns:t,unique:n}}using(e){return this.config.using=e,this}algorythm(e){return this.config.algorythm=e,this}lock(e){return this.config.lock=e,this}build(e){return new km(this.config,e)}},km=class{static{__name(this,"Index")}static[ss]="MySqlIndex";config;constructor(e,t){this.config={...e,table:t}}}}}),Nm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/primary-keys.js"(){tn(),gs(),xm(),class{static{__name(this,"PrimaryKeyBuilder")}static[ss]="MySqlPrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new Tm(e,this.columns,this.name)}},Tm=class{static{__name(this,"PrimaryKey")}constructor(e,t,n){this.table=e,this.columns=t,this.name=n}static[ss]="MySqlPrimaryKey";columns;name;getName(){return this.name??`${this.table[wm.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}}}}),Rm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/view-common.js"(){tn(),_m=Symbol.for("drizzle:MySqlViewConfig")}});function convertIndexToString(e){return e.map(e=>"object"==typeof e?e.config.name:e)}function toArray(e){return Array.isArray(e)?e:[e]}var Mm,Lm,$m,Dm,Om,Fm,qm,jm,Bm,Um,zm=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/utils.js"(){tn(),__name(convertIndexToString,"convertIndexToString"),__name(toArray,"toArray")}});function createSetOperator2(e,t){return(n,r,...o)=>{const s=[r,...o].map(n=>({type:e,isAll:t,rightSelect:n}));for(const e of s)if(!haveSameKeys(n.getSelectedFields(),e.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return n.addSetOperators(s)}}var Hm,Wm,Gm,Vm,Qm,Km,Ym,Jm,Xm,Zm,ep,tp,np=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/query-builders/select.js"(){tn(),gs(),xm(),Cc(),Pl(),Ec(),ui(),Qs(),ai(),Ei(),Js(),zm(),Pm(),Mm=class{static{__name(this,"MySqlSelectBuilder")}static[ss]="MySqlSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,e.withList&&(this.withList=e.withList),this.distinct=e.distinct}from(e,t){const n=!!this.fields;let r;r=this.fields?this.fields:is(e,Ls)?Object.fromEntries(Object.keys(e._.selectedFields).map(t=>[t,e[t]])):is(e,Em)?e[Os].selectedFields:is(e,Zs)?{}:getTableColumns(e);let o=[],s=[],i=[];return is(e,wm)&&t&&"string"!=typeof t&&(t.useIndex&&(o=convertIndexToString(toArray(t.useIndex))),t.forceIndex&&(s=convertIndexToString(toArray(t.forceIndex))),t.ignoreIndex&&(i=convertIndexToString(toArray(t.ignoreIndex)))),new $m({table:e,fields:r,isPartialSelect:n,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct,useIndex:o,forceIndex:s,ignoreIndex:i})}},Lm=class extends rc{static{__name(this,"MySqlSelectQueryBuilderBase")}static[ss]="MySqlSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:e,fields:t,isPartialSelect:n,session:r,dialect:o,withList:s,distinct:i,useIndex:a,forceIndex:l,ignoreIndex:u}){super(),this.config={withList:s,table:e,fields:{...t},distinct:i,setOperators:[],useIndex:a,forceIndex:l,ignoreIndex:u},this.isPartialSelect=n,this.session=r,this.dialect=o,this._={selectedFields:t},this.tableName=getTableLikeName(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{}}createJoin(e){return(t,n,r)=>{const o=this.tableName,s=getTableLikeName(t);if("string"==typeof s&&this.config.joins?.some(e=>e.alias===s))throw new Error(`Alias "${s}" is already used in this query`);if(!this.isPartialSelect&&(1===Object.keys(this.joinsNotNullableMap).length&&"string"==typeof o&&(this.config.fields={[o]:this.config.fields}),"string"==typeof s&&!is(t,Zs))){const e=is(t,Ls)?t._.selectedFields:is(t,ii)?t[Os].selectedFields:t[Gs.Symbol.Columns];this.config.fields[s]=e}"function"==typeof n&&(n=n(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]);let i=[],a=[],l=[];if(is(t,wm)&&r&&"string"!=typeof r&&(r.useIndex&&(i=convertIndexToString(toArray(r.useIndex))),r.forceIndex&&(a=convertIndexToString(toArray(r.forceIndex))),r.ignoreIndex&&(l=convertIndexToString(toArray(r.ignoreIndex)))),this.config.joins.push({on:n,table:t,joinType:e,alias:s,useIndex:i,forceIndex:a,ignoreIndex:l}),"string"==typeof s)switch(e){case"left":this.joinsNotNullableMap[s]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[s]=!0;break;case"inner":this.joinsNotNullableMap[s]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[s]=!1}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(e,t){return n=>{const r="function"==typeof n?n(Dm()):n;if(!haveSameKeys(this.getSelectedFields(),r.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:r}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=n:this.config.orderBy=n}else{const t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}for(e,t={}){return this.config.lockingClause={strength:e,config:t},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){return new Proxy(new Ls(this.getSQL(),this.config.fields,e),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new nc({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}},applyMixins($m=class extends Lm{static{__name(this,"MySqlSelectBase")}static[ss]="MySqlSelect";prepare(){if(!this.session)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");const e=orderSelectedFields(this.config.fields),t=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),e);return t.joinsNotNullableMap=this.joinsNotNullableMap,t}execute=__name(e=>this.prepare().execute(e),"execute");createIterator=__name(()=>{const e=this;return async function*(t){yield*e.prepare().iterator(t)}},"createIterator");iterator=this.createIterator()},[vl]),__name(createSetOperator2,"createSetOperator"),Dm=__name(()=>({union:Om,unionAll:Fm,intersect:qm,intersectAll:jm,except:Bm,exceptAll:Um}),"getMySqlSetOperators"),Om=createSetOperator2("union",!1),Fm=createSetOperator2("union",!0),qm=createSetOperator2("intersect",!1),jm=createSetOperator2("intersect",!0),Bm=createSetOperator2("except",!1),Um=createSetOperator2("except",!0)}}),rp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/query-builders/query-builder.js"(){tn(),gs(),Am(),Ec(),Qs(),np(),Hm=class{static{__name(this,"QueryBuilder")}static[ss]="MySqlQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=is(e,Cm)?e:void 0,this.dialectConfig=is(e,Cm)?void 0:e}$with(e){const t=this;return{as:n=>("function"==typeof n&&(n=n(t)),new Proxy(new $s(n.getSQL(),n.getSelectedFields(),e,!0),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}with(...e){const t=this;function select5(n){return new Mm({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e})}function selectDistinct(n){return new Mm({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e,distinct:!0})}return __name(select5,"select"),__name(selectDistinct,"selectDistinct"),{select:select5,selectDistinct:selectDistinct}}select(e){return new Mm({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new Mm({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){return this.dialect||(this.dialect=new Cm(this.dialectConfig)),this.dialect}}}}),op=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/query-builders/insert.js"(){tn(),gs(),Pl(),ui(),ai(),Ei(),rp(),Wm=class{static{__name(this,"MySqlInsertBuilder")}constructor(e,t,n){this.table=e,this.session=t,this.dialect=n}static[ss]="MySqlInsertBuilder";shouldIgnore=!1;ignore(){return this.shouldIgnore=!0,this}values(e){if(0===(e=Array.isArray(e)?e:[e]).length)throw new Error("values() must be called with at least one value");const t=e.map(e=>{const t={},n=this.table[Gs.Symbol.Columns];for(const r of Object.keys(e)){const o=e[r];t[r]=is(o,Zs)?o:new ri(o,n[r])}return t});return new Gm(this.table,t,this.shouldIgnore,this.session,this.dialect)}select(e){const t="function"==typeof e?e(new Hm):e;if(!is(t,Zs)&&!haveSameKeys(this.table[qs],t._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new Gm(this.table,t,this.shouldIgnore,this.session,this.dialect,!0)}},Gm=class extends vl{static{__name(this,"MySqlInsertBase")}constructor(e,t,n,r,o,s){super(),this.session=r,this.dialect=o,this.config={table:e,values:t,select:s,ignore:n}}static[ss]="MySqlInsert";config;onDuplicateKeyUpdate(e){const t=this.dialect.buildUpdateSet(this.config.table,mapUpdateSet(this.config.table,e.set));return this.config.onConflict=sql`update ${t}`,this}$returningId(){const e=[];for(const[t,n]of Object.entries(this.config.table[Gs.Symbol.Columns]))n.primary&&e.push({field:n,path:[t]});return this.config.returning=e,this}getSQL(){return this.dialect.buildInsertQuery(this.config).sql}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}prepare(){const{sql:e,generatedIds:t}=this.dialect.buildInsertQuery(this.config);return this.session.prepareQuery(this.dialect.sqlToQuery(e),void 0,void 0,t,this.config.returning)}execute=__name(e=>this.prepare().execute(e),"execute");createIterator=__name(()=>{const e=this;return async function*(t){yield*e.prepare().iterator(t)}},"createIterator");iterator=this.createIterator();$dynamic(){return this}}}}),sp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/query-builders/select.types.js"(){tn()}}),ip=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/query-builders/update.js"(){tn(),gs(),Pl(),Ec(),ai(),Ei(),Vm=class{static{__name(this,"MySqlUpdateBuilder")}constructor(e,t,n,r){this.table=e,this.session=t,this.dialect=n,this.withList=r}static[ss]="MySqlUpdateBuilder";set(e){return new Qm(this.table,mapUpdateSet(this.table,e),this.session,this.dialect,this.withList)}},Qm=class extends vl{static{__name(this,"MySqlUpdateBase")}constructor(e,t,n,r,o){super(),this.session=n,this.dialect=r,this.config={set:t,table:e,withList:o}}static[ss]="MySqlUpdate";config;where(e){return this.config.where=e,this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.table[Gs.Symbol.Columns],new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(t)?t:[t];this.config.orderBy=n}else{const t=e;this.config.orderBy=t}return this}limit(e){return this.config.limit=e,this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}prepare(){return this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning)}execute=__name(e=>this.prepare().execute(e),"execute");createIterator=__name(()=>{const e=this;return async function*(t){yield*e.prepare().iterator(t)}},"createIterator");iterator=this.createIterator();$dynamic(){return this}}}}),ap=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/query-builders/index.js"(){tn(),fm(),op(),rp(),np(),sp(),ip()}}),lp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/query-builders/query.js"(){tn(),gs(),Pl(),gc(),Km=class{static{__name(this,"RelationalQueryBuilder")}constructor(e,t,n,r,o,s,i,a){this.fullSchema=e,this.schema=t,this.tableNamesMap=n,this.table=r,this.tableConfig=o,this.dialect=s,this.session=i,this.mode=a}static[ss]="MySqlRelationalQueryBuilder";findMany(e){return new Ym(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many",this.mode)}findFirst(e){return new Ym(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first",this.mode)}},Ym=class extends vl{static{__name(this,"MySqlRelationalQuery")}constructor(e,t,n,r,o,s,i,a,l,u){super(),this.fullSchema=e,this.schema=t,this.tableNamesMap=n,this.table=r,this.tableConfig=o,this.dialect=s,this.session=i,this.config=a,this.queryMode=l,this.mode=u}static[ss]="MySqlRelationalQuery";prepare(){const{query:e,builtQuery:t}=this._toSQL();return this.session.prepareQuery(t,void 0,t=>{const n=t.map(t=>mapRelationalRow(this.schema,this.tableConfig,t,e.selection));return"first"===this.queryMode?n[0]:n})}_getQuery(){return"planetscale"===this.mode?this.dialect.buildRelationalQueryWithoutLateralSubqueries({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}):this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}_toSQL(){const e=this._getQuery();return{builtQuery:this.dialect.sqlToQuery(e.sql),query:e}}getSQL(){return this._getQuery().sql}toSQL(){return this._toSQL().builtQuery}execute(){return this.prepare().execute()}}}}),cp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/db.js"(){tn(),gs(),Ec(),ui(),Qs(),hm(),ap(),lp(),Jm=class{static{__name(this,"MySqlDatabase")}constructor(e,t,n,r){if(this.dialect=e,this.session=t,this.mode=r,this._=n?{schema:n.schema,fullSchema:n.fullSchema,tableNamesMap:n.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={},this._.schema)for(const[r,o]of Object.entries(this._.schema))this.query[r]=new Km(n.fullSchema,this._.schema,this._.tableNamesMap,n.fullSchema[r],o,e,t,this.mode)}static[ss]="MySqlDatabase";query;$with(e){const t=this;return{as:n=>("function"==typeof n&&(n=n(new Hm(t.dialect))),new Proxy(new $s(n.getSQL(),n.getSelectedFields(),e,!0),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}$count(e,t){return new dm({source:e,filters:t,session:this.session})}with(...e){const t=this;function select5(n){return new Mm({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e})}function selectDistinct(n){return new Mm({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}function update(n){return new Vm(n,t.session,t.dialect,e)}function delete_(n){return new mm(n,t.session,t.dialect,e)}return __name(select5,"select"),__name(selectDistinct,"selectDistinct"),__name(update,"update"),__name(delete_,"delete_"),{select:select5,selectDistinct:selectDistinct,update:update,delete:delete_}}select(e){return new Mm({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new Mm({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(e){return new Vm(e,this.session,this.dialect)}insert(e){return new Wm(e,this.session,this.dialect)}delete(e){return new mm(e,this.session,this.dialect)}execute(e){return this.session.execute("string"==typeof e?sql.raw(e):e.getSQL())}transaction(e,t){return this.session.transaction(e,t)}}}});function mysqlViewWithSchema(e,t,n){return t?new ep(e,t,n):new Zm(e,n)}var up,dp,mp,pp,gp,hp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/view.js"(){tn(),gs(),Ec(),Ei(),rp(),xm(),Pm(),Rm(),Xm=class{static{__name(this,"ViewBuilderCore")}constructor(e,t){this.name=e,this.schema=t}static[ss]="MySqlViewBuilder";config={};algorithm(e){return this.config.algorithm=e,this}sqlSecurity(e){return this.config.sqlSecurity=e,this}withCheckOption(e){return this.config.withCheckOption=e??"cascaded",this}},Zm=class extends Xm{static{__name(this,"ViewBuilder")}static[ss]="MySqlViewBuilder";as(e){"function"==typeof e&&(e=e(new Hm));const t=new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),n=new Proxy(e.getSelectedFields(),t);return new Proxy(new tp({mysqlConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:n,query:e.getSQL().inlineParams()}}),t)}},ep=class extends Xm{static{__name(this,"ManualViewBuilder")}static[ss]="MySqlManualViewBuilder";columns;constructor(e,t,n){super(e,n),this.columns=getTableColumns(Sm(e,t))}existing(){return new Proxy(new tp({mysqlConfig:void 0,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:void 0}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new tp({mysqlConfig:this.config,config:{name:this.name,schema:this.schema,selectedFields:this.columns,query:e.inlineParams()}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}},tp=class extends Em{static{__name(this,"MySqlView")}static[ss]="MySqlView";[_m];constructor({mysqlConfig:e,config:t}){super(t),this[_m]=e}},__name(mysqlViewWithSchema,"mysqlViewWithSchema")}}),fp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/schema.js"(){tn(),gs(),xm(),hp(),class{static{__name(this,"MySqlSchema")}constructor(e){this.schemaName=e}static[ss]="MySqlSchema";table=__name((e,t,n)=>mysqlTableWithSchema(e,t,n,this.schemaName),"table");view=__name((e,t)=>mysqlViewWithSchema(e,t,this.schemaName),"view")}}}),yp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/session.js"(){tn(),gs(),Ml(),ui(),cp(),class{static{__name(this,"MySqlPreparedQuery")}static[ss]="MySqlPreparedQuery";joinsNotNullableMap},class{static{__name(this,"MySqlSession")}constructor(e){this.dialect=e}static[ss]="MySqlSession";execute(e){return this.prepareQuery(this.dialect.sqlToQuery(e),void 0).execute()}async count(e){const t=await this.execute(e);return Number(t[0][0].count)}getSetTransactionSQL(e){const t=[];return e.isolationLevel&&t.push(`isolation level ${e.isolationLevel}`),t.length?sql`set transaction ${sql.raw(t.join(" "))}`:void 0}getStartTransactionSQL(e){const t=[];return e.withConsistentSnapshot&&t.push("with consistent snapshot"),e.accessMode&&t.push(e.accessMode),t.length?sql`start transaction ${sql.raw(t.join(" "))}`:void 0}},class extends Jm{static{__name(this,"MySqlTransaction")}constructor(e,t,n,r,o){super(e,t,n,o),this.schema=n,this.nestedIndex=r}static[ss]="MySqlTransaction";rollback(){throw new Nl}}}}),wp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/subquery.js"(){tn()}}),Sp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/mysql-core/index.js"(){tn(),Pu(),Au(),gm(),cp(),Am(),Iu(),Im(),Nm(),ap(),fp(),yp(),wp(),xm(),qu(),zm(),Rm(),hp()}}),bp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/alias.js"(){tn()}}),Ep=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/checks.js"(){tn(),gs(),class{static{__name(this,"CheckBuilder")}constructor(e,t){this.name=e,this.value=t}static[ss]="SQLiteCheckBuilder";brand;build(e){return new up(e,this)}},up=class{static{__name(this,"Check")}constructor(e,t){this.table=e,this.name=t.name,this.value=t.value}static[ss]="SQLiteCheck";name;value}}}),Cp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/foreign-keys.js"(){tn(),gs(),ys(),dp=class{static{__name(this,"ForeignKeyBuilder")}static[ss]="SQLiteForeignKeyBuilder";reference;_onUpdate;_onDelete;constructor(e,t){this.reference=()=>{const{name:t,columns:n,foreignColumns:r}=e();return{name:t,columns:n,foreignTable:r[0].table,foreignColumns:r}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e,this}onDelete(e){return this._onDelete=e,this}build(e){return new mp(e,this)}},mp=class{static{__name(this,"ForeignKey")}constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[ss]="SQLiteForeignKey";reference;onUpdate;onDelete;getName(){const{name:e,columns:t,foreignColumns:n}=this.reference(),r=t.map(e=>e.name),o=n.map(e=>e.name),s=[this.table[ds],...r,n[0].table[ds],...o];return e??`${s.join("_")}_fk`}}}});function uniqueKeyName3(e,t){return`${e[ds]}_${t.join("_")}_unique`}var vp,kp,Tp,_p,xp,Pp,Ap,Ip,Np=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/unique-constraint.js"(){tn(),gs(),ys(),__name(uniqueKeyName3,"uniqueKeyName"),pp=class{static{__name(this,"UniqueConstraintBuilder")}constructor(e,t){this.name=t,this.columns=e}static[ss]="SQLiteUniqueConstraintBuilder";columns;build(e){return new gp(e,this.columns,this.name)}},class{static{__name(this,"UniqueOnConstraintBuilder")}static[ss]="SQLiteUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new pp(e,this.name)}},gp=class{static{__name(this,"UniqueConstraint")}constructor(e,t,n){this.table=e,this.columns=t,this.name=n??uniqueKeyName3(this.table,this.columns.map(e=>e.name))}static[ss]="SQLiteUniqueConstraint";columns;name;getName(){return this.name}}}}),Rp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/columns/common.js"(){tn(),fs(),hs(),gs(),Cp(),Np(),vp=class extends us{static{__name(this,"SQLiteColumnBuilder")}static[ss]="SQLiteColumnBuilder";foreignKeyConfigs=[];references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e){return this.config.isUnique=!0,this.config.uniqueName=e,this}generatedAlwaysAs(e,t){return this.config.generated={as:e,type:"always",mode:t?.mode??"virtual"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:n,actions:r})=>((n,r)=>{const o=new dp(()=>{const t=n();return{columns:[e],foreignColumns:[t]}});return r.onUpdate&&o.onUpdate(r.onUpdate),r.onDelete&&o.onDelete(r.onDelete),o.build(t)})(n,r))}},kp=class extends cs{static{__name(this,"SQLiteColumn")}constructor(e,t){t.uniqueName||(t.uniqueName=uniqueKeyName3(e,[t.name])),super(e,t),this.table=e}static[ss]="SQLiteColumn"}}});function blob(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"json"===r?.mode?new xp(n):"bigint"===r?.mode?new Tp(n):new Ap(n)}var Mp,Lp,$p=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/columns/blob.js"(){tn(),gs(),Ei(),Rp(),Tp=class extends vp{static{__name(this,"SQLiteBigIntBuilder")}static[ss]="SQLiteBigIntBuilder";constructor(e){super(e,"bigint","SQLiteBigInt")}build(e){return new _p(e,this.config)}},_p=class extends kp{static{__name(this,"SQLiteBigInt")}static[ss]="SQLiteBigInt";getSQLType(){return"blob"}mapFromDriverValue(e){if(Buffer.isBuffer(e))return BigInt(e.toString());if(e instanceof ArrayBuffer){const t=new TextDecoder;return BigInt(t.decode(e))}return BigInt(String.fromCodePoint(...e))}mapToDriverValue(e){return Buffer.from(e.toString())}},xp=class extends vp{static{__name(this,"SQLiteBlobJsonBuilder")}static[ss]="SQLiteBlobJsonBuilder";constructor(e){super(e,"json","SQLiteBlobJson")}build(e){return new Pp(e,this.config)}},Pp=class extends kp{static{__name(this,"SQLiteBlobJson")}static[ss]="SQLiteBlobJson";getSQLType(){return"blob"}mapFromDriverValue(e){if(Buffer.isBuffer(e))return JSON.parse(e.toString());if(e instanceof ArrayBuffer){const t=new TextDecoder;return JSON.parse(t.decode(e))}return JSON.parse(String.fromCodePoint(...e))}mapToDriverValue(e){return Buffer.from(JSON.stringify(e))}},Ap=class extends vp{static{__name(this,"SQLiteBlobBufferBuilder")}static[ss]="SQLiteBlobBufferBuilder";constructor(e){super(e,"buffer","SQLiteBlobBuffer")}build(e){return new Ip(e,this.config)}},Ip=class extends kp{static{__name(this,"SQLiteBlobBuffer")}static[ss]="SQLiteBlobBuffer";getSQLType(){return"blob"}},__name(blob,"blob")}});function customType3(e){return(t,n)=>{const{name:r,config:o}=getColumnNameAndConfig(t,n);return new Mp(r,o,e)}}var Dp,Op,Fp,qp,jp,Bp,Up,zp,Hp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/columns/custom.js"(){tn(),gs(),Ei(),Rp(),Mp=class extends vp{static{__name(this,"SQLiteCustomColumnBuilder")}static[ss]="SQLiteCustomColumnBuilder";constructor(e,t,n){super(e,"custom","SQLiteCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=n}build(e){return new Lp(e,this.config)}},Lp=class extends kp{static{__name(this,"SQLiteCustomColumn")}static[ss]="SQLiteCustomColumn";sqlName;mapTo;mapFrom;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return"function"==typeof this.mapFrom?this.mapFrom(e):e}mapToDriverValue(e){return"function"==typeof this.mapTo?this.mapTo(e):e}},__name(customType3,"customType")}});function integer2(e,t){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"timestamp"===r?.mode||"timestamp_ms"===r?.mode?new jp(n,r.mode):"boolean"===r?.mode?new Up(n,r.mode):new Fp(n)}var Wp,Gp,Vp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/columns/integer.js"(){tn(),gs(),ui(),Ei(),Rp(),Dp=class extends vp{static{__name(this,"SQLiteBaseIntegerBuilder")}static[ss]="SQLiteBaseIntegerBuilder";constructor(e,t,n){super(e,t,n),this.config.autoIncrement=!1}primaryKey(e){return e?.autoIncrement&&(this.config.autoIncrement=!0),this.config.hasDefault=!0,super.primaryKey()}},Op=class extends kp{static{__name(this,"SQLiteBaseInteger")}static[ss]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}},Fp=class extends Dp{static{__name(this,"SQLiteIntegerBuilder")}static[ss]="SQLiteIntegerBuilder";constructor(e){super(e,"number","SQLiteInteger")}build(e){return new qp(e,this.config)}},qp=class extends Op{static{__name(this,"SQLiteInteger")}static[ss]="SQLiteInteger"},jp=class extends Dp{static{__name(this,"SQLiteTimestampBuilder")}static[ss]="SQLiteTimestampBuilder";constructor(e,t){super(e,"date","SQLiteTimestamp"),this.config.mode=t}defaultNow(){return this.default(sql`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build(e){return new Bp(e,this.config)}},Bp=class extends Op{static{__name(this,"SQLiteTimestamp")}static[ss]="SQLiteTimestamp";mode=this.config.mode;mapFromDriverValue(e){return"timestamp"===this.config.mode?new Date(1e3*e):new Date(e)}mapToDriverValue(e){const t=e.getTime();return"timestamp"===this.config.mode?Math.floor(t/1e3):t}},Up=class extends Dp{static{__name(this,"SQLiteBooleanBuilder")}static[ss]="SQLiteBooleanBuilder";constructor(e,t){super(e,"boolean","SQLiteBoolean"),this.config.mode=t}build(e){return new zp(e,this.config)}},zp=class extends Op{static{__name(this,"SQLiteBoolean")}static[ss]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(e){return 1===Number(e)}mapToDriverValue(e){return e?1:0}},__name(integer2,"integer")}});function numeric2(e){return new Wp(e??"")}var Qp,Kp,Yp=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/columns/numeric.js"(){tn(),gs(),Rp(),Wp=class extends vp{static{__name(this,"SQLiteNumericBuilder")}static[ss]="SQLiteNumericBuilder";constructor(e){super(e,"string","SQLiteNumeric")}build(e){return new Gp(e,this.config)}},Gp=class extends kp{static{__name(this,"SQLiteNumeric")}static[ss]="SQLiteNumeric";getSQLType(){return"numeric"}},__name(numeric2,"numeric")}});function real3(e){return new Qp(e??"")}var Jp,Xp,Zp,eg,tg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/columns/real.js"(){tn(),gs(),Rp(),Qp=class extends vp{static{__name(this,"SQLiteRealBuilder")}static[ss]="SQLiteRealBuilder";constructor(e){super(e,"number","SQLiteReal")}build(e){return new Kp(e,this.config)}},Kp=class extends kp{static{__name(this,"SQLiteReal")}static[ss]="SQLiteReal";getSQLType(){return"real"}},__name(real3,"real")}});function text3(e,t={}){const{name:n,config:r}=getColumnNameAndConfig(e,t);return"json"===r.mode?new Zp(n):new Jp(n,r)}var ng=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/columns/text.js"(){tn(),gs(),Ei(),Rp(),Jp=class extends vp{static{__name(this,"SQLiteTextBuilder")}static[ss]="SQLiteTextBuilder";constructor(e,t){super(e,"string","SQLiteText"),this.config.enumValues=t.enum,this.config.length=t.length}build(e){return new Xp(e,this.config)}},Xp=class extends kp{static{__name(this,"SQLiteText")}static[ss]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor(e,t){super(e,t)}getSQLType(){return"text"+(this.config.length?`(${this.config.length})`:"")}},Zp=class extends vp{static{__name(this,"SQLiteTextJsonBuilder")}static[ss]="SQLiteTextJsonBuilder";constructor(e){super(e,"json","SQLiteTextJson")}build(e){return new eg(e,this.config)}},eg=class extends kp{static{__name(this,"SQLiteTextJson")}static[ss]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(e){return JSON.parse(e)}mapToDriverValue(e){return JSON.stringify(e)}},__name(text3,"text")}}),rg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/columns/index.js"(){tn(),$p(),Rp(),Hp(),Vp(),Yp(),tg(),ng()}});function getSQLiteColumnBuilders(){return{blob:blob,customType:customType3,integer:integer2,numeric:numeric2,real:real3,text:text3}}var og,sg,ig,ag=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/columns/all.js"(){tn(),$p(),Hp(),Vp(),Yp(),tg(),ng(),__name(getSQLiteColumnBuilders,"getSQLiteColumnBuilders")}});function sqliteTableBase(e,t,n,r,o=e){const s=new sg(e,r,o),i="function"==typeof t?t(getSQLiteColumnBuilders()):t,a=Object.fromEntries(Object.entries(i).map(([e,t])=>{const n=t;n.setName(e);const r=n.build(s);return s[og].push(...n.buildForeignKeys(r,s)),[e,r]})),l=Object.assign(s,a);return l[Gs.Symbol.Columns]=a,l[Gs.Symbol.ExtraConfigColumns]=a,n&&(l[sg.Symbol.ExtraConfigBuilder]=n),l}var lg,cg,ug,dg,mg,pg,gg,hg,fg,yg,wg,Sg,bg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/table.js"(){tn(),gs(),ai(),ag(),og=Symbol.for("drizzle:SQLiteInlineForeignKeys"),sg=class extends Gs{static{__name(this,"SQLiteTable")}static[ss]="SQLiteTable";static Symbol=Object.assign({},Gs.Symbol,{InlineForeignKeys:og});[Gs.Symbol.Columns];[og]=[];[Gs.Symbol.ExtraConfigBuilder]=void 0},__name(sqliteTableBase,"sqliteTableBase"),ig=__name((e,t,n)=>sqliteTableBase(e,t,n),"sqliteTable")}}),Eg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/query-builders/delete.js"(){tn(),gs(),Pl(),Ec(),bg(),ai(),Ei(),lg=class extends vl{static{__name(this,"SQLiteDeleteBase")}constructor(e,t,n,r){super(),this.table=e,this.session=t,this.dialect=n,this.config={table:e,withList:r}}static[ss]="SQLiteDelete";config;where(e){return this.config.where=e,this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.table[Gs.Symbol.Columns],new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(t)?t:[t];this.config.orderBy=n}else{const t=e;this.config.orderBy=t}return this}limit(e){return this.config.limit=e,this}returning(e=this.table[sg.Symbol.Columns]){return this.config.returning=orderSelectedFields(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0)}prepare(){return this._prepare(!1)}run=__name(e=>this._prepare().run(e),"run");all=__name(e=>this._prepare().all(e),"all");get=__name(e=>this._prepare().get(e),"get");values=__name(e=>this._prepare().values(e),"values");async execute(e){return this._prepare().execute(e)}$dynamic(){return this}}}}),Cg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/view-base.js"(){tn(),gs(),ui(),cg=class extends ii{static{__name(this,"SQLiteViewBase")}static[ss]="SQLiteViewBase"}}}),vg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/dialect.js"(){tn(),pi(),Rl(),hs(),gs(),Ml(),gc(),wc(),ui(),rg(),bg(),Qs(),ai(),Ei(),Js(),Cg(),ug=class{static{__name(this,"SQLiteDialect")}static[ss]="SQLiteDialect";casing;constructor(e){this.casing=new Tl(e?.casing)}escapeName(e){return`"${e}"`}escapeParam(e){return"?"}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;const t=[sql`with `];for(const[n,r]of e.entries())t.push(sql`${sql.identifier(r._.alias)} as (${r._.sql})`),n<e.length-1&&t.push(sql`, `);return t.push(sql` `),sql.join(t)}buildDeleteQuery({table:e,where:t,returning:n,withList:r,limit:o,orderBy:s}){return sql`${this.buildWithCTE(r)}delete from ${e}${t?sql` where ${t}`:void 0}${n?sql` returning ${this.buildSelection(n,{isSingleTable:!0})}`:void 0}${this.buildOrderBy(s)}${this.buildLimit(o)}`}buildUpdateSet(e,t){const n=e[Gs.Symbol.Columns],r=Object.keys(n).filter(e=>void 0!==t[e]||void 0!==n[e]?.onUpdateFn),o=r.length;return sql.join(r.flatMap((e,r)=>{const s=n[e],i=t[e]??sql.param(s.onUpdateFn(),s),a=sql`${sql.identifier(this.casing.getColumnCasing(s))} = ${i}`;return r<o-1?[a,sql.raw(", ")]:[a]}))}buildUpdateQuery({table:e,set:t,where:n,returning:r,withList:o,joins:s,from:i,limit:a,orderBy:l}){const u=this.buildWithCTE(o),d=this.buildUpdateSet(e,t),m=i&&sql.join([sql.raw(" from "),this.buildFromTable(i)]);return sql`${u}update ${e} set ${d}${m}${this.buildJoins(s)}${n?sql` where ${n}`:void 0}${r?sql` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0}${this.buildOrderBy(l)}${this.buildLimit(a)}`}buildSelection(e,{isSingleTable:t=!1}={}){const n=e.length,r=e.flatMap(({field:e},r)=>{const o=[];if(is(e,Zs.Aliased)&&e.isSelectionField)o.push(sql.identifier(e.fieldAlias));else if(is(e,Zs.Aliased)||is(e,Zs)){const n=is(e,Zs.Aliased)?e.sql:e;t?o.push(new Zs(n.queryChunks.map(e=>is(e,cs)?sql.identifier(this.casing.getColumnCasing(e)):e))):o.push(n),is(e,Zs.Aliased)&&o.push(sql` as ${sql.identifier(e.fieldAlias)}`)}else if(is(e,cs)){const n=e.table[Gs.Symbol.Name];t?o.push(sql.identifier(this.casing.getColumnCasing(e))):o.push(sql`${sql.identifier(n)}.${sql.identifier(this.casing.getColumnCasing(e))}`)}return r<n-1&&o.push(sql`, `),o});return sql.join(r)}buildJoins(e){if(!e||0===e.length)return;const t=[];if(e)for(const[n,r]of e.entries()){0===n&&t.push(sql` `);const o=r.table;if(is(o,sg)){const e=o[sg.Symbol.Name],n=o[sg.Symbol.Schema],s=o[sg.Symbol.OriginalName],i=e===s?void 0:r.alias;t.push(sql`${sql.raw(r.joinType)} join ${n?sql`${sql.identifier(n)}.`:void 0}${sql.identifier(s)}${i&&sql` ${sql.identifier(i)}`} on ${r.on}`)}else t.push(sql`${sql.raw(r.joinType)} join ${o} on ${r.on}`);n<e.length-1&&t.push(sql` `)}return sql.join(t)}buildLimit(e){return"object"==typeof e||"number"==typeof e&&e>=0?sql` limit ${e}`:void 0}buildOrderBy(e){const t=[];if(e)for(const[n,r]of e.entries())t.push(r),n<e.length-1&&t.push(sql`, `);return t.length>0?sql` order by ${sql.join(t)}`:void 0}buildFromTable(e){return is(e,Gs)&&e[Gs.Symbol.OriginalName]!==e[Gs.Symbol.Name]?sql`${sql.identifier(e[Gs.Symbol.OriginalName])} ${sql.identifier(e[Gs.Symbol.Name])}`:e}buildSelectQuery({withList:e,fields:t,fieldsFlat:n,where:r,having:o,table:s,joins:i,orderBy:a,groupBy:l,limit:u,offset:d,distinct:m,setOperators:g}){const h=n??orderSelectedFields(t);for(const e of h)if(is(e.field,cs)&&getTableName(e.field.table)!==(is(s,Ls)?s._.alias:is(s,cg)?s[Os].name:is(s,Zs)?void 0:getTableName(s))&&!(e=>i?.some(({alias:t})=>t===(e[Gs.Symbol.IsAlias]?getTableName(e):e[Gs.Symbol.BaseName])))(e.field.table)){const t=getTableName(e.field.table);throw new Error(`Your "${e.path.join("->")}" field references a column "${t}"."${e.field.name}", but the table "${t}" is not part of the query! Did you forget to join it?`)}const f=!i||0===i.length,y=this.buildWithCTE(e),w=m?sql` distinct`:void 0,S=this.buildSelection(h,{isSingleTable:f}),E=this.buildFromTable(s),C=this.buildJoins(i),v=r?sql` where ${r}`:void 0,k=o?sql` having ${o}`:void 0,T=[];if(l)for(const[e,t]of l.entries())T.push(t),e<l.length-1&&T.push(sql`, `);const _=T.length>0?sql` group by ${sql.join(T)}`:void 0,x=sql`${y}select${w} ${S} from ${E}${C}${v}${_}${k}${this.buildOrderBy(a)}${this.buildLimit(u)}${d?sql` offset ${d}`:void 0}`;return g.length>0?this.buildSetOperations(x,g):x}buildSetOperations(e,t){const[n,...r]=t;if(!n)throw new Error("Cannot pass undefined values to any set operator");return 0===r.length?this.buildSetOperationQuery({leftSelect:e,setOperator:n}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:n}),r)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:n,rightSelect:r,limit:o,orderBy:s,offset:i}}){const a=sql`${e.getSQL()} `,l=sql`${r.getSQL()}`;let u;if(s&&s.length>0){const e=[];for(const t of s)if(is(t,kp))e.push(sql.identifier(t.name));else if(is(t,Zs)){for(let e=0;e<t.queryChunks.length;e++){const n=t.queryChunks[e];is(n,kp)&&(t.queryChunks[e]=sql.identifier(this.casing.getColumnCasing(n)))}e.push(sql`${t}`)}else e.push(sql`${t}`);u=sql` order by ${sql.join(e,sql`, `)}`}const d="object"==typeof o||"number"==typeof o&&o>=0?sql` limit ${o}`:void 0,m=sql.raw(`${t} ${n?"all ":""}`);return sql`${a}${m}${l}${u}${d}${i?sql` offset ${i}`:void 0}`}buildInsertQuery({table:e,values:t,onConflict:n,returning:r,withList:o,select:s}){const i=[],a=e[Gs.Symbol.Columns],l=Object.entries(a).filter(([e,t])=>!t.shouldDisableInsert()),u=l.map(([,e])=>sql.identifier(this.casing.getColumnCasing(e)));if(s){const e=t;is(e,Zs)?i.push(e):i.push(e.getSQL())}else{const e=t;i.push(sql.raw("values "));for(const[t,n]of e.entries()){const r=[];for(const[e,t]of l){const o=n[e];if(void 0===o||is(o,ri)&&void 0===o.value){let e;if(null!==t.default&&void 0!==t.default)e=is(t.default,Zs)?t.default:sql.param(t.default,t);else if(void 0!==t.defaultFn){const n=t.defaultFn();e=is(n,Zs)?n:sql.param(n,t)}else if(t.default||void 0===t.onUpdateFn)e=sql`null`;else{const n=t.onUpdateFn();e=is(n,Zs)?n:sql.param(n,t)}r.push(e)}else r.push(o)}i.push(r),t<e.length-1&&i.push(sql`, `)}}const d=this.buildWithCTE(o),m=sql.join(i);return sql`${d}insert into ${e} ${u} ${m}${n?sql` on conflict ${n}`:void 0}${r?sql` returning ${this.buildSelection(r,{isSingleTable:!0})}`:void 0}`}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,invokeSource:t})}buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:n,table:r,tableConfig:o,queryConfig:s,tableAlias:i,nestedQueryRelation:a,joinOn:l}){let u,d,m,g=[],h=[];const f=[];if(!0===s)g=Object.entries(o.columns).map(([e,t])=>({dbKey:t.name,tsKey:e,field:aliasedTableColumn(t,i),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{const r=Object.fromEntries(Object.entries(o.columns).map(([e,t])=>[e,aliasedTableColumn(t,i)]));if(s.where){const e="function"==typeof s.where?s.where(r,getOperators()):s.where;m=e&&mapColumnsInSQLToAlias(e,i)}const a=[];let l=[];if(s.columns){let e=!1;for(const[t,n]of Object.entries(s.columns))void 0!==n&&t in o.columns&&(e||!0!==n||(e=!0),l.push(t));l.length>0&&(l=e?l.filter(e=>!0===s.columns?.[e]):Object.keys(o.columns).filter(e=>!l.includes(e)))}else l=Object.keys(o.columns);for(const e of l){const t=o.columns[e];a.push({tsKey:e,value:t})}let f,y=[];if(s.with&&(y=Object.entries(s.with).filter(e=>!!e[1]).map(([e,t])=>({tsKey:e,queryConfig:t,relation:o.relations[e]}))),s.extras){f="function"==typeof s.extras?s.extras(r,{sql:sql}):s.extras;for(const[e,t]of Object.entries(f))a.push({tsKey:e,value:mapColumnsInAliasedSQLToAlias(t,i)})}for(const{tsKey:e,value:t}of a)g.push({dbKey:is(t,Zs.Aliased)?t.fieldAlias:o.columns[e].name,tsKey:e,field:is(t,cs)?aliasedTableColumn(t,i):t,relationTableTsKey:void 0,isJson:!1,selection:[]});let w="function"==typeof s.orderBy?s.orderBy(r,getOrderByOperators()):s.orderBy??[];Array.isArray(w)||(w=[w]),h=w.map(e=>is(e,cs)?aliasedTableColumn(e,i):mapColumnsInSQLToAlias(e,i)),u=s.limit,d=s.offset;for(const{tsKey:r,queryConfig:o,relation:s}of y){const a=normalizeRelation(t,n,s),l=n[getTableUniqueName(s.referencedTable)],u=`${i}_${r}`,d=and(...a.fields.map((e,t)=>jl(aliasedTableColumn(a.references[t],u),aliasedTableColumn(e,i)))),m=this.buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:n,table:e[l],tableConfig:t[l],queryConfig:is(s,Yl)?!0===o?{limit:1}:{...o,limit:1}:o,tableAlias:u,joinOn:d,nestedQueryRelation:s}),h=sql`(${m.sql})`.as(r);g.push({dbKey:r,tsKey:r,field:h,relationTableTsKey:l,isJson:!0,selection:m.selection})}}if(0===g.length)throw new Il({message:`No fields selected for table "${o.tsName}" ("${i}"). You need to have at least one item in "columns", "with" or "extras". If you need to select all columns, omit the "columns" key or set it to undefined.`});let y;if(m=and(l,m),a){let e=sql`json_array(${sql.join(g.map(({field:e})=>is(e,kp)?sql.identifier(this.casing.getColumnCasing(e)):is(e,Zs.Aliased)?e.sql:e),sql`, `)})`;is(a,Jl)&&(e=sql`coalesce(json_group_array(${e}), json_array())`);const t=[{dbKey:"data",tsKey:"data",field:e.as("data"),isJson:!0,relationTableTsKey:o.tsName,selection:g}];void 0!==u||void 0!==d||h.length>0?(y=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:[{path:[],field:sql.raw("*")}],where:m,limit:u,offset:d,orderBy:h,setOperators:[]}),m=void 0,u=void 0,d=void 0,h=void 0):y=aliasedTable(r,i),y=this.buildSelectQuery({table:is(y,sg)?y:new Ls(y,{},i),fields:{},fieldsFlat:t.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),joins:f,where:m,limit:u,offset:d,orderBy:h,setOperators:[]})}else y=this.buildSelectQuery({table:aliasedTable(r,i),fields:{},fieldsFlat:g.map(({field:e})=>({path:[],field:is(e,cs)?aliasedTableColumn(e,i):e})),joins:f,where:m,limit:u,offset:d,orderBy:h,setOperators:[]});return{tableTsKey:o.tsName,sql:y,selection:g}}},dg=class extends ug{static{__name(this,"SQLiteSyncDialect")}static[ss]="SQLiteSyncDialect";migrate(e,t,n){const r=void 0===n||"string"==typeof n?"__drizzle_migrations":n.migrationsTable??"__drizzle_migrations",o=sql`
15
15
  CREATE TABLE IF NOT EXISTS ${sql.identifier(r)} (
16
16
  id SERIAL PRIMARY KEY,
17
17
  hash text NOT NULL,
@@ -23,7 +23,7 @@ import*as e from"path";import t,{join as n,dirname as r,parse as o,relative as s
23
23
  hash text NOT NULL,
24
24
  created_at numeric
25
25
  )
26
- `;await t.run(o);const s=(await t.values(sql`SELECT id, hash, created_at FROM ${sql.identifier(r)} ORDER BY created_at DESC LIMIT 1`))[0]??void 0;await t.transaction(async t=>{for(const n of e)if(!s||Number(s[2])<n.folderMillis){for(const e of n.sql)await t.run(sql.raw(e));await t.run(sql`INSERT INTO ${sql.identifier(r)} ("hash", "created_at") VALUES(${n.hash}, ${n.folderMillis})`)}})}}}});function createSetOperator3(e,t){return(n,r,...o)=>{const s=[r,...o].map(n=>({type:e,isAll:t,rightSelect:n}));for(const e of s)if(!haveSameKeys(n.getSelectedFields(),e.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return n.addSetOperators(s)}}var kg,Tg,_g,xg,Pg,Ag,Ig,Ng,Rg,Mg,Lg,$g,Dg,Og,Fg,qg,jg,Bg,Ug,zg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/query-builders/select.js"(){tn(),gs(),Cc(),Pl(),Ec(),ui(),Qs(),ai(),Ei(),Js(),Cg(),mg=class{static{__name(this,"SQLiteSelectBuilder")}static[ss]="SQLiteSelectBuilder";fields;session;dialect;withList;distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,this.withList=e.withList,this.distinct=e.distinct}from(e){const t=!!this.fields;let n;return n=this.fields?this.fields:is(e,Ls)?Object.fromEntries(Object.keys(e._.selectedFields).map(t=>[t,e[t]])):is(e,cg)?e[Os].selectedFields:is(e,Zs)?{}:getTableColumns(e),new gg({table:e,fields:n,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}},pg=class extends rc{static{__name(this,"SQLiteSelectQueryBuilderBase")}static[ss]="SQLiteSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:e,fields:t,isPartialSelect:n,session:r,dialect:o,withList:s,distinct:i}){super(),this.config={withList:s,table:e,fields:{...t},distinct:i,setOperators:[]},this.isPartialSelect=n,this.session=r,this.dialect=o,this._={selectedFields:t},this.tableName=getTableLikeName(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{}}createJoin(e){return(t,n)=>{const r=this.tableName,o=getTableLikeName(t);if("string"==typeof o&&this.config.joins?.some(e=>e.alias===o))throw new Error(`Alias "${o}" is already used in this query`);if(!this.isPartialSelect&&(1===Object.keys(this.joinsNotNullableMap).length&&"string"==typeof r&&(this.config.fields={[r]:this.config.fields}),"string"==typeof o&&!is(t,Zs))){const e=is(t,Ls)?t._.selectedFields:is(t,ii)?t[Os].selectedFields:t[Gs.Symbol.Columns];this.config.fields[o]=e}if("function"==typeof n&&(n=n(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:n,table:t,joinType:e,alias:o}),"string"==typeof o)switch(e){case"left":this.joinsNotNullableMap[o]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!0;break;case"inner":this.joinsNotNullableMap[o]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!1}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(e,t){return n=>{const r="function"==typeof n?n(hg()):n;if(!haveSameKeys(this.getSelectedFields(),r.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:r}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);except=this.createSetOperator("except",!1);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=n:this.config.orderBy=n}else{const t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){return new Proxy(new Ls(this.getSQL(),this.config.fields,e),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new nc({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}},applyMixins(gg=class extends pg{static{__name(this,"SQLiteSelectBase")}static[ss]="SQLiteSelect";_prepare(e=!0){if(!this.session)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");const t=orderSelectedFields(this.config.fields),n=this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),t,"all",!0);return n.joinsNotNullableMap=this.joinsNotNullableMap,n}prepare(){return this._prepare(!1)}run=__name(e=>this._prepare().run(e),"run");all=__name(e=>this._prepare().all(e),"all");get=__name(e=>this._prepare().get(e),"get");values=__name(e=>this._prepare().values(e),"values");async execute(){return this.all()}},[vl]),__name(createSetOperator3,"createSetOperator"),hg=__name(()=>({union:fg,unionAll:yg,intersect:wg,except:Sg}),"getSQLiteSetOperators"),fg=createSetOperator3("union",!1),yg=createSetOperator3("union",!0),wg=createSetOperator3("intersect",!1),Sg=createSetOperator3("except",!1)}}),Hg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js"(){tn(),gs(),Ec(),vg(),Qs(),zg(),kg=class{static{__name(this,"QueryBuilder")}static[ss]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=is(e,ug)?e:void 0,this.dialectConfig=is(e,ug)?void 0:e}$with(e){const t=this;return{as:n=>("function"==typeof n&&(n=n(t)),new Proxy(new $s(n.getSQL(),n.getSelectedFields(),e,!0),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}with(...e){const t=this;function select5(n){return new mg({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e})}function selectDistinct(n){return new mg({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e,distinct:!0})}return __name(select5,"select"),__name(selectDistinct,"selectDistinct"),{select:select5,selectDistinct:selectDistinct}}select(e){return new mg({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new mg({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){return this.dialect||(this.dialect=new dg(this.dialectConfig)),this.dialect}}}}),Wg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/query-builders/insert.js"(){tn(),gs(),Pl(),ui(),bg(),ai(),Ei(),Hg(),Tg=class{static{__name(this,"SQLiteInsertBuilder")}constructor(e,t,n,r){this.table=e,this.session=t,this.dialect=n,this.withList=r}static[ss]="SQLiteInsertBuilder";values(e){if(0===(e=Array.isArray(e)?e:[e]).length)throw new Error("values() must be called with at least one value");const t=e.map(e=>{const t={},n=this.table[Gs.Symbol.Columns];for(const r of Object.keys(e)){const o=e[r];t[r]=is(o,Zs)?o:new ri(o,n[r])}return t});return new _g(this.table,t,this.session,this.dialect,this.withList)}select(e){const t="function"==typeof e?e(new kg):e;if(!is(t,Zs)&&!haveSameKeys(this.table[qs],t._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new _g(this.table,t,this.session,this.dialect,this.withList,!0)}},_g=class extends vl{static{__name(this,"SQLiteInsertBase")}constructor(e,t,n,r,o,s){super(),this.session=n,this.dialect=r,this.config={table:e,values:t,withList:o,select:s}}static[ss]="SQLiteInsert";config;returning(e=this.config.table[sg.Symbol.Columns]){return this.config.returning=orderSelectedFields(e),this}onConflictDoNothing(e={}){if(void 0===e.target)this.config.onConflict=sql`do nothing`;else{const t=Array.isArray(e.target)?sql`${e.target}`:sql`${[e.target]}`,n=e.where?sql` where ${e.where}`:sql``;this.config.onConflict=sql`${t} do nothing${n}`}return this}onConflictDoUpdate(e){if(e.where&&(e.targetWhere||e.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');const t=e.where?sql` where ${e.where}`:void 0,n=e.targetWhere?sql` where ${e.targetWhere}`:void 0,r=e.setWhere?sql` where ${e.setWhere}`:void 0,o=Array.isArray(e.target)?sql`${e.target}`:sql`${[e.target]}`,s=this.dialect.buildUpdateSet(this.config.table,mapUpdateSet(this.config.table,e.set));return this.config.onConflict=sql`${o}${n} do update set ${s}${t}${r}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0)}prepare(){return this._prepare(!1)}run=__name(e=>this._prepare().run(e),"run");all=__name(e=>this._prepare().all(e),"all");get=__name(e=>this._prepare().get(e),"get");values=__name(e=>this._prepare().values(e),"values");async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}}}),Gg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/query-builders/select.types.js"(){tn()}}),Vg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/query-builders/update.js"(){tn(),gs(),Pl(),Ec(),bg(),Qs(),ai(),Ei(),Js(),Cg(),xg=class{static{__name(this,"SQLiteUpdateBuilder")}constructor(e,t,n,r){this.table=e,this.session=t,this.dialect=n,this.withList=r}static[ss]="SQLiteUpdateBuilder";set(e){return new Pg(this.table,mapUpdateSet(this.table,e),this.session,this.dialect,this.withList)}},Pg=class extends vl{static{__name(this,"SQLiteUpdateBase")}constructor(e,t,n,r,o){super(),this.session=n,this.dialect=r,this.config={set:t,table:e,withList:o,joins:[]}}static[ss]="SQLiteUpdate";config;from(e){return this.config.from=e,this}createJoin(e){return(t,n)=>{const r=getTableLikeName(t);if("string"==typeof r&&this.config.joins.some(e=>e.alias===r))throw new Error(`Alias "${r}" is already used in this query`);if("function"==typeof n){const e=this.config.from?is(t,sg)?t[Gs.Symbol.Columns]:is(t,Ls)?t._.selectedFields:is(t,cg)?t[Os].selectedFields:void 0:void 0;n=n(new Proxy(this.config.table[Gs.Symbol.Columns],new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),e&&new Proxy(e,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}return this.config.joins.push({on:n,table:t,joinType:e,alias:r}),this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(e){return this.config.where=e,this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.table[Gs.Symbol.Columns],new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(t)?t:[t];this.config.orderBy=n}else{const t=e;this.config.orderBy=t}return this}limit(e){return this.config.limit=e,this}returning(e=this.config.table[sg.Symbol.Columns]){return this.config.returning=orderSelectedFields(e),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0)}prepare(){return this._prepare(!1)}run=__name(e=>this._prepare().run(e),"run");all=__name(e=>this._prepare().all(e),"all");get=__name(e=>this._prepare().get(e),"get");values=__name(e=>this._prepare().values(e),"values");async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}}}),Qg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/query-builders/index.js"(){tn(),Eg(),Wg(),Hg(),zg(),Gg(),Vg()}}),Kg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/query-builders/count.js"(){tn(),gs(),ui(),Ag=class _SQLiteCountBuilder extends Zs{static{__name(this,"SQLiteCountBuilder")}constructor(e){super(_SQLiteCountBuilder.buildEmbeddedCount(e.source,e.filters).queryChunks),this.params=e,this.session=e.session,this.sql=_SQLiteCountBuilder.buildCount(e.source,e.filters)}sql;static[ss]="SQLiteCountBuilderAsync";[Symbol.toStringTag]="SQLiteCountBuilderAsync";session;static buildEmbeddedCount(e,t){return sql`(select count(*) from ${e}${sql.raw(" where ").if(t)}${t})`}static buildCount(e,t){return sql`select count(*) from ${e}${sql.raw(" where ").if(t)}${t}`}then(e,t){return Promise.resolve(this.session.count(this.sql)).then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}}}}),Yg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/query-builders/query.js"(){tn(),gs(),Pl(),gc(),Ig=class{static{__name(this,"RelationalQueryBuilder")}constructor(e,t,n,r,o,s,i,a){this.mode=e,this.fullSchema=t,this.schema=n,this.tableNamesMap=r,this.table=o,this.tableConfig=s,this.dialect=i,this.session=a}static[ss]="SQLiteAsyncRelationalQueryBuilder";findMany(e){return"sync"===this.mode?new Rg(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many"):new Ng(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many")}findFirst(e){return"sync"===this.mode?new Rg(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first"):new Ng(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first")}},Ng=class extends vl{static{__name(this,"SQLiteRelationalQuery")}constructor(e,t,n,r,o,s,i,a,l){super(),this.fullSchema=e,this.schema=t,this.tableNamesMap=n,this.table=r,this.tableConfig=o,this.dialect=s,this.session=i,this.config=a,this.mode=l}static[ss]="SQLiteAsyncRelationalQuery";mode;getSQL(){return this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}).sql}_prepare(e=!1){const{query:t,builtQuery:n}=this._toSQL();return this.session[e?"prepareOneTimeQuery":"prepareQuery"](n,void 0,"first"===this.mode?"get":"all",!0,(e,n)=>{const r=e.map(e=>mapRelationalRow(this.schema,this.tableConfig,e,t.selection,n));return"first"===this.mode?r[0]:r})}prepare(){return this._prepare(!1)}_toSQL(){const e=this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName});return{query:e,builtQuery:this.dialect.sqlToQuery(e.sql)}}toSQL(){return this._toSQL().builtQuery}executeRaw(){return"first"===this.mode?this._prepare(!1).get():this._prepare(!1).all()}async execute(){return this.executeRaw()}},Rg=class extends Ng{static{__name(this,"SQLiteSyncRelationalQuery")}static[ss]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}}}),Jg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/query-builders/raw.js"(){tn(),gs(),Pl(),Mg=class extends vl{static{__name(this,"SQLiteRaw")}constructor(e,t,n,r,o){super(),this.execute=e,this.getSQL=t,this.dialect=r,this.mapBatchResult=o,this.config={action:n}}static[ss]="SQLiteRaw";config;getQuery(){return{...this.dialect.sqlToQuery(this.getSQL()),method:this.config.action}}mapResult(e,t){return t?this.mapBatchResult(e):e}_prepare(){return this}isResponseInArrayMode(){return!1}}}}),Xg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/db.js"(){tn(),gs(),Ec(),ui(),Qg(),Qs(),Kg(),Yg(),Jg(),Lg=class{static{__name(this,"BaseSQLiteDatabase")}constructor(e,t,n,r){this.resultKind=e,this.dialect=t,this.session=n,this._=r?{schema:r.schema,fullSchema:r.fullSchema,tableNamesMap:r.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={};const o=this.query;if(this._.schema)for(const[s,i]of Object.entries(this._.schema))o[s]=new Ig(e,r.fullSchema,this._.schema,this._.tableNamesMap,r.fullSchema[s],i,t,n)}static[ss]="BaseSQLiteDatabase";query;$with(e){const t=this;return{as:n=>("function"==typeof n&&(n=n(new kg(t.dialect))),new Proxy(new $s(n.getSQL(),n.getSelectedFields(),e,!0),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}$count(e,t){return new Ag({source:e,filters:t,session:this.session})}with(...e){const t=this;function select5(n){return new mg({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e})}function selectDistinct(n){return new mg({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}function update(n){return new xg(n,t.session,t.dialect,e)}function insert(n){return new Tg(n,t.session,t.dialect,e)}function delete_(n){return new lg(n,t.session,t.dialect,e)}return __name(select5,"select"),__name(selectDistinct,"selectDistinct"),__name(update,"update"),__name(insert,"insert"),__name(delete_,"delete_"),{select:select5,selectDistinct:selectDistinct,update:update,insert:insert,delete:delete_}}select(e){return new mg({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new mg({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(e){return new xg(e,this.session,this.dialect)}insert(e){return new Tg(e,this.session,this.dialect)}delete(e){return new lg(e,this.session,this.dialect)}run(e){const t="string"==typeof e?sql.raw(e):e.getSQL();return"async"===this.resultKind?new Mg(async()=>this.session.run(t),()=>t,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session)):this.session.run(t)}all(e){const t="string"==typeof e?sql.raw(e):e.getSQL();return"async"===this.resultKind?new Mg(async()=>this.session.all(t),()=>t,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session)):this.session.all(t)}get(e){const t="string"==typeof e?sql.raw(e):e.getSQL();return"async"===this.resultKind?new Mg(async()=>this.session.get(t),()=>t,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session)):this.session.get(t)}values(e){const t="string"==typeof e?sql.raw(e):e.getSQL();return"async"===this.resultKind?new Mg(async()=>this.session.values(t),()=>t,"values",this.dialect,this.session.extractRawValuesValueFromBatchResult.bind(this.session)):this.session.values(t)}transaction(e,t){return this.session.transaction(e,t)}}}}),Zg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/indexes.js"(){tn(),gs(),class{static{__name(this,"IndexBuilderOn")}constructor(e,t){this.name=e,this.unique=t}static[ss]="SQLiteIndexBuilderOn";on(...e){return new $g(this.name,e,this.unique)}},$g=class{static{__name(this,"IndexBuilder")}static[ss]="SQLiteIndexBuilder";config;constructor(e,t,n){this.config={name:e,columns:t,unique:n,where:void 0}}where(e){return this.config.where=e,this}build(e){return new Dg(this.config,e)}},Dg=class{static{__name(this,"Index")}static[ss]="SQLiteIndex";config;constructor(e,t){this.config={...e,table:t}}}}}),eh=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/primary-keys.js"(){tn(),gs(),bg(),class{static{__name(this,"PrimaryKeyBuilder")}static[ss]="SQLitePrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new Og(e,this.columns,this.name)}},Og=class{static{__name(this,"PrimaryKey")}constructor(e,t,n){this.table=e,this.columns=t,this.name=n}static[ss]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[sg.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}}}}),th=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/session.js"(){tn(),gs(),Ml(),Pl(),Xg(),Fg=class extends vl{static{__name(this,"ExecuteResultSync")}constructor(e){super(),this.resultCb=e}static[ss]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}},class{static{__name(this,"SQLitePreparedQuery")}constructor(e,t,n){this.mode=e,this.executeMethod=t,this.query=n}static[ss]="PreparedQuery";joinsNotNullableMap;getQuery(){return this.query}mapRunResult(e,t){return e}mapAllResult(e,t){throw new Error("Not implemented")}mapGetResult(e,t){throw new Error("Not implemented")}execute(e){return"async"===this.mode?this[this.executeMethod](e):new Fg(()=>this[this.executeMethod](e))}mapResult(e,t){switch(this.executeMethod){case"run":return this.mapRunResult(e,t);case"all":return this.mapAllResult(e,t);case"get":return this.mapGetResult(e,t)}}},class{static{__name(this,"SQLiteSession")}constructor(e){this.dialect=e}static[ss]="SQLiteSession";prepareOneTimeQuery(e,t,n,r){return this.prepareQuery(e,t,n,r)}run(e){const t=this.dialect.sqlToQuery(e);try{return this.prepareOneTimeQuery(t,void 0,"run",!1).run()}catch(e){throw new Il({cause:e,message:`Failed to run the query '${t.sql}'`})}}extractRawRunValueFromBatchResult(e){return e}all(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run",!1).all()}extractRawAllValueFromBatchResult(e){throw new Error("Not implemented")}get(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run",!1).get()}extractRawGetValueFromBatchResult(e){throw new Error("Not implemented")}values(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run",!1).values()}async count(e){return(await this.values(e))[0][0]}extractRawValuesValueFromBatchResult(e){throw new Error("Not implemented")}},class extends Lg{static{__name(this,"SQLiteTransaction")}constructor(e,t,n,r,o=0){super(e,t,n,r),this.schema=r,this.nestedIndex=o}static[ss]="SQLiteTransaction";rollback(){throw new Nl}}}}),nh=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/subquery.js"(){tn()}}),rh=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/utils.js"(){tn()}}),oh=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/view.js"(){tn(),gs(),Ec(),Ei(),Hg(),bg(),Cg(),qg=class{static{__name(this,"ViewBuilderCore")}constructor(e){this.name=e}static[ss]="SQLiteViewBuilderCore";config={}},class extends qg{static{__name(this,"ViewBuilder")}static[ss]="SQLiteViewBuilder";as(e){"function"==typeof e&&(e=e(new kg));const t=new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),n=e.getSelectedFields();return new Proxy(new jg({config:{name:this.name,schema:void 0,selectedFields:n,query:e.getSQL().inlineParams()}}),t)}},class extends qg{static{__name(this,"ManualViewBuilder")}static[ss]="SQLiteManualViewBuilder";columns;constructor(e,t){super(e),this.columns=getTableColumns(ig(e,t))}existing(){return new Proxy(new jg({config:{name:this.name,schema:void 0,selectedFields:this.columns,query:void 0}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new jg({config:{name:this.name,schema:void 0,selectedFields:this.columns,query:e.inlineParams()}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}},jg=class extends cg{static{__name(this,"SQLiteView")}static[ss]="SQLiteView";constructor({config:e}){super(e)}}}}),sh=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_833c0ffecbd33408d88a15a2c7447215/node_modules/drizzle-orm/sqlite-core/index.js"(){tn(),bp(),Ep(),rg(),Xg(),vg(),Cp(),Zg(),eh(),Qg(),th(),nh(),bg(),Np(),rh(),oh()}});function c(e,t){const n=getTableColumns(e),r=Object.entries(n);let o=Object.fromEntries(r.map(([e,t])=>[e,p(t)]));t&&(o=Object.assign(o,Object.fromEntries(Object.entries(t).map(([e,t])=>[e,"function"==typeof t?t(o):t]))));for(const[e,t]of r)t.notNull?t.hasDefault&&(o[e]=o[e].optional()):o[e]=o[e].nullable().optional();return f.object(o)}function b(e,t){const n=getTableColumns(e),r=Object.entries(n);let o=Object.fromEntries(r.map(([e,t])=>[e,p(t)]));t&&(o=Object.assign(o,Object.fromEntries(Object.entries(t).map(([e,t])=>[e,"function"==typeof t?t(o):t]))));for(const[e,t]of r)t.notNull||(o[e]=o[e].nullable());return f.object(o)}function p(e){let t;if("enumValues"in(n=e)&&Array.isArray(n.enumValues)&&n.enumValues.length>0&&(t=e.enumValues.length?f.enum(e.enumValues):f.string()),!t)if(is(e,il))t=f.string().uuid();else if("custom"===e.dataType)t=f.any();else if("json"===e.dataType)t=Ug;else if("array"===e.dataType)t=f.array(p(e.baseColumn));else if("number"===e.dataType)t=f.number();else if("bigint"===e.dataType)t=f.bigint();else if("boolean"===e.dataType)t=f.boolean();else if("date"===e.dataType)t=f.date();else if("string"===e.dataType){let n=f.string();(is(e,Ri)||is(e,cl)||is(e,im)||is(e,rm)||is(e,Qu)||is(e,Xp))&&"number"==typeof e.length&&(n=n.max(e.length)),t=n}var n;return t||(t=f.any()),t}var ih,ah,lh,ch,uh,dh,mh,ph,gh,hh,fh,yh,wh,Sh,bh,Eh,Ch=__esm({"../../node_modules/.pnpm/drizzle-zod@0.5.1_drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@openteleme_1057625e53c2a7afc0c75491b894a97c/node_modules/drizzle-zod/index.mjs"(){tn(),xu(),Sp(),vu(),sh(),Bg=f.union([f.string(),f.number(),f.boolean(),f.null()]),Ug=f.lazy(()=>f.union([Bg,f.array(Ug),f.record(Ug)])),__name(c,"c"),__name(b,"b"),__name(p,"p")}}),vh=__esm({"../shared/src/database/schema/auth.ts"(){tn(),vu(),xu(),Ch(),ih=sql`(SELECT NULLIF(current_setting('app.current_user_id', true), '')::uuid)`,ah=Ol("users",{id:uuid("id").primaryKey(),name:text("name").notNull(),email:text("email").notNull().unique(),emailVerified:boolean("email_verified").default(!1).notNull(),image:text("image"),createdAt:timestamp("created_at").defaultNow().notNull(),updatedAt:timestamp("updated_at").defaultNow().$onUpdate(()=>new Date).notNull(),userName:text("user_name").notNull().unique(),termsAcceptedAt:date("terms_accepted_at").defaultNow(),bio:text("bio").default(""),admin:boolean("admin").default(!1),info:text("info").default(""),authId:uuid("auth_id").$defaultFn(()=>Te()).notNull().unique(),location:text("location").default(""),website:text("website").default(""),twitter:text("twitter").default(""),company:text("company").default(""),followerCount:integer("follower_count").default(0).notNull(),followingCount:integer("following_count").default(0).notNull(),metadata:jsonb("metadata").default({}).$type()},e=>[pgPolicy("users_select_own",{for:"select",to:"app_user",using:sql`id = ${ih}`}),pgPolicy("users_update_own",{for:"update",to:"app_user",using:sql`id = ${ih}`}),pgPolicy("users_select_public",{for:"select",to:"public_user",using:sql`true`}),index("users_created_at_idx").on(e.createdAt)]),Ol("sessions",{id:uuid("id").primaryKey(),expiresAt:timestamp("expires_at").notNull(),token:text("token").notNull().unique(),createdAt:timestamp("created_at").defaultNow().notNull(),updatedAt:timestamp("updated_at").$onUpdate(()=>new Date).notNull(),ipAddress:text("ip_address"),userAgent:text("user_agent"),userId:uuid("user_id").notNull().references(()=>ah.id,{onDelete:"cascade"})},e=>[index("sessions_user_id_expires_at_idx").on(e.userId,e.expiresAt),pgPolicy("sessions_select_own",{for:"select",to:"app_user",using:sql`user_id = ${ih}`}),pgPolicy("sessions_insert_own",{for:"insert",to:"app_user",withCheck:sql`user_id = ${ih}`}),pgPolicy("sessions_delete_own",{for:"delete",to:"app_user",using:sql`user_id = ${ih}`}),pgPolicy("sessions_update_own",{for:"update",to:"app_user",using:sql`user_id = ${ih}`})]),Ol("accounts",{id:uuid("id").primaryKey(),accountId:text("account_id").notNull(),providerId:text("provider_id").notNull(),userId:uuid("user_id").notNull().references(()=>ah.id,{onDelete:"cascade"}),accessToken:text("access_token"),refreshToken:text("refresh_token"),idToken:text("id_token"),accessTokenExpiresAt:timestamp("access_token_expires_at"),refreshTokenExpiresAt:timestamp("refresh_token_expires_at"),scope:text("scope"),password:text("password"),createdAt:timestamp("created_at").defaultNow().notNull(),updatedAt:timestamp("updated_at").$onUpdate(()=>new Date).notNull()},e=>[index("accounts_user_id_idx").on(e.userId),pgPolicy("accounts_select_own",{for:"select",to:"app_user",using:sql`user_id = ${ih}`}),pgPolicy("accounts_insert_own",{for:"insert",to:"app_user",withCheck:sql`user_id = ${ih}`}),pgPolicy("accounts_update_own",{for:"update",to:"app_user",using:sql`user_id = ${ih}`}),pgPolicy("accounts_delete_own",{for:"delete",to:"app_user",using:sql`user_id = ${ih}`})]),Ol("verifications",{id:uuid("id").primaryKey(),identifier:text("identifier").notNull(),value:text("value").notNull(),expiresAt:timestamp("expires_at").notNull(),createdAt:timestamp("created_at").defaultNow().notNull(),updatedAt:timestamp("updated_at").defaultNow().$onUpdate(()=>new Date).notNull()},e=>[pgPolicy("verifications_insert_public",{for:"insert",to:"app_user",withCheck:sql`true`}),pgPolicy("verifications_select_public",{for:"select",to:"app_user",using:sql`true`}),pgPolicy("verifications_delete_expired",{for:"delete",to:"app_user",using:sql`expires_at < NOW()`})]),Ol("rate_limits",{id:text("id").primaryKey(),key:text("key"),count:integer("count"),lastRequest:bigint("last_request",{mode:"number"})},e=>[index("rate_limits_key_idx").on(e.key),index("rate_limits_last_request_idx").on(e.lastRequest)]),c(ah),b(ah)}}),kh=__esm({"../shared/src/database/schema/orgs.ts"(){tn(),vu(),xu(),Ch(),vh(),lh=sql`(SELECT NULLIF(current_setting('app.current_user_id', true), '')::uuid)`,sql`org_members`,sql`users`,c(ch=Ol("orgs",{id:uuid("id").defaultRandom().primaryKey(),createdAt:timestamp("created_at",{withTimezone:!0}).defaultNow().notNull(),ownerId:uuid("owner_id").references(()=>ah.id).notNull(),avatarUrl:text("avatar_url"),description:text("description"),name:text("name"),login:text("login").notNull().unique(),authId:uuid("auth_id").defaultRandom().notNull().unique(),default:boolean("default").default(!1).notNull(),location:text("location").default(""),website:text("website").default(""),twitter:text("twitter").default(""),followerCount:integer("follower_count").default(0).notNull()},e=>[index("orgs_owner_id_idx").on(e.ownerId),pgPolicy("orgs_select_members",{for:"select",to:["app_user","public_user"],using:sql`true`}),pgPolicy("orgs_insert_authenticated",{for:"insert",to:"app_user",withCheck:sql`true`}),pgPolicy("orgs_update_owner",{for:"update",to:"app_user",using:sql`owner_id = ${lh}`}),pgPolicy("orgs_delete_owner",{for:"delete",to:"app_user",using:sql`owner_id = ${lh}`})])),b(ch)}}),Th=__esm({"../shared/src/database/schema/lifecycle-events.ts"(){tn(),vu(),Ch(),vh(),kh(),xu(),uh=sql`(SELECT NULLIF(current_setting('app.current_user_id', true), '')::uuid)`,dh=sql`users`,mh=pgEnum("LifecycleEventType",["signup_unverified","signup_verified","signup_github","taste_learned","taste_pushed","subscription_exists","subscription_individual_pro","subscription_individual_max","subscription_individual_go","subscription_individual_ultra","subscription_org_pro","subscription_exhausted","subscription_individual_pro_exhausted","subscription_individual_max_exhausted","subscription_individual_go_exhausted","subscription_individual_ultra_exhausted","subscription_org_pro_exhausted","subscription_usage_alert","credits_gift_usage_alert","credits_gift_exhausted","credits_gift_granted","subscription_renewed","subscription_cancelled","subscription_winback","account_inactive_free","account_inactive_customer","cli_session_exists","cli_first_message","cli_installed","cli_updated","org_created","org_member_invited","org_member_removed","api_key_created","api_key_deleted"]),ph=pgEnum("LifecycleEventStatus",["pending","processed","skipped","failed"]),c(gh=Ol("lifecycle_events",{id:uuid("id").defaultRandom().primaryKey(),createdAt:timestamp("created_at",{withTimezone:!0}).defaultNow().notNull(),userId:uuid("user_id").references(()=>ah.id,{onUpdate:"cascade",onDelete:"cascade"}).notNull(),orgId:uuid("org_id").references(()=>ch.id,{onUpdate:"cascade",onDelete:"cascade"}),eventType:mh("event_type").notNull(),status:ph("status").default("pending").notNull(),metadata:jsonb("metadata").default("{}").notNull(),scheduledFor:timestamp("scheduled_for",{withTimezone:!0}),processedAt:timestamp("processed_at",{withTimezone:!0}),idempotencyKey:text("idempotency_key").notNull().unique()},e=>[index("lifecycle_events_org_id_idx").on(e.orgId),index("lifecycle_events_event_type_created_at_user_id_idx").on(e.eventType,e.createdAt,e.userId),pgPolicy("lifecycle_events_select_admin",{as:"permissive",to:"app_user",for:"select",using:sql`(SELECT admin FROM ${dh} WHERE id = ${uh})`}),pgPolicy("lifecycle_events_insert_admin",{as:"permissive",to:"app_user",for:"insert",withCheck:sql`(SELECT admin FROM ${dh} WHERE id = ${uh})`}),pgPolicy("lifecycle_events_update_admin",{as:"permissive",to:"app_user",for:"update",using:sql`(SELECT admin FROM ${dh} WHERE id = ${uh})`}),pgPolicy("lifecycle_events_delete_admin",{as:"permissive",to:"app_user",for:"delete",using:sql`(SELECT admin FROM ${dh} WHERE id = ${uh})`})])),b(gh)}}),_h=__esm({"../shared/src/types/billing.ts"(){tn(),Th(),sn(),hh=f.enum(["active","canceled","incomplete","incomplete_expired","past_due","trialing","unpaid"]),fh=f.enum(["admin_grant","signup_credits","purchased_credits","subscription_credits"]),yh=f.enum(["agent","learning","custom-agent","custom-agent-create","title-gen","tool-desc","compact"]),wh=f.enum(["free","monthly","purchased"]),f.enum(["team","individual","enterprise"]),f.object({type:f.enum(["api","oauth"]).default("api"),orgId:f.string().nullable().optional(),model:f.string().min(1),userId:f.string().min(1),traceId:f.string(),provider:f.enum(Object.values(Rt)).default("anthropic"),oauthProvider:f.string().nullable().optional(),tokensIn:f.number().min(0),tokensOut:f.number().min(0),inputCost:f.number().min(0),totalCost:f.number().min(0),outputCost:f.number().min(0),ownerLogin:f.string(),tokensTotal:f.number().min(0),creditsTotal:f.number().min(0),durationTotal:f.number().min(0),mode:yh.nullable().optional(),cacheCost:f.number().min(0).optional(),cacheSavings:f.number().optional(),cacheCreation:f.object({ephemeral_5m_input_tokens:f.number().optional(),ephemeral_1h_input_tokens:f.number().optional()}).nullable().optional(),cacheCreationInputTokens:f.number().min(0).nullable().optional(),cacheReadInputTokens:f.number().min(0).nullable().optional(),threadId:f.string().nullable().optional(),messageInId:f.string().nullable().optional(),messageOutId:f.string().nullable().optional(),cliVersion:f.string().nullable().optional(),modelCategory:f.enum(["premium","opensource"]).optional()}),f.object({success:f.boolean(),instanceId:f.string().optional(),error:f.string().optional()}),f.object({userId:f.string().min(1),orgId:f.string().nullable()}),f.object({credits:f.object({freeCredits:f.number(),belowThreshold:f.boolean(),monthlyCredits:f.number(),creditThreshold:f.number(),availableCredits:f.number(),purchasedCredits:f.number(),premiumMonthlyCredits:f.number().optional(),opensourceMonthlyCredits:f.number().optional(),planId:f.string().nullable().optional()})}),f.object({userId:f.string().min(1),orgId:f.string().nullable().optional()}),f.object({success:f.boolean(),data:f.object({id:f.string(),userId:f.uuid(),orgId:f.string().nullable(),stripeCustomerId:f.string(),autoCharge:f.boolean(),creditThreshold:f.string(),rechargeAmount:f.string(),monthlyCreditThreshold:f.string()}).optional(),error:f.string().optional()}),f.object({userId:f.string().min(1),orgId:f.string().nullable().optional(),autoCharge:f.boolean().optional(),rechargeAmount:f.number().min(0).optional(),creditThreshold:f.number().min(0).optional(),monthlyCreditThreshold:f.number().min(0).optional(),stripeCustomerId:f.string().optional()}),f.object({success:f.boolean(),data:f.object({id:f.string(),userId:f.uuid(),orgId:f.string().nullable(),stripeCustomerId:f.string(),autoCharge:f.boolean(),creditThreshold:f.string(),rechargeAmount:f.string()}).optional(),error:f.string().optional()}),f.object({userId:f.string().min(1),userEmail:f.email(),orgId:f.string().nullable().optional()}),f.object({success:f.boolean(),data:f.object({clientSecret:f.string(),customerId:f.string()}).optional(),error:f.string().optional(),message:f.string().optional()}),f.object({userId:f.string().min(1),orgId:f.string().nullable().optional()}),f.object({success:f.boolean(),data:f.object({hasPaymentMethod:f.boolean(),paymentMethods:f.array(f.object({id:f.string(),brand:f.string().optional(),last4:f.string().optional(),expMonth:f.number().optional(),expYear:f.number().optional(),default:f.boolean()})),customerId:f.string().optional()}).optional(),error:f.string().optional()}),f.object({userId:f.string().min(1),paymentMethodId:f.string().min(1),orgId:f.string().nullable().optional()}),f.object({success:f.boolean(),error:f.string().optional()}),f.object({userId:f.string().min(1),orgId:f.string().nullable().optional(),customerId:f.string().min(1),paymentMethodId:f.string().min(1)}),f.object({success:f.boolean(),message:f.string().optional(),error:f.string().optional()}),f.object({body:f.string(),signature:f.string()}),f.object({success:f.boolean(),received:f.boolean().optional(),error:f.string().optional()}),f.object({orgId:f.string().nullable().optional(),amount:f.number().min(0),credits:f.number().min(0),userEmail:f.email(),creditType:wh.optional(),invoiceType:fh}),f.object({success:f.boolean(),message:f.string().optional(),error:f.string().optional()}),f.object({orgId:f.string().nullable(),limit:f.number().min(1).max(100).default(10),userId:f.string().min(1),startingAfter:f.string().optional()}),f.object({success:f.boolean(),data:f.object({invoices:f.array(f.object({id:f.string(),status:f.enum(["paid"]),invoicePdf:f.url().nullable(),amountPaid:f.number(),currency:f.string(),credits:f.string(),autoCharged:f.boolean(),createdAt:f.string(),invoiceType:fh})),hasMore:f.boolean()}).optional(),error:f.string().optional()}),f.object({userId:f.uuid(),orgId:f.uuid().nullable().optional()}),f.object({success:f.boolean(),data:f.object({id:f.string(),orgId:f.string().nullable(),userId:f.string().nullable(),status:hh,planId:f.string(),priceId:f.string(),quantity:f.number(),currentPeriodEnd:f.string(),cancelAtPeriodEnd:f.boolean(),currentPeriodStart:f.string()}).nullable(),error:f.string().optional()}),f.object({success:f.boolean(),data:f.object({totalGiven:f.number(),limit:f.number(),remaining:f.number()}).optional(),error:f.string().optional()}),f.object({userId:f.string().min(1),orgId:f.string().nullable().optional()}),f.object({success:f.boolean(),error:f.string().optional()}),f.object({amount:f.number().min(0)}),f.object({success:f.boolean(),totalGiven:f.number().optional(),exceeded:f.boolean().optional(),error:f.string().optional()}),f.object({userId:f.uuid(),userEmail:f.email(),ip:f.string().nullable().optional(),userAgent:f.string().nullable().optional()}),f.object({success:f.boolean(),allowed:f.boolean(),reason:f.enum(["banned","user_rate_limit","ip_rate_limit","failed_payment_velocity","suspicious_user_agent","email_not_verified"]).optional(),message:f.string().optional(),error:f.string().optional()}),f.object({userId:f.uuid(),orgId:f.uuid().nullable().optional(),eventType:f.enum(mh.enumValues),metadata:f.record(f.string(),f.unknown()).optional(),scheduledFor:f.iso.datetime().optional(),idempotencyKey:f.string().min(1).optional()}),f.object({success:f.boolean(),tracked:f.boolean(),error:f.string().optional()}),f.object({userId:f.uuid(),orgId:f.string().nullable().optional(),minutes:f.number().int().min(1).optional(),from:f.iso.datetime().optional(),to:f.iso.datetime().optional()}),Sh=f.object({model:f.string(),provider:f.string(),timeBucket:f.string(),requests:f.number(),totalCost:f.number(),inputCost:f.number(),outputCost:f.number(),creditsTotal:f.number(),cacheCost:f.number(),cacheSavings:f.number(),tokensIn:f.number(),tokensOut:f.number(),tokensTotal:f.number(),cacheReadInputTokens:f.number(),cacheCreationInputTokens:f.number()}),f.object({success:f.boolean(),data:f.array(Sh).optional(),error:f.string().optional()})}}),xh=__esm({"../shared/src/types/templates.ts"(){tn()}}),Ph=__esm({"../shared/src/types/auth.types.ts"(){tn()}}),Ah=__esm({"../shared/src/types/keys.types.ts"(){tn()}}),Ih=__esm({"../shared/src/types/orgs.types.ts"(){tn()}}),Nh=__esm({"../shared/src/types/usage.ts"(){tn()}});function preprocessAllowedTools(e){if(void 0===e)return;if(Array.isArray(e)){const t=e.filter(e=>"string"==typeof e);return t.length>0?t:void 0}if("string"!=typeof e)throw new Error('allowed-tools must be a space-delimited string (e.g., "Bash(git:*) Read Write") or an array of strings');const t=e.trim();if(""===t)return;const n=t.split(/\s+/).filter(Boolean);return n.length>0?n:void 0}var Rh,Mh,Lh,$h,Dh,Oh,Fh=__esm({"../shared/src/types/skills.ts"(){tn(),__name(preprocessAllowedTools,"preprocessAllowedTools"),bh=f.preprocess(preprocessAllowedTools,f.array(f.string()).optional()).optional(),Eh=f.object({name:f.string().min(1,"Skill name is required").max(64,"Skill name must be 64 characters or less").regex(/^[a-z0-9-]+$/,"Skill name must contain only lowercase letters, numbers, and hyphens").refine(e=>!e.startsWith("-")&&!e.endsWith("-"),"Skill name cannot start or end with a hyphen").refine(e=>!e.includes("--"),"Skill name cannot contain consecutive hyphens"),description:f.string().min(1,"Skill description is required").max(1024,"Skill description must be 1024 characters or less"),license:f.string().optional(),compatibility:f.string().max(500,"Skill compatibility must be 500 characters or less").optional(),metadata:f.record(f.string(),f.any()).optional(),"allowed-tools":bh}),f.object({name:f.string(),description:f.string(),license:f.string().optional(),compatibility:f.string().max(500).optional(),metadata:f.record(f.string(),f.any()).optional(),"allowed-tools":bh,content:f.string(),filePath:f.string()}),f.object({name:f.string(),description:f.string(),filePath:f.string()})}}),qh=__esm({"../shared/src/types/cli-auth.types.ts"(){tn()}}),jh=__esm({"../shared/src/types/sandbox.ts"(){tn()}}),Bh=__esm({"../shared/src/types/index.ts"(){tn(),as(),rs(),ls(),_h(),xh(),Ph(),Ah(),Ih(),Nh(),Fh(),qh(),jh()}});function isSlashCommandToken(e){const t=e.replace(Dh,"");return $h.test(t)}var Uh=__esm({"../shared/src/utils/path-sanitizer.ts"(){tn(),Rh=/\/(?:Users|home)\/[^\/\s]+(?:\/[^\s]*)?/g,Mh=/[A-Za-z]:\\(?:Users\\[^\\]+(?:\\[^\\]*)*|[^\s]*)/g,Lh=/(?:^|\s)([A-Za-z]:\\[^\s]*|\/[^\s]*)/g,$h=/^\/[a-z][a-z0-9-]*$/i,Dh=/[,.;:!?)\]}'"`]+$/,__name(isSlashCommandToken,"isSlashCommandToken"),Oh=class _PathSanitizer{static{__name(this,"PathSanitizer")}projectRoot;homeDir;options;constructor(e={}){this.projectRoot=e.projectRoot||process.cwd(),this.homeDir=this.getHomeDirectory(),this.options={projectRoot:this.projectRoot,useHomeShorthand:e.useHomeShorthand??!0,customReplacements:e.customReplacements||[]}}sanitizeMessage(e){if(!e)return e;const t=JSON.parse(JSON.stringify(e)),n=t.message||t;return n.content=this.sanitizeContent(n.content),t.message&&(t.message=n),t.metadata&&(t.metadata=this.sanitizeObject(t.metadata)),t}sanitizeContent(e){return"string"==typeof e?this.sanitizeText(e):Array.isArray(e)?e.map(e=>this.sanitizeContentBlock(e)):e&&"object"==typeof e?this.sanitizeLegacyContent(e):e}sanitizeContentBlock(e){return"text"===e.type&&"string"==typeof e.text?{...e,text:this.sanitizeText(e.text)}:"tool_use"===e.type&&e.input||"tool-call"===e.type&&e.input?{...e,input:this.sanitizeToolInput(e.input)}:e}sanitizeLegacyContent(e){const t={...e};return t.input&&(t.input=this.sanitizeText(t.input)),t.output&&(t.output=this.sanitizeText(t.output)),t}sanitizeToolInput(e){if(!e||"object"!=typeof e)return e;const t={...e},n=["absolutePath","filePath","path","file_path"];for(const e of n)t[e]&&"string"==typeof t[e]&&(t[e]=this.sanitizePath(t[e]));return t.directory&&"string"==typeof t.directory&&(t.directory=this.sanitizePath(t.directory)),t.content&&"string"==typeof t.content&&(t.content=this.sanitizeText(t.content)),t}sanitizeText(e){if(!e||"string"!=typeof e)return e;let t=e;for(const{pattern:e,replacement:n}of this.options.customReplacements)t=t.replace(e,n);return t=this.replaceAbsolutePaths(t),t}sanitizePath(e){if(!e||"string"!=typeof e)return e;if(isSlashCommandToken(e))return e;if(!t.isAbsolute(e)&&!this.isWindowsAbsolutePath(e))return e;const n=this.tryProjectRelative(e);return null!==n?n:this.options.useHomeShorthand&&e.startsWith(this.homeDir)?e.replace(this.homeDir,"~"):this.isUserPath(e)?`<user-home>/${t.relative(this.homeDir,e)}`:`<system-path>/${t.basename(e)}`}tryProjectRelative(e){try{const n=t.relative(this.projectRoot,e);return n.startsWith("../../../")?null:n.startsWith("../")?n:`./${n}`}catch{return null}}replaceAbsolutePaths(e){return(e=(e=e.replace(Rh,e=>this.sanitizePath(e))).replace(Mh,e=>this.sanitizePath(e))).replace(Lh,(e,t)=>isSlashCommandToken(t)?e:e.substring(0,e.length-t.length)+this.sanitizePath(t))}sanitizeObject(e){if(!e||"object"!=typeof e)return e;if(Array.isArray(e))return e.map(e=>this.sanitizeObject(e));const t={};for(const[n,r]of Object.entries(e))t[n]="string"!=typeof r?"object"!=typeof r?r:this.sanitizeObject(r):this.sanitizeText(r);return t}isWindowsAbsolutePath(e){return/^[A-Za-z]:\\/.test(e)}isUserPath(e){return e.includes("/Users/")||e.includes("/home/")||e.includes("\\Users\\")}getHomeDirectory(){return process.env.HOME||process.env.USERPROFILE||""}static forProject(e){return new _PathSanitizer({projectRoot:e,useHomeShorthand:!0})}static sanitizeMessage(e,t){return _PathSanitizer.forProject(t).sanitizeMessage(e)}static sanitizeMessages(e,t){const n=_PathSanitizer.forProject(t);return e.map(e=>n.sanitizeMessage(e))}}}}),zh=__esm({"../shared/src/utils/calculate-cost.ts"(){tn(),sn()}});function findModelById(e){return Object.values(Ht).find(t=>t.id===e)}function getModelDisplayName(e){const t=Wt[e]??e,n=Object.values(Ht).find(e=>e.id===t);return n?.name??e}var Hh=__esm({"../shared/src/utils/models.ts"(){tn(),sn(),__name(findModelById,"findModelById"),__name(getModelDisplayName,"getModelDisplayName")}});function buildToolNameMap(e){const t=new Map;for(const n of e)if("assistant"===n.role&&Array.isArray(n.content))for(const e of n.content){const n=e;"tool_use"!==n.type&&"server_tool_use"!==n.type||t.set(n.id,n.name)}return t}function extractResultValue(e){return"string"==typeof e.content?e.content:JSON.stringify(e.content??"")}function isServerToolError(e){return"object"==typeof e.content&&null!==e.content&&("type"in e.content&&["web_search_tool_result_error","web_fetch_tool_result_error","web_search_tool_error","web_fetch_tool_error"].includes(e.content.type))}function convertUserMessage(e,t){const n=[],r=[];for(const o of e){const e=o;if("tool_result"===e.type){const r=extractResultValue(e);n.push({type:"tool-result",toolCallId:e.tool_use_id,toolName:t.get(e.tool_use_id)??"unknown",output:e.is_error?{type:"error-text",value:r}:{type:"text",value:r}});continue}if("text"!==e.type){if("image"===e.type){const t="base64"===e.source?.type?`data:${e.source.media_type};base64,${e.source.data}`:e.source?.data??"";r.push({type:"image",image:t});continue}}else r.push({type:"text",text:e.text})}const o=[];if(n.length>0&&o.push({role:"tool",content:n}),r.length>0){const e=r[0],t=1===r.length&&"text"===e.type?e.text:r;o.push({role:"user",content:t})}return o}function convertAssistantBlock(e,t){const n=e;if("text"===n.type&&n.text)return{assistantPart:{type:"text",text:n.text}};if("thinking"===n.type&&n.thinking)return{assistantPart:{type:"reasoning",text:n.thinking}};if("tool_use"===n.type)return t.set(n.id,n.name),{assistantPart:{type:"tool-call",toolCallId:n.id,toolName:n.name,input:n.input??{}}};if("server_tool_use"===n.type)return{assistantPart:{type:"tool-call",toolCallId:n.id,toolName:n.name,input:n.input??{},providerExecuted:!0}};if("web_search_tool_result"===n.type||"web_fetch_tool_result"===n.type||"server_tool_result"===n.type){const e=extractResultValue(n);return{toolResult:{type:"tool-result",toolCallId:n.tool_use_id,toolName:t.get(n.tool_use_id)??"unknown",output:isServerToolError(n)?{type:"error-text",value:e}:{type:"text",value:e},providerExecuted:!0}}}return{}}function convertAssistantMessage(e,t){const n=[],r=[];for(const o of e){const{assistantPart:e,toolResult:s}=convertAssistantBlock(o,t);e&&n.push(e),s&&r.push(s)}const o=[];if(n.length>0){const e=n[0],t=1===n.length&&"text"===e.type?e.text:n;o.push({role:"assistant",content:t})}return r.length>0&&o.push({role:"tool",content:r}),o}function legacyAnthropicToSession(e){const t=buildToolNameMap(e),n=[];for(const r of e)"string"!=typeof r.content?Array.isArray(r.content)&&("user"!==r.role?"assistant"!==r.role||n.push(...convertAssistantMessage(r.content,t)):n.push(...convertUserMessage(r.content,t))):n.push({role:r.role,content:r.content});return n}function isLegacyFormat(e){const t=e.metadata;return!t||2!==t.version}var Wh,Gh,Vh,Qh,Kh,Yh=__esm({"../shared/src/migrations/v1-to-v2-session-messages.ts"(){tn(),__name(buildToolNameMap,"buildToolNameMap"),__name(extractResultValue,"extractResultValue"),__name(isServerToolError,"isServerToolError"),__name(convertUserMessage,"convertUserMessage"),__name(convertAssistantBlock,"convertAssistantBlock"),__name(convertAssistantMessage,"convertAssistantMessage"),__name(legacyAnthropicToSession,"legacyAnthropicToSession"),__name(isLegacyFormat,"isLegacyFormat")}}),Jh=__esm({"../shared/src/constants/license.ts"(){tn()}});function cachedError(e){if(Wh.has(e))return Wh.get(e);const t=Error.stackTraceLimit;return Error.stackTraceLimit=4,Wh.set(e,new Error),Error.stackTraceLimit=t,Wh.get(e)}var Xh,Zh,ef=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/query.js"(){tn(),Wh=new Map,Gh=new Map,Vh=Symbol("OriginError"),Qh={},Kh=class extends Promise{static{__name(this,"Query")}constructor(e,t,n,r,o={}){let s,i;super((e,t)=>{s=e,i=t}),this.tagged=Array.isArray(e.raw),this.strings=e,this.args=t,this.handler=n,this.canceller=r,this.options=o,this.state=null,this.statement=null,this.resolve=e=>(this.active=!1,s(e)),this.reject=e=>(this.active=!1,i(e)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[Vh]=this.handler.debug?new Error:this.tagged&&cachedError(this.strings)}get origin(){return(this.handler.debug?this[Vh].stack:this.tagged&&Gh.has(this.strings)?Gh.get(this.strings):Gh.set(this.strings,this[Vh].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(e=1,t){if(this.options.simple=!1,"function"==typeof e&&(t=e,e=1),this.cursorRows=e,"function"==typeof t)return this.cursorFn=t,this;let n;return{[Symbol.asyncIterator]:()=>({next:__name(()=>{if(this.executed&&!this.active)return{done:!0};n&&n();const e=new Promise((e,t)=>{this.cursorFn=t=>(e({value:t,done:!1}),new Promise(e=>n=e)),this.resolve=()=>(this.active=!1,e({done:!0})),this.reject=e=>(this.active=!1,t(e))});return this.execute(),e},"next"),return:()=>(n&&n(Qh),{done:!0})})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw new Error(".stream has been renamed to .forEach")}forEach(e){return this.forEachFn=e,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}},__name(cachedError,"cachedError")}});function connection(e,t,n){const{host:r,port:o}=n||t,s=Object.assign(new Error("write "+e+" "+(t.path||r+":"+o)),{code:e,errno:e,address:t.path||r},t.path?{}:{port:o});return Error.captureStackTrace(s,connection),s}function postgres(e){const t=new Xh(e);return Error.captureStackTrace(t,postgres),t}function generic(e,t){const n=Object.assign(new Error(e+": "+t),{code:e});return Error.captureStackTrace(n,generic),n}function notSupported(e){const t=Object.assign(new Error(e+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:e});return Error.captureStackTrace(t,notSupported),t}var tf,nf,rf,of,sf,af,lf,cf,uf,df,mf,pf,gf,hf,ff,yf,wf,Sf,bf,Ef,Cf,vf,kf,Tf,_f,xf,Pf=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/errors.js"(){tn(),Xh=class extends Error{static{__name(this,"PostgresError")}constructor(e){super(e.message),this.name=this.constructor.name,Object.assign(this,e)}},Zh={connection:connection,postgres:postgres,generic:generic,notSupported:notSupported},__name(connection,"connection"),__name(postgres,"postgres"),__name(generic,"generic"),__name(notSupported,"notSupported")}});function handleValue(e,t,n,r){let o=e instanceof of?e.value:e;if(void 0===o&&(e instanceof of?e.value=r.transform.undefined:o=e=r.transform.undefined,void 0===o))throw Zh.generic("UNDEFINED_VALUE","Undefined values are not allowed");return"$"+n.push(e instanceof of?(t.push(e.value),e.array?e.array[e.type||pf(e.value)]||e.type||firstIsString(e.value):e.type):(t.push(e),pf(e)))}function stringify(e,t,n,r,o,s){for(let i=1;i<e.strings.length;i++)t+=stringifyValue(t,n,r,o,s)+e.strings[i],n=e.args[i];return t}function stringifyValue(e,t,n,r,o){return t instanceof sf?t.build(e,n,r,o):t instanceof Kh?fragment(t,n,r,o):t instanceof rf?t.value:t&&t[0]instanceof Kh?t.reduce((e,t)=>e+" "+fragment(t,n,r,o),""):handleValue(t,n,r,o)}function fragment(e,t,n,r){return e.fragment=!0,stringify(e,e.strings[0],e.args[0],t,n,r)}function valuesBuilder(e,t,n,r,o){return e.map(e=>"("+r.map(r=>stringifyValue("values",e[r],t,n,o)).join(",")+")").join(",")}function values(e,t,n,r,o){const s=Array.isArray(e[0]);return valuesBuilder(s?e:[e],n,r,t.length?t.flat():Object.keys(s?e[0]:e),o)}function select(e,t,n,r,o){if("string"==typeof e&&(e=[e].concat(t)),Array.isArray(e))return escapeIdentifiers(e,o);let s;return(t.length?t.flat():Object.keys(e)).map(t=>(s=e[t],(s instanceof Kh?fragment(s,n,r,o):s instanceof rf?s.value:handleValue(s,n,r,o))+" as "+mf(o.transform.column.to?o.transform.column.to(t):t))).join(",")}function notTagged(){throw Zh.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}function firstIsString(e){return Array.isArray(e)?firstIsString(e[0]):"string"==typeof e?1009:0}function typeHandlers(e){return Object.keys(e).reduce((t,n)=>(e[n].from&&[].concat(e[n].from).forEach(r=>t.parsers[r]=e[n].parse),e[n].serialize&&(t.serializers[e[n].to]=e[n].serialize,e[n].from&&[].concat(e[n].from).forEach(r=>t.serializers[r]=e[n].serialize)),t),{parsers:{},serializers:{}})}function escapeIdentifiers(e,{transform:{column:t}}){return e.map(e=>mf(t.to?t.to(e):e)).join(",")}function arrayEscape(e){return e.replace(gf,"\\\\").replace(hf,'\\"')}function arrayParserLoop(e,t,n,r){const o=[],s=1020===r?";":",";for(;e.i<t.length;e.i++){if(e.char=t[e.i],e.quoted)"\\"===e.char?e.str+=t[++e.i]:'"'===e.char?(o.push(n?n(e.str):e.str),e.str="",e.quoted='"'===t[e.i+1],e.last=e.i+2):e.str+=e.char;else if('"'===e.char)e.quoted=!0;else if("{"===e.char)e.last=++e.i,o.push(arrayParserLoop(e,t,n,r));else{if("}"===e.char){e.quoted=!1,e.last<e.i&&o.push(n?n(t.slice(e.last,e.i)):t.slice(e.last,e.i)),e.last=e.i+1;break}e.char===s&&"}"!==e.p&&'"'!==e.p&&(o.push(n?n(t.slice(e.last,e.i)):t.slice(e.last,e.i)),e.last=e.i+1)}e.p=e.char}return e.last<e.i&&o.push(n?n(t.slice(e.last,e.i+1)):t.slice(e.last,e.i+1)),o}function createJsonTransform(e){return __name(function jsonTransform(t,n){return"object"!=typeof t||null===t||114!==n.type&&3802!==n.type?t:Array.isArray(t)?t.map(e=>jsonTransform(e,n)):Object.entries(t).reduce((t,[r,o])=>Object.assign(t,{[e(r)]:jsonTransform(o,n)}),{})},"jsonTransform")}var Af,If,Nf=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/types.js"(){tn(),ef(),Pf(),tf={string:{to:25,from:null,serialize:__name(e=>""+e,"serialize")},number:{to:0,from:[21,23,26,700,701],serialize:__name(e=>""+e,"serialize"),parse:__name(e=>+e,"parse")},json:{to:114,from:[114,3802],serialize:__name(e=>JSON.stringify(e),"serialize"),parse:__name(e=>JSON.parse(e),"parse")},boolean:{to:16,from:16,serialize:__name(e=>!0===e?"t":"f","serialize"),parse:__name(e=>"t"===e,"parse")},date:{to:1184,from:[1082,1114,1184],serialize:__name(e=>(e instanceof Date?e:new Date(e)).toISOString(),"serialize"),parse:__name(e=>new Date(e),"parse")},bytea:{to:17,from:17,serialize:__name(e=>"\\x"+Buffer.from(e).toString("hex"),"serialize"),parse:__name(e=>Buffer.from(e.slice(2),"hex"),"parse")}},nf=class{static{__name(this,"NotTagged")}then(){notTagged()}catch(){notTagged()}finally(){notTagged()}},rf=class extends nf{static{__name(this,"Identifier")}constructor(e){super(),this.value=mf(e)}},of=class extends nf{static{__name(this,"Parameter")}constructor(e,t,n){super(),this.value=e,this.type=t,this.array=n}},sf=class extends nf{static{__name(this,"Builder")}constructor(e,t){super(),this.first=e,this.rest=t}build(e,t,n,r){const o=lf.map(([t,n])=>({fn:n,i:e.search(t)})).sort((e,t)=>e.i-t.i).pop();return-1===o.i?escapeIdentifiers(this.first,r):o.fn(this.first,this.rest,t,n,r)}},__name(handleValue,"handleValue"),af=typeHandlers(tf),__name(stringify,"stringify"),__name(stringifyValue,"stringifyValue"),__name(fragment,"fragment"),__name(valuesBuilder,"valuesBuilder"),__name(values,"values"),__name(select,"select"),lf=Object.entries({values:values,in:__name((...e)=>{const t=values(...e);return"()"===t?"(null)":t},"in"),select:select,as:select,returning:select,"\\(":select,update:(e,t,n,r,o)=>(t.length?t.flat():Object.keys(e)).map(t=>mf(o.transform.column.to?o.transform.column.to(t):t)+"="+stringifyValue("values",e[t],n,r,o)),insert(e,t,n,r,o){const s=t.length?t.flat():Object.keys(Array.isArray(e)?e[0]:e);return"("+escapeIdentifiers(s,o)+")values"+valuesBuilder(Array.isArray(e)?e:[e],n,r,s,o)}}).map(([e,t])=>[new RegExp("((?:^|[\\s(])"+e+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),t]),__name(notTagged,"notTagged"),cf=af.serializers,uf=af.parsers,__name(firstIsString,"firstIsString"),df=__name(function(e){const t=typeHandlers(e||{});return{serializers:Object.assign({},cf,t.serializers),parsers:Object.assign({},uf,t.parsers)}},"mergeUserTypes"),__name(typeHandlers,"typeHandlers"),__name(escapeIdentifiers,"escapeIdentifiers"),mf=__name(function escape(e){return'"'+e.replace(/"/g,'""').replace(/\./g,'"."')+'"'},"escape"),pf=__name(function inferType2(e){return e instanceof of?e.type:e instanceof Date?1184:e instanceof Uint8Array?17:!0===e||!1===e?16:"bigint"==typeof e?20:Array.isArray(e)?inferType2(e[0]):0},"inferType"),gf=/\\/g,hf=/"/g,__name(arrayEscape,"arrayEscape"),ff=__name(function arraySerializer2(e,t,n,r){if(!1===Array.isArray(e))return e;if(!e.length)return"{}";const o=e[0],s=1020===r?";":",";return Array.isArray(o)&&!o.type?"{"+e.map(e=>arraySerializer2(e,t,n,r)).join(s)+"}":"{"+e.map(e=>{if(void 0===e&&void 0===(e=n.transform.undefined))throw Zh.generic("UNDEFINED_VALUE","Undefined values are not allowed");return null===e?"null":'"'+arrayEscape(t?t(e.type?e.value:e):""+e)+'"'}).join(s)+"}"},"arraySerializer"),yf={i:0,char:null,str:"",quoted:!1,last:0},wf=__name(function arrayParser2(e,t,n){return yf.i=yf.last=0,arrayParserLoop(yf,e,t,n)},"arrayParser"),__name(arrayParserLoop,"arrayParserLoop"),Sf=__name(e=>{let t=e[0];for(let n=1;n<e.length;n++)t+="_"===e[n]?e[++n].toUpperCase():e[n];return t},"toCamel"),bf=__name(e=>{let t=e[0].toUpperCase();for(let n=1;n<e.length;n++)t+="_"===e[n]?e[++n].toUpperCase():e[n];return t},"toPascal"),Ef=__name(e=>e.replace(/_/g,"-"),"toKebab"),Cf=__name(e=>e.replace(/([A-Z])/g,"_$1").toLowerCase(),"fromCamel"),vf=__name(e=>(e.slice(0,1)+e.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),"fromPascal"),kf=__name(e=>e.replace(/-/g,"_"),"fromKebab"),__name(createJsonTransform,"createJsonTransform"),Sf.column={from:Sf},Sf.value={from:createJsonTransform(Sf)},Cf.column={to:Cf},(Tf={...Sf}).column.to=Cf,bf.column={from:bf},bf.value={from:createJsonTransform(bf)},vf.column={to:vf},(_f={...bf}).column.to=vf,Ef.column={from:Ef},Ef.value={from:createJsonTransform(Ef)},kf.column={to:kf},(xf={...Ef}).column.to=kf}}),Rf=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/result.js"(){tn(),Af=class extends Array{static{__name(this,"Result")}constructor(){super(),Object.defineProperties(this,{count:{value:null,writable:!0},state:{value:null,writable:!0},command:{value:null,writable:!0},columns:{value:null,writable:!0},statement:{value:null,writable:!0}})}static get[Symbol.species](){return Array}}}});function Queue(e=[]){let t=e.slice(),n=0;return{get length(){return t.length-n},remove:__name(e=>{const n=t.indexOf(e);return-1===n?null:(t.splice(n,1),e)},"remove"),push:__name(e=>(t.push(e),e),"push"),shift:__name(()=>{const e=t[n++];return n===t.length?(n=0,t=[]):t[n-1]=void 0,e},"shift")}}var Mf,Lf,$f,Df,Of=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/queue.js"(){tn(),If=Queue,__name(Queue,"Queue")}});function fit(e){if(Mf.length-$f.i<e){const t=Mf,n=t.length;Mf=Buffer.allocUnsafe(n+(n>>1)+e),t.copy(Mf)}}function reset(){return $f.i=0,$f}var Ff,qf,jf,Bf,Uf,zf,Hf,Wf,Gf,Vf,Qf=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/bytes.js"(){tn(),Mf=Buffer.allocUnsafe(256),Lf="BCcDdEFfHPpQSX".split("").reduce((e,t)=>{const n=t.charCodeAt(0);return e[t]=()=>(Mf[0]=n,$f.i=5,$f),e},{}),$f=Object.assign(reset,Lf,{N:String.fromCharCode(0),i:0,inc:e=>($f.i+=e,$f),str(e){const t=Buffer.byteLength(e);return fit(t),$f.i+=Mf.write(e,$f.i,t,"utf8"),$f},i16:e=>(fit(2),Mf.writeUInt16BE(e,$f.i),$f.i+=2,$f),i32:(e,t)=>t||0===t?(Mf.writeUInt32BE(e,t),$f):(fit(4),Mf.writeUInt32BE(e,$f.i),$f.i+=4,$f),z:e=>(fit(e),Mf.fill(0,$f.i,$f.i+e),$f.i+=e,$f),raw:e=>(Mf=Buffer.concat([Mf.subarray(0,$f.i),e]),$f.i=Mf.length,$f),end(e=1){Mf.writeUInt32BE($f.i-e,e);const t=Mf.subarray(0,$f.i);return $f.i=0,Mf=Buffer.allocUnsafe(256),t}}),Df=$f,__name(fit,"fit"),__name(reset,"reset")}});function Connection(e,t={},{onopen:n=Wf,onend:r=Wf,onclose:o=Wf}={}){const{sslnegotiation:s,ssl:i,max:a,user:l,host:u,port:d,database:m,parsers:g,transform:h,onnotice:f,onnotify:y,onparameter:w,max_pipeline:S,keep_alive:E,backoff:C,target_session_attrs:v}=e,k=If(),T=qf++,_={pid:null,secret:null},x=timer(end,e.idle_timeout),P=timer(end,e.max_lifetime),A=timer(function connectTimedOut(){errored(Zh.connection("CONNECT_TIMEOUT",e,N)),N.destroy()},e.connect_timeout);let I,N=null,R=null,M=new Af,L=Buffer.alloc(0),$=e.fetch_types,D={},O={},F=Math.random().toString(36).slice(2),q=1,j=0,B=0,U=0,z=0,H=0,W=0,G=0,Q=null,K=null,Y=!1,J=null,X=null,Z=null,ee=null,te=null,ne=null,re=null,oe=null,se=null,ie=null;const ae={queue:t.closed,idleTimer:x,connect(e){Z=e,reconnect()},terminate:terminate,execute:execute,cancel:async function cancel7({pid:e,secret:t},n,r){try{I=Df().i32(16).i32(80877102).i32(e).i32(t).end(16),await connect(),N.once("error",r),N.once("close",n)}catch(e){r(e)}},end:end,count:0,id:T};return t.closed&&t.closed.push(ae),ae;function execute(t){if(Y)return queryError(t,Zh.connection("CONNECTION_DESTROYED",e));if(te)return queryError(t,Zh.generic("COPY_IN_PROGRESS","You cannot execute queries during copy"));if(!t.cancelled)try{return t.state=_,se?k.push(t):(se=t,se.active=!0),function build(t){const n=[],r=[],o=stringify(t,t.strings[0],t.args[0],n,r,e);!t.tagged&&t.args.forEach(t=>handleValue(t,n,r,e)),t.prepare=e.prepare&&(!("prepare"in t.options)||t.options.prepare),t.string=o,t.signature=t.prepare&&r+o,t.onlyDescribe&&delete O[t.signature],t.parameters=t.parameters||n,t.prepared=t.prepare&&t.signature in O,t.describeFirst=t.onlyDescribe||n.length&&!t.prepared,t.statement=t.prepared?O[t.signature]:{string:o,types:r,name:t.prepare?F+q++:""},"function"==typeof e.debug&&e.debug(T,o,n,r)}(t),write(function toBuffer(e){if(e.parameters.length>=65534)throw Zh.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return e.options.simple?Df().Q().str(e.statement.string+Df.N).end():e.describeFirst?Buffer.concat([describe(e),Bf]):e.prepare?e.prepared?prepared(e):Buffer.concat([describe(e),prepared(e)]):function unnamed(e){return Buffer.concat([Parse(e.statement.string,e.parameters,e.statement.types),Hf,prepared(e)])}(e)}(t))&&!t.describeFirst&&!t.cursorFn&&k.length<S&&(!t.options.onexecute||t.options.onexecute(ae))}catch(e){return 0===k.length&&write(jf),errored(e),!0}}function describe(e){return Buffer.concat([Parse(e.statement.string,e.parameters,e.statement.types,e.statement.name),Describe("S",e.statement.name)])}function prepared(e){return Buffer.concat([Bind(e.parameters,e.statement.types,e.statement.name,e.cursorName),e.cursorFn?Execute("",e.cursorRows):zf])}function write(e,t){return ne=ne?Buffer.concat([ne,e]):Buffer.from(e),ne.length>=1024?nextWrite(t):(null===K&&(K=setImmediate(nextWrite)),!0)}function nextWrite(e){const t=N.write(ne,e);return null!==K&&clearImmediate(K),ne=K=null,t}async function secure(){if("direct"!==s&&(write(Uf),!await new Promise(e=>N.once("data",t=>e(83===t[0])))&&"prefer"===i))return connected();const e={socket:N,servername:Ne.isIP(N.host)?void 0:N.host};"direct"===s&&(e.ALPNProtocols=["postgresql"]),"require"===i||"allow"===i||"prefer"===i?e.rejectUnauthorized=!1:"object"==typeof i&&Object.assign(e,i),N.removeAllListeners(),N=Re.connect(e),N.on("secureConnect",connected),N.on("error",error),N.on("close",closed),N.on("drain",drain)}function drain(){!se&&n(ae)}function data(e){if(!(J&&(J.push(e),B-=e.length,B>0)))for(L=J?Buffer.concat(J,H-B):0===L.length?e:Buffer.concat([L,e],L.length+e.length);L.length>4;){if(H=L.readUInt32BE(1),H>=L.length){B=H-L.length,J=[L];break}try{handle(L.subarray(0,H+1))}catch(e){se&&(se.cursorFn||se.describeFirst)&&write(jf),errored(e)}L=L.subarray(H+1),B=0,J=null}}async function connect(){if(Y=!1,D={},N||(N=await async function createSocket(){let t;try{t=e.socket?await Promise.resolve(e.socket(e)):new Ne.Socket}catch(e){return void error(e)}return t.on("error",error),t.on("close",closed),t.on("drain",drain),t}()),N){if(A.start(),e.socket)return i?secure():connected();if(N.on("connect",i?secure:connected),e.path)return N.connect(e.path);N.ssl=i,N.connect(d[U],u[U]),N.host=u[U],N.port=d[U],U=(U+1)%d.length}}function reconnect(){setTimeout(connect,j?Math.max(0,j+W-Le.now()):0)}function connected(){try{O={},$=e.fetch_types,F=Math.random().toString(36).slice(2),q=1,P.start(),N.on("data",data),E&&N.setKeepAlive&&N.setKeepAlive(!0,1e3*E),write(function StartupMessage(){return I||Df().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:l,database:m,client_encoding:"UTF8"},e.connection)).filter(([,e])=>e).map(([e,t])=>e+Df.N+t).join(Df.N)).z(2).end(0)}())}catch(e){error(e)}}function error(n){if(ae.queue!==t.connecting||!e.host[z+1])for(errored(n);k.length;)queryError(k.shift(),n)}function errored(e){te&&(te.destroy(e),te=null),se&&queryError(se,e),Z&&(queryError(Z,e),Z=null)}function queryError(t,n){if(t.reserve)return t.reject(n);n&&"object"==typeof n||(n=new Error(n)),"query"in n||"parameters"in n||Object.defineProperties(n,{stack:{value:n.stack+t.origin.replace(/.*\n/,"\n"),enumerable:e.debug},query:{value:t.string,enumerable:e.debug},parameters:{value:t.parameters,enumerable:e.debug},args:{value:t.args,enumerable:e.debug},types:{value:t.statement&&t.statement.types,enumerable:e.debug}}),t.reject(n)}function end(){return ee||(!ae.reserved&&r(ae),ae.reserved||Z||se||0!==k.length?ee=new Promise(e=>re=e):(terminate(),new Promise(e=>N&&"closed"!==N.readyState?N.once("close",e):e())))}function terminate(){Y=!0,(te||se||Z||k.length)&&error(Zh.connection("CONNECTION_DESTROYED",e)),clearImmediate(K),N&&(N.removeListener("data",data),N.removeListener("connect",connected),"open"===N.readyState&&N.end(Df().X().end())),re&&(re(),ee=re=null)}async function closed(t){if(L=Buffer.alloc(0),B=0,J=null,clearImmediate(K),N.removeListener("data",data),N.removeListener("connect",connected),x.cancel(),P.cancel(),A.cancel(),N.removeAllListeners(),N=null,Z)return reconnect();!t&&(se||k.length)&&error(Zh.connection("CONNECTION_CLOSED",e,N)),j=Le.now(),t&&e.shared.retries++,W=1e3*("function"==typeof C?C(e.shared.retries):C),o(ae,Zh.connection("CONNECTION_CLOSED",e,N))}function handle(e,t=e[0]){(68===t?DataRow:100===t?CopyData:65===t?NotificationResponse:83===t?ParameterStatus:90===t?ReadyForQuery:67===t?CommandComplete:50===t?BindComplete:49===t?ParseComplete:116===t?ParameterDescription:84===t?RowDescription:82===t?Authentication:110===t?NoData:75===t?BackendKeyData:69===t?ErrorResponse:115===t?PortalSuspended:51===t?CloseComplete:71===t?CopyInResponse:78===t?NoticeResponse:72===t?CopyOutResponse:99===t?CopyDone:73===t?EmptyQueryResponse:86===t?FunctionCallResponse:118===t?NegotiateProtocolVersion:87===t?CopyBothResponse:UnknownMessage)(e)}function DataRow(e){let t,n,r,o=7;const s=se.isRaw?new Array(se.statement.columns.length):{};for(let i=0;i<se.statement.columns.length;i++)n=se.statement.columns[i],t=e.readInt32BE(o),o+=4,r=-1===t?null:!0===se.isRaw?e.subarray(o,o+=t):void 0===n.parser?e.toString("utf8",o,o+=t):!0===n.parser.array?n.parser(e.toString("utf8",o+1,o+=t)):n.parser(e.toString("utf8",o,o+=t)),se.isRaw?s[i]=!0===se.isRaw?r:h.value.from?h.value.from(r,n):r:s[n.name]=h.value.from?h.value.from(r,n):r;se.forEachFn?se.forEachFn(h.row.from?h.row.from(s):s,M):M[G++]=h.row.from?h.row.from(s):s}function ParameterStatus(t){const[n,r]=t.toString("utf8",5,t.length-1).split(Df.N);D[n]=r,e.parameters[n]!==r&&(e.parameters[n]=r,w&&w(n,r))}function ReadyForQuery(t){if(se?R?se.retried?errored(se.retried):se.prepared&&Gf.has(R.routine)?function retry(e,t){delete O[e.signature],e.retried=t,execute(e)}(se,R):errored(R):se.resolve(X||M):R&&errored(R),se=X=R=null,M=new Af,A.cancel(),Z){if(v){if(!D.in_hot_standby||!D.default_transaction_read_only)return function fetchState(){const e=new Kh(["\n show transaction_read_only;\n select pg_catalog.pg_is_in_recovery()\n "],[],execute,null,{simple:!0});e.resolve=([[e],[t]])=>{D.default_transaction_read_only=e.transaction_read_only,D.in_hot_standby=t.pg_is_in_recovery?"on":"off"},e.execute()}();if(function tryNext(t,n){return"read-write"===t&&"on"===n.default_transaction_read_only||"read-only"===t&&"off"===n.default_transaction_read_only||"primary"===t&&"on"===n.in_hot_standby||"standby"===t&&"off"===n.in_hot_standby||"prefer-standby"===t&&"off"===n.in_hot_standby&&e.host[z]}(v,D))return terminate()}return $?(Z.reserve&&(Z=null),async function fetchArrayTypes(){$=!1,(await new Kh(["\n select b.oid, b.typarray\n from pg_catalog.pg_type a\n left join pg_catalog.pg_type b on b.oid = a.typelem\n where a.typcategory = 'A'\n group by b.oid, b.typarray\n order by b.oid\n "],[],execute)).forEach(({oid:t,typarray:n})=>function addArrayType(t,n){if(e.parsers[n]&&e.serializers[n])return;const r=e.parsers[t];e.shared.typeArrayMap[t]=n,e.parsers[n]=e=>wf(e,r,n),e.parsers[n].array=!0,e.serializers[n]=r=>ff(r,e.serializers[t],e,n)}(t,n))}()):(Z&&!Z.reserve&&execute(Z),e.shared.retries=z=0,void(Z=null))}for(;k.length&&(se=k.shift())&&(se.active=!0,se.cancelled);)Connection(e).cancel(se.state,se.cancelled.resolve,se.cancelled.reject);se||(ae.reserved?ae.reserved.release||73!==t[5]?ae.reserved():ee?terminate():(ae.reserved=null,n(ae)):ee?terminate():n(ae))}function CommandComplete(e){G=0;for(let t=e.length-1;t>0;t--)if(32===e[t]&&e[t+1]<58&&null===M.count&&(M.count=+e.toString("utf8",t+1,e.length-1)),e[t-1]>=65){M.command=e.toString("utf8",5,t),M.state=_;break}return ie&&(ie(),ie=null),"BEGIN"!==M.command||1===a||ae.reserved?se.options.simple?BindComplete():void(se.cursorFn&&(M.count&&se.cursorFn(M),write(jf))):errored(Zh.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"))}function ParseComplete(){se.parsing=!1}function BindComplete(){!M.statement&&(M.statement=se.statement),M.columns=se.statement.columns}function ParameterDescription(e){const t=e.readUInt16BE(5);for(let n=0;n<t;++n)!se.statement.types[n]&&(se.statement.types[n]=e.readUInt32BE(7+4*n));se.prepare&&(O[se.signature]=se.statement),se.describeFirst&&!se.onlyDescribe&&(write(prepared(se)),se.describeFirst=!1)}function RowDescription(e){M.command&&(X=X||[M],X.push(M=new Af),M.count=null,se.statement.columns=null);const t=e.readUInt16BE(5);let n,r=7;se.statement.columns=Array(t);for(let o=0;o<t;++o){for(n=r;0!==e[r++];);const t=e.readUInt32BE(r),s=e.readUInt16BE(r+4),i=e.readUInt32BE(r+6);se.statement.columns[o]={name:h.column.from?h.column.from(e.toString("utf8",n,r-1)):e.toString("utf8",n,r-1),parser:g[i],table:t,number:s,type:i},r+=18}if(M.statement=se.statement,se.onlyDescribe)return se.resolve(se.statement),write(jf)}async function Authentication(e,t=e.readUInt32BE(5)){(3===t?AuthenticationCleartextPassword:5===t?AuthenticationMD5Password:10===t?SASL:11===t?SASLContinue:12===t?SASLFinal:0!==t?UnknownAuth:Wf)(e,t)}async function AuthenticationCleartextPassword(){const e=await Pass();write(Df().p().str(e).z(1).end())}async function AuthenticationMD5Password(e){const t="md5"+await md5(Buffer.concat([Buffer.from(await md5(await Pass()+l)),e.subarray(9)]));write(Df().p().str(t).z(1).end())}async function SASL(){oe=(await V.randomBytes(18)).toString("base64"),Df().p().str("SCRAM-SHA-256"+Df.N);const e=Df.i;write(Df.inc(4).str("n,,n=*,r="+oe).i32(Df.i-e-4,e).end())}async function SASLContinue(e){const t=e.toString("utf8",9).split(",").reduce((e,t)=>(e[t[0]]=t.slice(2),e),{}),n=await V.pbkdf2Sync(await Pass(),Buffer.from(t.s,"base64"),parseInt(t.i),32,"sha256"),r=await hmac(n,"Client Key"),o="n=*,r="+oe+",r="+t.r+",s="+t.s+",i="+t.i+",c=biws,r="+t.r;Q=(await hmac(await hmac(n,"Server Key"),o)).toString("base64");const s="c=biws,r="+t.r+",p="+xor(r,Buffer.from(await hmac(await sha256(r),o))).toString("base64");write(Df().p().str(s).end())}function SASLFinal(e){e.toString("utf8",9).split(Df.N,1)[0].slice(2)!==Q&&(errored(Zh.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),N.destroy())}function Pass(){return Promise.resolve("function"==typeof e.pass?e.pass():e.pass)}function NoData(){if(M.statement=se.statement,M.statement.columns=[],se.onlyDescribe)return se.resolve(se.statement),write(jf)}function BackendKeyData(e){_.pid=e.readUInt32BE(5),_.secret=e.readUInt32BE(9)}function ErrorResponse(e){se?((se.cursorFn||se.describeFirst)&&write(jf),R=Zh.postgres(parseError(e))):errored(Zh.postgres(parseError(e)))}function NotificationResponse(e){if(!y)return;let t=9;for(;0!==e[t++];);y(e.toString("utf8",9,t-1),e.toString("utf8",t,e.length-1))}async function PortalSuspended(){try{const e=await Promise.resolve(se.cursorFn(M));G=0,e===Qh?write(function Close(e=""){return Buffer.concat([Df().C().str("P").str(e+Df.N).end(),Df().S().end()])}(se.portal)):(M=new Af,write(Execute("",se.cursorRows)))}catch(e){write(jf),se.reject(e)}}function CloseComplete(){M.count&&se.cursorFn(M),se.resolve(M)}function CopyInResponse(){te=new Me.Writable({autoDestroy:!0,write(e,t,n){N.write(Df().d().raw(e).end(),n)},destroy(e,t){t(e),N.write(Df().f().str(e+Df.N).end()),te=null},final(e){N.write(Df().c().end()),ie=e,te=null}}),se.resolve(te)}function CopyOutResponse(){te=new Me.Readable({read(){N.resume()}}),se.resolve(te)}function CopyBothResponse(){te=new Me.Duplex({autoDestroy:!0,read(){N.resume()},write(e,t,n){N.write(Df().d().raw(e).end(),n)},destroy(e,t){t(e),N.write(Df().f().str(e+Df.N).end()),te=null},final(e){N.write(Df().c().end()),ie=e}}),se.resolve(te)}function CopyData(e){te&&(te.push(e.subarray(5))||N.pause())}function CopyDone(){te&&te.push(null),te=null}function NoticeResponse(e){f?f(parseError(e)):console.log(parseError(e))}function EmptyQueryResponse(){}function FunctionCallResponse(){errored(Zh.notSupported("FunctionCallResponse"))}function NegotiateProtocolVersion(){errored(Zh.notSupported("NegotiateProtocolVersion"))}function UnknownMessage(e){console.error("Postgres.js : Unknown Message:",e[0])}function UnknownAuth(e,t){console.error("Postgres.js : Unknown Auth:",t)}function Bind(t,n,r="",o=""){let s,i;return Df().B().str(o+Df.N).str(r+Df.N).i16(0).i16(t.length),t.forEach((r,o)=>{if(null===r)return Df.i32(4294967295);i=n[o],t[o]=r=i in e.serializers?e.serializers[i](r):""+r,s=Df.i,Df.inc(4).str(r).i32(Df.i-s-4,s)}),Df.i16(0),Df.end()}function Parse(e,t,n,r=""){return Df().P().str(r+Df.N).str(e+Df.N).i16(t.length),t.forEach((e,t)=>Df.i32(n[t]||0)),Df.end()}function Describe(e,t=""){return Df().D().str(e).str(t+Df.N).end()}function Execute(e="",t=0){return Buffer.concat([Df().E().str(e+Df.N).i32(t).end(),Bf])}}function parseError(e){const t={};let n=5;for(let r=5;r<e.length-1;r++)0===e[r]&&(t[Vf[e[n]]]=e.toString("utf8",n+1,r),n=r+1);return t}function md5(e){return V.createHash("md5").update(e).digest("hex")}function hmac(e,t){return V.createHmac("sha256",e).update(t).digest()}function sha256(e){return V.createHash("sha256").update(e).digest()}function xor(e,t){const n=Math.max(e.length,t.length),r=Buffer.allocUnsafe(n);for(let o=0;o<n;o++)r[o]=e[o]^t[o];return r}function timer(e,t){if(!(t="function"==typeof t?t():t))return{cancel:Wf,start:Wf};let n;return{cancel(){n&&(clearTimeout(n),n=null)},start(){n&&clearTimeout(n),n=setTimeout(done,1e3*t,arguments)}};function done(t){e.apply(null,t),n=null}}var Kf,Yf=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/connection.js"(){tn(),Nf(),Pf(),Rf(),Of(),ef(),Qf(),Ff=Connection,qf=1,jf=Df().S().end(),Bf=Df().H().end(),Uf=Df().i32(8).i32(80877103).end(8),zf=Buffer.concat([Df().E().str(Df.N).i32(0).end(),jf]),Hf=Df().D().str("S").str(Df.N).end(),Wf=__name(()=>{},"noop"),Gf=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),Vf={83:"severity_local",86:"severity",67:"code",77:"message",68:"detail",72:"hint",80:"position",112:"internal_position",113:"internal_query",87:"where",115:"schema_name",116:"table_name",99:"column_name",100:"data type_name",110:"constraint_name",70:"file",76:"line",82:"routine"},__name(Connection,"Connection"),__name(parseError,"parseError"),__name(md5,"md5"),__name(hmac,"hmac"),__name(sha256,"sha256"),__name(xor,"xor"),__name(timer,"timer")}});function Subscribe(e,t){const n=new Map,r="postgresjs_"+Math.random().toString(36).slice(2),o={};let s,i,a=!1;const l=subscribe.sql=e({...t,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...t.connection,replication:"database"},onclose:__name(async function(){a||(i=null,o.pid=o.secret=void 0,connected(await init(l,r,t.publications)),n.forEach(e=>e.forEach(({onsubscribe:e})=>e())))},"onclose"),no_subscribe:!0}),u=l.end,d=l.close;return l.end=async()=>(a=!0,i&&await new Promise(e=>(i.once("close",e),i.end())),u()),l.close=async()=>(i&&await new Promise(e=>(i.once("close",e),i.end())),d()),subscribe;async function subscribe(e,a,u=Kf,d=Kf){e=parseEvent(e),s||(s=init(l,r,t.publications));const m={fn:a,onsubscribe:u},g=n.has(e)?n.get(e).add(m):n.set(e,new Set([m])).get(e),h=__name(()=>{g.delete(m),0===g.size&&n.delete(e)},"unsubscribe");return s.then(e=>(connected(e),u(),i&&i.on("error",d),{unsubscribe:h,state:o,sql:l}))}function connected(e){i=e.stream,o.pid=e.state.pid,o.secret=e.state.secret}async function init(e,n,r){if(!r)throw new Error("Missing publication names");const o=await e.unsafe(`CREATE_REPLICATION_SLOT ${n} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[s]=o,i=await e.unsafe(`START_REPLICATION SLOT ${n} LOGICAL ${s.consistent_point} (proto_version '1', publication_names '${r}')`).writable(),a={lsn:Buffer.concat(s.consistent_point.split("/").map(e=>Buffer.from(("00000000"+e).slice(-8),"hex")))};return i.on("data",function data(n){119===n[0]?parse(n.subarray(25),a,e.options.parsers,handle,t.transform):107===n[0]&&n[17]&&(a.lsn=n.subarray(1,9),function pong(){const e=Buffer.alloc(34);e[0]="r".charCodeAt(0),e.fill(a.lsn,1),e.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2e3,0,1))*BigInt(1e3),25),i.write(e)}())}),i.on("error",function error(e){console.error("Unexpected error during logical streaming - reconnecting",e)}),i.on("close",e.close),{stream:i,state:o.state};function handle(e,t){const n=t.relation.schema+"."+t.relation.table;call("*",e,t),call("*:"+n,e,t),t.relation.keys.length&&call("*:"+n+"="+t.relation.keys.map(t=>e[t.name]),e,t),call(t.command,e,t),call(t.command+":"+n,e,t),t.relation.keys.length&&call(t.command+":"+n+"="+t.relation.keys.map(t=>e[t.name]),e,t)}}function call(e,t,r){n.has(e)&&n.get(e).forEach(({fn:n})=>n(t,r,e))}}function Time(e){return new Date(Date.UTC(2e3,0,1)+Number(e/BigInt(1e3)))}function parse(e,t,n,r,o){const s=__name((e,[t,n])=>(e[t.charCodeAt(0)]=n,e),"char");Object.entries({R:__name(e=>{let r=1;const s=t[e.readUInt32BE(r)]={schema:e.toString("utf8",r+=4,r=e.indexOf(0,r))||"pg_catalog",table:e.toString("utf8",r+1,r=e.indexOf(0,r+1)),columns:Array(e.readUInt16BE(r+=2)),keys:[]};r+=2;let i,a=0;for(;r<e.length;)i=s.columns[a++]={key:e[r++],name:o.column.from?o.column.from(e.toString("utf8",r,r=e.indexOf(0,r))):e.toString("utf8",r,r=e.indexOf(0,r)),type:e.readUInt32BE(r+=1),parser:n[e.readUInt32BE(r)],atttypmod:e.readUInt32BE(r+=4)},i.key&&s.keys.push(i),r+=4},"R"),Y:__name(()=>{},"Y"),O:__name(()=>{},"O"),B:__name(e=>{t.date=Time(e.readBigInt64BE(9)),t.lsn=e.subarray(1,9)},"B"),I:__name(e=>{let n=1;const s=t[e.readUInt32BE(n)],{row:i}=tuples(e,s.columns,n+=7,o);r(i,{command:"insert",relation:s})},"I"),D:__name(e=>{let n=1;const s=t[e.readUInt32BE(n)];n+=4;const i=75===e[n];r(i||79===e[n]?tuples(e,s.columns,n+=3,o).row:null,{command:"delete",relation:s,key:i})},"D"),U:__name(e=>{let n=1;const s=t[e.readUInt32BE(n)];n+=4;const i=75===e[n],a=i||79===e[n]?tuples(e,s.columns,n+=3,o):null;a&&(n=a.i);const{row:l}=tuples(e,s.columns,n+3,o);r(l,{command:"update",relation:s,key:i,old:a&&a.row})},"U"),T:__name(()=>{},"T"),C:__name(()=>{},"C")}).reduce(s,{})[e[0]](e)}function tuples(e,t,n,r){let o,s,i;const a=r.raw?new Array(t.length):{};for(let l=0;l<t.length;l++)o=e[n++],s=t[l],i=110===o?null:117===o?void 0:void 0===s.parser?e.toString("utf8",n+4,n+=4+e.readUInt32BE(n)):!0===s.parser.array?s.parser(e.toString("utf8",n+5,n+=4+e.readUInt32BE(n))):s.parser(e.toString("utf8",n+4,n+=4+e.readUInt32BE(n))),r.raw?a[l]=!0===r.raw?i:r.value.from?r.value.from(i,s):i:a[s.name]=r.value.from?r.value.from(i,s):i;return{i:n,row:r.row.from?r.row.from(a):a}}function parseEvent(e){const t=e.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!t)throw new Error("Malformed subscribe pattern: "+e);const[,n,r,o]=t;return(n||"*")+(r?":"+(-1===r.indexOf(".")?"public."+r:r):"")+(o?"="+o:"")}var Jf=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/subscribe.js"(){tn(),Kf=__name(()=>{},"noop"),__name(Subscribe,"Subscribe"),__name(Time,"Time"),__name(parse,"parse"),__name(tuples,"tuples"),__name(parseEvent,"parseEvent")}});function largeObject(e,t,n=393216){return new Promise(async(r,o)=>{await e.begin(async e=>{let o;!t&&([{oid:t}]=await(e`select lo_creat(-1) as oid`));const[{fd:s}]=await(e`select lo_open(${t}, ${n}) as fd`),i={writable:async function writable({highWaterMark:e=16384,start:t=0}={}){return t&&await i.seek(t),new Me.Writable({highWaterMark:e,write(e,t,n){i.write(e).then(()=>n(),n)}})},readable:async function readable({highWaterMark:e=16384,start:t=0,end:n=1/0}={}){let r=n-t;return t&&await i.seek(t),new Me.Readable({highWaterMark:e,async read(e){const t=e>r?e-r:e;r-=e;const[{data:n}]=await i.read(t);this.push(n),n.length<e&&this.push(null)}})},close:__name(()=>e`select lo_close(${s})`.then(o),"close"),tell:__name(()=>e`select lo_tell64(${s})`,"tell"),read:__name(t=>e`select loread(${s}, ${t}) as data`,"read"),write:__name(t=>e`select lowrite(${s}, ${t})`,"write"),truncate:__name(t=>e`select lo_truncate64(${s}, ${t})`,"truncate"),seek:__name((t,n=0)=>e`select lo_lseek64(${s}, ${t}, ${n})`,"seek"),size:__name(()=>e`
26
+ `;await t.run(o);const s=(await t.values(sql`SELECT id, hash, created_at FROM ${sql.identifier(r)} ORDER BY created_at DESC LIMIT 1`))[0]??void 0;await t.transaction(async t=>{for(const n of e)if(!s||Number(s[2])<n.folderMillis){for(const e of n.sql)await t.run(sql.raw(e));await t.run(sql`INSERT INTO ${sql.identifier(r)} ("hash", "created_at") VALUES(${n.hash}, ${n.folderMillis})`)}})}}}});function createSetOperator3(e,t){return(n,r,...o)=>{const s=[r,...o].map(n=>({type:e,isAll:t,rightSelect:n}));for(const e of s)if(!haveSameKeys(n.getSelectedFields(),e.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return n.addSetOperators(s)}}var kg,Tg,_g,xg,Pg,Ag,Ig,Ng,Rg,Mg,Lg,$g,Dg,Og,Fg,qg,jg,Bg,Ug,zg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/query-builders/select.js"(){tn(),gs(),Cc(),Pl(),Ec(),ui(),Qs(),ai(),Ei(),Js(),Cg(),mg=class{static{__name(this,"SQLiteSelectBuilder")}static[ss]="SQLiteSelectBuilder";fields;session;dialect;withList;distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,this.withList=e.withList,this.distinct=e.distinct}from(e){const t=!!this.fields;let n;return n=this.fields?this.fields:is(e,Ls)?Object.fromEntries(Object.keys(e._.selectedFields).map(t=>[t,e[t]])):is(e,cg)?e[Os].selectedFields:is(e,Zs)?{}:getTableColumns(e),new gg({table:e,fields:n,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}},pg=class extends rc{static{__name(this,"SQLiteSelectQueryBuilderBase")}static[ss]="SQLiteSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:e,fields:t,isPartialSelect:n,session:r,dialect:o,withList:s,distinct:i}){super(),this.config={withList:s,table:e,fields:{...t},distinct:i,setOperators:[]},this.isPartialSelect=n,this.session=r,this.dialect=o,this._={selectedFields:t},this.tableName=getTableLikeName(e),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{}}createJoin(e){return(t,n)=>{const r=this.tableName,o=getTableLikeName(t);if("string"==typeof o&&this.config.joins?.some(e=>e.alias===o))throw new Error(`Alias "${o}" is already used in this query`);if(!this.isPartialSelect&&(1===Object.keys(this.joinsNotNullableMap).length&&"string"==typeof r&&(this.config.fields={[r]:this.config.fields}),"string"==typeof o&&!is(t,Zs))){const e=is(t,Ls)?t._.selectedFields:is(t,ii)?t[Os].selectedFields:t[Gs.Symbol.Columns];this.config.fields[o]=e}if("function"==typeof n&&(n=n(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:n,table:t,joinType:e,alias:o}),"string"==typeof o)switch(e){case"left":this.joinsNotNullableMap[o]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!0;break;case"inner":this.joinsNotNullableMap[o]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([e])=>[e,!1])),this.joinsNotNullableMap[o]=!1}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(e,t){return n=>{const r="function"==typeof n?n(hg()):n;if(!haveSameKeys(this.getSelectedFields(),r.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:r}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);except=this.createSetOperator("except",!1);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return"function"==typeof e&&(e=e(new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.fields,new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=n:this.config.orderBy=n}else{const t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){return new Proxy(new Ls(this.getSQL(),this.config.fields,e),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new nc({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}},applyMixins(gg=class extends pg{static{__name(this,"SQLiteSelectBase")}static[ss]="SQLiteSelect";_prepare(e=!0){if(!this.session)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");const t=orderSelectedFields(this.config.fields),n=this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),t,"all",!0);return n.joinsNotNullableMap=this.joinsNotNullableMap,n}prepare(){return this._prepare(!1)}run=__name(e=>this._prepare().run(e),"run");all=__name(e=>this._prepare().all(e),"all");get=__name(e=>this._prepare().get(e),"get");values=__name(e=>this._prepare().values(e),"values");async execute(){return this.all()}},[vl]),__name(createSetOperator3,"createSetOperator"),hg=__name(()=>({union:fg,unionAll:yg,intersect:wg,except:Sg}),"getSQLiteSetOperators"),fg=createSetOperator3("union",!1),yg=createSetOperator3("union",!0),wg=createSetOperator3("intersect",!1),Sg=createSetOperator3("except",!1)}}),Hg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/query-builders/query-builder.js"(){tn(),gs(),Ec(),vg(),Qs(),zg(),kg=class{static{__name(this,"QueryBuilder")}static[ss]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=is(e,ug)?e:void 0,this.dialectConfig=is(e,ug)?void 0:e}$with(e){const t=this;return{as:n=>("function"==typeof n&&(n=n(t)),new Proxy(new $s(n.getSQL(),n.getSelectedFields(),e,!0),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}with(...e){const t=this;function select5(n){return new mg({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e})}function selectDistinct(n){return new mg({fields:n??void 0,session:void 0,dialect:t.getDialect(),withList:e,distinct:!0})}return __name(select5,"select"),__name(selectDistinct,"selectDistinct"),{select:select5,selectDistinct:selectDistinct}}select(e){return new mg({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new mg({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){return this.dialect||(this.dialect=new dg(this.dialectConfig)),this.dialect}}}}),Wg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/query-builders/insert.js"(){tn(),gs(),Pl(),ui(),bg(),ai(),Ei(),Hg(),Tg=class{static{__name(this,"SQLiteInsertBuilder")}constructor(e,t,n,r){this.table=e,this.session=t,this.dialect=n,this.withList=r}static[ss]="SQLiteInsertBuilder";values(e){if(0===(e=Array.isArray(e)?e:[e]).length)throw new Error("values() must be called with at least one value");const t=e.map(e=>{const t={},n=this.table[Gs.Symbol.Columns];for(const r of Object.keys(e)){const o=e[r];t[r]=is(o,Zs)?o:new ri(o,n[r])}return t});return new _g(this.table,t,this.session,this.dialect,this.withList)}select(e){const t="function"==typeof e?e(new kg):e;if(!is(t,Zs)&&!haveSameKeys(this.table[qs],t._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new _g(this.table,t,this.session,this.dialect,this.withList,!0)}},_g=class extends vl{static{__name(this,"SQLiteInsertBase")}constructor(e,t,n,r,o,s){super(),this.session=n,this.dialect=r,this.config={table:e,values:t,withList:o,select:s}}static[ss]="SQLiteInsert";config;returning(e=this.config.table[sg.Symbol.Columns]){return this.config.returning=orderSelectedFields(e),this}onConflictDoNothing(e={}){if(void 0===e.target)this.config.onConflict=sql`do nothing`;else{const t=Array.isArray(e.target)?sql`${e.target}`:sql`${[e.target]}`,n=e.where?sql` where ${e.where}`:sql``;this.config.onConflict=sql`${t} do nothing${n}`}return this}onConflictDoUpdate(e){if(e.where&&(e.targetWhere||e.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');const t=e.where?sql` where ${e.where}`:void 0,n=e.targetWhere?sql` where ${e.targetWhere}`:void 0,r=e.setWhere?sql` where ${e.setWhere}`:void 0,o=Array.isArray(e.target)?sql`${e.target}`:sql`${[e.target]}`,s=this.dialect.buildUpdateSet(this.config.table,mapUpdateSet(this.config.table,e.set));return this.config.onConflict=sql`${o}${n} do update set ${s}${t}${r}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0)}prepare(){return this._prepare(!1)}run=__name(e=>this._prepare().run(e),"run");all=__name(e=>this._prepare().all(e),"all");get=__name(e=>this._prepare().get(e),"get");values=__name(e=>this._prepare().values(e),"values");async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}}}),Gg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/query-builders/select.types.js"(){tn()}}),Vg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/query-builders/update.js"(){tn(),gs(),Pl(),Ec(),bg(),Qs(),ai(),Ei(),Js(),Cg(),xg=class{static{__name(this,"SQLiteUpdateBuilder")}constructor(e,t,n,r){this.table=e,this.session=t,this.dialect=n,this.withList=r}static[ss]="SQLiteUpdateBuilder";set(e){return new Pg(this.table,mapUpdateSet(this.table,e),this.session,this.dialect,this.withList)}},Pg=class extends vl{static{__name(this,"SQLiteUpdateBase")}constructor(e,t,n,r,o){super(),this.session=n,this.dialect=r,this.config={set:t,table:e,withList:o,joins:[]}}static[ss]="SQLiteUpdate";config;from(e){return this.config.from=e,this}createJoin(e){return(t,n)=>{const r=getTableLikeName(t);if("string"==typeof r&&this.config.joins.some(e=>e.alias===r))throw new Error(`Alias "${r}" is already used in this query`);if("function"==typeof n){const e=this.config.from?is(t,sg)?t[Gs.Symbol.Columns]:is(t,Ls)?t._.selectedFields:is(t,cg)?t[Os].selectedFields:void 0:void 0;n=n(new Proxy(this.config.table[Gs.Symbol.Columns],new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),e&&new Proxy(e,new nc({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}return this.config.joins.push({on:n,table:t,joinType:e,alias:r}),this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(e){return this.config.where=e,this}orderBy(...e){if("function"==typeof e[0]){const t=e[0](new Proxy(this.config.table[Gs.Symbol.Columns],new nc({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),n=Array.isArray(t)?t:[t];this.config.orderBy=n}else{const t=e;this.config.orderBy=t}return this}limit(e){return this.config.limit=e,this}returning(e=this.config.table[sg.Symbol.Columns]){return this.config.returning=orderSelectedFields(e),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){const{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0)}prepare(){return this._prepare(!1)}run=__name(e=>this._prepare().run(e),"run");all=__name(e=>this._prepare().all(e),"all");get=__name(e=>this._prepare().get(e),"get");values=__name(e=>this._prepare().values(e),"values");async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}}}),Qg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/query-builders/index.js"(){tn(),Eg(),Wg(),Hg(),zg(),Gg(),Vg()}}),Kg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/query-builders/count.js"(){tn(),gs(),ui(),Ag=class _SQLiteCountBuilder extends Zs{static{__name(this,"SQLiteCountBuilder")}constructor(e){super(_SQLiteCountBuilder.buildEmbeddedCount(e.source,e.filters).queryChunks),this.params=e,this.session=e.session,this.sql=_SQLiteCountBuilder.buildCount(e.source,e.filters)}sql;static[ss]="SQLiteCountBuilderAsync";[Symbol.toStringTag]="SQLiteCountBuilderAsync";session;static buildEmbeddedCount(e,t){return sql`(select count(*) from ${e}${sql.raw(" where ").if(t)}${t})`}static buildCount(e,t){return sql`select count(*) from ${e}${sql.raw(" where ").if(t)}${t}`}then(e,t){return Promise.resolve(this.session.count(this.sql)).then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}}}}),Yg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/query-builders/query.js"(){tn(),gs(),Pl(),gc(),Ig=class{static{__name(this,"RelationalQueryBuilder")}constructor(e,t,n,r,o,s,i,a){this.mode=e,this.fullSchema=t,this.schema=n,this.tableNamesMap=r,this.table=o,this.tableConfig=s,this.dialect=i,this.session=a}static[ss]="SQLiteAsyncRelationalQueryBuilder";findMany(e){return"sync"===this.mode?new Rg(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many"):new Ng(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many")}findFirst(e){return"sync"===this.mode?new Rg(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first"):new Ng(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first")}},Ng=class extends vl{static{__name(this,"SQLiteRelationalQuery")}constructor(e,t,n,r,o,s,i,a,l){super(),this.fullSchema=e,this.schema=t,this.tableNamesMap=n,this.table=r,this.tableConfig=o,this.dialect=s,this.session=i,this.config=a,this.mode=l}static[ss]="SQLiteAsyncRelationalQuery";mode;getSQL(){return this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}).sql}_prepare(e=!1){const{query:t,builtQuery:n}=this._toSQL();return this.session[e?"prepareOneTimeQuery":"prepareQuery"](n,void 0,"first"===this.mode?"get":"all",!0,(e,n)=>{const r=e.map(e=>mapRelationalRow(this.schema,this.tableConfig,e,t.selection,n));return"first"===this.mode?r[0]:r})}prepare(){return this._prepare(!1)}_toSQL(){const e=this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName});return{query:e,builtQuery:this.dialect.sqlToQuery(e.sql)}}toSQL(){return this._toSQL().builtQuery}executeRaw(){return"first"===this.mode?this._prepare(!1).get():this._prepare(!1).all()}async execute(){return this.executeRaw()}},Rg=class extends Ng{static{__name(this,"SQLiteSyncRelationalQuery")}static[ss]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}}}),Jg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/query-builders/raw.js"(){tn(),gs(),Pl(),Mg=class extends vl{static{__name(this,"SQLiteRaw")}constructor(e,t,n,r,o){super(),this.execute=e,this.getSQL=t,this.dialect=r,this.mapBatchResult=o,this.config={action:n}}static[ss]="SQLiteRaw";config;getQuery(){return{...this.dialect.sqlToQuery(this.getSQL()),method:this.config.action}}mapResult(e,t){return t?this.mapBatchResult(e):e}_prepare(){return this}isResponseInArrayMode(){return!1}}}}),Xg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/db.js"(){tn(),gs(),Ec(),ui(),Qg(),Qs(),Kg(),Yg(),Jg(),Lg=class{static{__name(this,"BaseSQLiteDatabase")}constructor(e,t,n,r){this.resultKind=e,this.dialect=t,this.session=n,this._=r?{schema:r.schema,fullSchema:r.fullSchema,tableNamesMap:r.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={};const o=this.query;if(this._.schema)for(const[s,i]of Object.entries(this._.schema))o[s]=new Ig(e,r.fullSchema,this._.schema,this._.tableNamesMap,r.fullSchema[s],i,t,n)}static[ss]="BaseSQLiteDatabase";query;$with(e){const t=this;return{as:n=>("function"==typeof n&&(n=n(new kg(t.dialect))),new Proxy(new $s(n.getSQL(),n.getSelectedFields(),e,!0),new nc({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}$count(e,t){return new Ag({source:e,filters:t,session:this.session})}with(...e){const t=this;function select5(n){return new mg({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e})}function selectDistinct(n){return new mg({fields:n??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}function update(n){return new xg(n,t.session,t.dialect,e)}function insert(n){return new Tg(n,t.session,t.dialect,e)}function delete_(n){return new lg(n,t.session,t.dialect,e)}return __name(select5,"select"),__name(selectDistinct,"selectDistinct"),__name(update,"update"),__name(insert,"insert"),__name(delete_,"delete_"),{select:select5,selectDistinct:selectDistinct,update:update,insert:insert,delete:delete_}}select(e){return new mg({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new mg({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(e){return new xg(e,this.session,this.dialect)}insert(e){return new Tg(e,this.session,this.dialect)}delete(e){return new lg(e,this.session,this.dialect)}run(e){const t="string"==typeof e?sql.raw(e):e.getSQL();return"async"===this.resultKind?new Mg(async()=>this.session.run(t),()=>t,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session)):this.session.run(t)}all(e){const t="string"==typeof e?sql.raw(e):e.getSQL();return"async"===this.resultKind?new Mg(async()=>this.session.all(t),()=>t,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session)):this.session.all(t)}get(e){const t="string"==typeof e?sql.raw(e):e.getSQL();return"async"===this.resultKind?new Mg(async()=>this.session.get(t),()=>t,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session)):this.session.get(t)}values(e){const t="string"==typeof e?sql.raw(e):e.getSQL();return"async"===this.resultKind?new Mg(async()=>this.session.values(t),()=>t,"values",this.dialect,this.session.extractRawValuesValueFromBatchResult.bind(this.session)):this.session.values(t)}transaction(e,t){return this.session.transaction(e,t)}}}}),Zg=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/indexes.js"(){tn(),gs(),class{static{__name(this,"IndexBuilderOn")}constructor(e,t){this.name=e,this.unique=t}static[ss]="SQLiteIndexBuilderOn";on(...e){return new $g(this.name,e,this.unique)}},$g=class{static{__name(this,"IndexBuilder")}static[ss]="SQLiteIndexBuilder";config;constructor(e,t,n){this.config={name:e,columns:t,unique:n,where:void 0}}where(e){return this.config.where=e,this}build(e){return new Dg(this.config,e)}},Dg=class{static{__name(this,"Index")}static[ss]="SQLiteIndex";config;constructor(e,t){this.config={...e,table:t}}}}}),eh=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/primary-keys.js"(){tn(),gs(),bg(),class{static{__name(this,"PrimaryKeyBuilder")}static[ss]="SQLitePrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new Og(e,this.columns,this.name)}},Og=class{static{__name(this,"PrimaryKey")}constructor(e,t,n){this.table=e,this.columns=t,this.name=n}static[ss]="SQLitePrimaryKey";columns;name;getName(){return this.name??`${this.table[sg.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}}}}),th=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/session.js"(){tn(),gs(),Ml(),Pl(),Xg(),Fg=class extends vl{static{__name(this,"ExecuteResultSync")}constructor(e){super(),this.resultCb=e}static[ss]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}},class{static{__name(this,"SQLitePreparedQuery")}constructor(e,t,n){this.mode=e,this.executeMethod=t,this.query=n}static[ss]="PreparedQuery";joinsNotNullableMap;getQuery(){return this.query}mapRunResult(e,t){return e}mapAllResult(e,t){throw new Error("Not implemented")}mapGetResult(e,t){throw new Error("Not implemented")}execute(e){return"async"===this.mode?this[this.executeMethod](e):new Fg(()=>this[this.executeMethod](e))}mapResult(e,t){switch(this.executeMethod){case"run":return this.mapRunResult(e,t);case"all":return this.mapAllResult(e,t);case"get":return this.mapGetResult(e,t)}}},class{static{__name(this,"SQLiteSession")}constructor(e){this.dialect=e}static[ss]="SQLiteSession";prepareOneTimeQuery(e,t,n,r){return this.prepareQuery(e,t,n,r)}run(e){const t=this.dialect.sqlToQuery(e);try{return this.prepareOneTimeQuery(t,void 0,"run",!1).run()}catch(e){throw new Il({cause:e,message:`Failed to run the query '${t.sql}'`})}}extractRawRunValueFromBatchResult(e){return e}all(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run",!1).all()}extractRawAllValueFromBatchResult(e){throw new Error("Not implemented")}get(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run",!1).get()}extractRawGetValueFromBatchResult(e){throw new Error("Not implemented")}values(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run",!1).values()}async count(e){return(await this.values(e))[0][0]}extractRawValuesValueFromBatchResult(e){throw new Error("Not implemented")}},class extends Lg{static{__name(this,"SQLiteTransaction")}constructor(e,t,n,r,o=0){super(e,t,n,r),this.schema=r,this.nestedIndex=o}static[ss]="SQLiteTransaction";rollback(){throw new Nl}}}}),nh=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/subquery.js"(){tn()}}),rh=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/utils.js"(){tn()}}),oh=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/view.js"(){tn(),gs(),Ec(),Ei(),Hg(),bg(),Cg(),qg=class{static{__name(this,"ViewBuilderCore")}constructor(e){this.name=e}static[ss]="SQLiteViewBuilderCore";config={}},class extends qg{static{__name(this,"ViewBuilder")}static[ss]="SQLiteViewBuilder";as(e){"function"==typeof e&&(e=e(new kg));const t=new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}),n=e.getSelectedFields();return new Proxy(new jg({config:{name:this.name,schema:void 0,selectedFields:n,query:e.getSQL().inlineParams()}}),t)}},class extends qg{static{__name(this,"ManualViewBuilder")}static[ss]="SQLiteManualViewBuilder";columns;constructor(e,t){super(e),this.columns=getTableColumns(ig(e,t))}existing(){return new Proxy(new jg({config:{name:this.name,schema:void 0,selectedFields:this.columns,query:void 0}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}as(e){return new Proxy(new jg({config:{name:this.name,schema:void 0,selectedFields:this.columns,query:e.inlineParams()}}),new nc({alias:this.name,sqlBehavior:"error",sqlAliasedBehavior:"alias",replaceOriginalName:!0}))}},jg=class extends cg{static{__name(this,"SQLiteView")}static[ss]="SQLiteView";constructor({config:e}){super(e)}}}}),sh=__esm({"../../node_modules/.pnpm/drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@opentelemetry+api@1.9.0_@typ_3d06683e7889b41632a114966c88e68a/node_modules/drizzle-orm/sqlite-core/index.js"(){tn(),bp(),Ep(),rg(),Xg(),vg(),Cp(),Zg(),eh(),Qg(),th(),nh(),bg(),Np(),rh(),oh()}});function c(e,t){const n=getTableColumns(e),r=Object.entries(n);let o=Object.fromEntries(r.map(([e,t])=>[e,p(t)]));t&&(o=Object.assign(o,Object.fromEntries(Object.entries(t).map(([e,t])=>[e,"function"==typeof t?t(o):t]))));for(const[e,t]of r)t.notNull?t.hasDefault&&(o[e]=o[e].optional()):o[e]=o[e].nullable().optional();return f.object(o)}function b(e,t){const n=getTableColumns(e),r=Object.entries(n);let o=Object.fromEntries(r.map(([e,t])=>[e,p(t)]));t&&(o=Object.assign(o,Object.fromEntries(Object.entries(t).map(([e,t])=>[e,"function"==typeof t?t(o):t]))));for(const[e,t]of r)t.notNull||(o[e]=o[e].nullable());return f.object(o)}function p(e){let t;if("enumValues"in(n=e)&&Array.isArray(n.enumValues)&&n.enumValues.length>0&&(t=e.enumValues.length?f.enum(e.enumValues):f.string()),!t)if(is(e,il))t=f.string().uuid();else if("custom"===e.dataType)t=f.any();else if("json"===e.dataType)t=Ug;else if("array"===e.dataType)t=f.array(p(e.baseColumn));else if("number"===e.dataType)t=f.number();else if("bigint"===e.dataType)t=f.bigint();else if("boolean"===e.dataType)t=f.boolean();else if("date"===e.dataType)t=f.date();else if("string"===e.dataType){let n=f.string();(is(e,Ri)||is(e,cl)||is(e,im)||is(e,rm)||is(e,Qu)||is(e,Xp))&&"number"==typeof e.length&&(n=n.max(e.length)),t=n}var n;return t||(t=f.any()),t}var ih,ah,lh,ch,uh,dh,mh,ph,gh,hh,fh,yh,wh,Sh,bh,Eh,Ch=__esm({"../../node_modules/.pnpm/drizzle-zod@0.5.1_drizzle-orm@0.38.4_@cloudflare+workers-types@4.20260130.0_@openteleme_b3c215b3643775ed24a84c4c640c6f32/node_modules/drizzle-zod/index.mjs"(){tn(),xu(),Sp(),vu(),sh(),Bg=f.union([f.string(),f.number(),f.boolean(),f.null()]),Ug=f.lazy(()=>f.union([Bg,f.array(Ug),f.record(Ug)])),__name(c,"c"),__name(b,"b"),__name(p,"p")}}),vh=__esm({"../shared/src/database/schema/auth.ts"(){tn(),vu(),xu(),Ch(),ih=sql`(SELECT NULLIF(current_setting('app.current_user_id', true), '')::uuid)`,ah=Ol("users",{id:uuid("id").primaryKey(),name:text("name").notNull(),email:text("email").notNull().unique(),emailVerified:boolean("email_verified").default(!1).notNull(),image:text("image"),createdAt:timestamp("created_at").defaultNow().notNull(),updatedAt:timestamp("updated_at").defaultNow().$onUpdate(()=>new Date).notNull(),userName:text("user_name").notNull().unique(),termsAcceptedAt:date("terms_accepted_at").defaultNow(),bio:text("bio").default(""),admin:boolean("admin").default(!1),info:text("info").default(""),authId:uuid("auth_id").$defaultFn(()=>Te()).notNull().unique(),location:text("location").default(""),website:text("website").default(""),twitter:text("twitter").default(""),company:text("company").default(""),followerCount:integer("follower_count").default(0).notNull(),followingCount:integer("following_count").default(0).notNull(),metadata:jsonb("metadata").default({}).$type()},e=>[pgPolicy("users_select_own",{for:"select",to:"app_user",using:sql`id = ${ih}`}),pgPolicy("users_update_own",{for:"update",to:"app_user",using:sql`id = ${ih}`}),pgPolicy("users_select_public",{for:"select",to:"public_user",using:sql`true`}),index("users_created_at_idx").on(e.createdAt)]),Ol("sessions",{id:uuid("id").primaryKey(),expiresAt:timestamp("expires_at").notNull(),token:text("token").notNull().unique(),createdAt:timestamp("created_at").defaultNow().notNull(),updatedAt:timestamp("updated_at").$onUpdate(()=>new Date).notNull(),ipAddress:text("ip_address"),userAgent:text("user_agent"),userId:uuid("user_id").notNull().references(()=>ah.id,{onDelete:"cascade"})},e=>[index("sessions_user_id_expires_at_idx").on(e.userId,e.expiresAt),pgPolicy("sessions_select_own",{for:"select",to:"app_user",using:sql`user_id = ${ih}`}),pgPolicy("sessions_insert_own",{for:"insert",to:"app_user",withCheck:sql`user_id = ${ih}`}),pgPolicy("sessions_delete_own",{for:"delete",to:"app_user",using:sql`user_id = ${ih}`}),pgPolicy("sessions_update_own",{for:"update",to:"app_user",using:sql`user_id = ${ih}`})]),Ol("accounts",{id:uuid("id").primaryKey(),accountId:text("account_id").notNull(),providerId:text("provider_id").notNull(),userId:uuid("user_id").notNull().references(()=>ah.id,{onDelete:"cascade"}),accessToken:text("access_token"),refreshToken:text("refresh_token"),idToken:text("id_token"),accessTokenExpiresAt:timestamp("access_token_expires_at"),refreshTokenExpiresAt:timestamp("refresh_token_expires_at"),scope:text("scope"),password:text("password"),createdAt:timestamp("created_at").defaultNow().notNull(),updatedAt:timestamp("updated_at").$onUpdate(()=>new Date).notNull()},e=>[index("accounts_user_id_idx").on(e.userId),pgPolicy("accounts_select_own",{for:"select",to:"app_user",using:sql`user_id = ${ih}`}),pgPolicy("accounts_insert_own",{for:"insert",to:"app_user",withCheck:sql`user_id = ${ih}`}),pgPolicy("accounts_update_own",{for:"update",to:"app_user",using:sql`user_id = ${ih}`}),pgPolicy("accounts_delete_own",{for:"delete",to:"app_user",using:sql`user_id = ${ih}`})]),Ol("verifications",{id:uuid("id").primaryKey(),identifier:text("identifier").notNull(),value:text("value").notNull(),expiresAt:timestamp("expires_at").notNull(),createdAt:timestamp("created_at").defaultNow().notNull(),updatedAt:timestamp("updated_at").defaultNow().$onUpdate(()=>new Date).notNull()},e=>[pgPolicy("verifications_insert_public",{for:"insert",to:"app_user",withCheck:sql`true`}),pgPolicy("verifications_select_public",{for:"select",to:"app_user",using:sql`true`}),pgPolicy("verifications_delete_expired",{for:"delete",to:"app_user",using:sql`expires_at < NOW()`})]),Ol("rate_limits",{id:text("id").primaryKey(),key:text("key"),count:integer("count"),lastRequest:bigint("last_request",{mode:"number"})},e=>[index("rate_limits_key_idx").on(e.key),index("rate_limits_last_request_idx").on(e.lastRequest)]),c(ah),b(ah)}}),kh=__esm({"../shared/src/database/schema/orgs.ts"(){tn(),vu(),xu(),Ch(),vh(),lh=sql`(SELECT NULLIF(current_setting('app.current_user_id', true), '')::uuid)`,sql`org_members`,sql`users`,c(ch=Ol("orgs",{id:uuid("id").defaultRandom().primaryKey(),createdAt:timestamp("created_at",{withTimezone:!0}).defaultNow().notNull(),ownerId:uuid("owner_id").references(()=>ah.id).notNull(),avatarUrl:text("avatar_url"),description:text("description"),name:text("name"),login:text("login").notNull().unique(),authId:uuid("auth_id").defaultRandom().notNull().unique(),default:boolean("default").default(!1).notNull(),location:text("location").default(""),website:text("website").default(""),twitter:text("twitter").default(""),followerCount:integer("follower_count").default(0).notNull()},e=>[index("orgs_owner_id_idx").on(e.ownerId),pgPolicy("orgs_select_members",{for:"select",to:["app_user","public_user"],using:sql`true`}),pgPolicy("orgs_insert_authenticated",{for:"insert",to:"app_user",withCheck:sql`true`}),pgPolicy("orgs_update_owner",{for:"update",to:"app_user",using:sql`owner_id = ${lh}`}),pgPolicy("orgs_delete_owner",{for:"delete",to:"app_user",using:sql`owner_id = ${lh}`})])),b(ch)}}),Th=__esm({"../shared/src/database/schema/lifecycle-events.ts"(){tn(),vu(),Ch(),vh(),kh(),xu(),uh=sql`(SELECT NULLIF(current_setting('app.current_user_id', true), '')::uuid)`,dh=sql`users`,mh=pgEnum("LifecycleEventType",["signup_unverified","signup_verified","signup_github","taste_learned","taste_pushed","subscription_exists","subscription_individual_pro","subscription_individual_max","subscription_individual_go","subscription_individual_ultra","subscription_org_pro","subscription_exhausted","subscription_individual_pro_exhausted","subscription_individual_max_exhausted","subscription_individual_go_exhausted","subscription_individual_ultra_exhausted","subscription_org_pro_exhausted","subscription_usage_alert","credits_gift_usage_alert","credits_gift_exhausted","credits_gift_granted","subscription_renewed","subscription_cancelled","subscription_winback","account_inactive_free","account_inactive_customer","cli_session_exists","cli_first_message","cli_installed","cli_updated","org_created","org_member_invited","org_member_removed","api_key_created","api_key_deleted"]),ph=pgEnum("LifecycleEventStatus",["pending","processed","skipped","failed"]),c(gh=Ol("lifecycle_events",{id:uuid("id").defaultRandom().primaryKey(),createdAt:timestamp("created_at",{withTimezone:!0}).defaultNow().notNull(),userId:uuid("user_id").references(()=>ah.id,{onUpdate:"cascade",onDelete:"cascade"}).notNull(),orgId:uuid("org_id").references(()=>ch.id,{onUpdate:"cascade",onDelete:"cascade"}),eventType:mh("event_type").notNull(),status:ph("status").default("pending").notNull(),metadata:jsonb("metadata").default("{}").notNull(),scheduledFor:timestamp("scheduled_for",{withTimezone:!0}),processedAt:timestamp("processed_at",{withTimezone:!0}),idempotencyKey:text("idempotency_key").notNull().unique()},e=>[index("lifecycle_events_org_id_idx").on(e.orgId),index("lifecycle_events_event_type_created_at_user_id_idx").on(e.eventType,e.createdAt,e.userId),pgPolicy("lifecycle_events_select_admin",{as:"permissive",to:"app_user",for:"select",using:sql`(SELECT admin FROM ${dh} WHERE id = ${uh})`}),pgPolicy("lifecycle_events_insert_admin",{as:"permissive",to:"app_user",for:"insert",withCheck:sql`(SELECT admin FROM ${dh} WHERE id = ${uh})`}),pgPolicy("lifecycle_events_update_admin",{as:"permissive",to:"app_user",for:"update",using:sql`(SELECT admin FROM ${dh} WHERE id = ${uh})`}),pgPolicy("lifecycle_events_delete_admin",{as:"permissive",to:"app_user",for:"delete",using:sql`(SELECT admin FROM ${dh} WHERE id = ${uh})`})])),b(gh)}}),_h=__esm({"../shared/src/types/billing.ts"(){tn(),Th(),sn(),hh=f.enum(["active","canceled","incomplete","incomplete_expired","past_due","trialing","unpaid"]),fh=f.enum(["admin_grant","signup_credits","purchased_credits","subscription_credits"]),yh=f.enum(["agent","learning","custom-agent","custom-agent-create","title-gen","tool-desc","compact"]),wh=f.enum(["free","monthly","purchased"]),f.enum(["team","individual","enterprise"]),f.object({type:f.enum(["api","oauth"]).default("api"),orgId:f.string().nullable().optional(),model:f.string().min(1),userId:f.string().min(1),traceId:f.string(),provider:f.enum(Object.values(Rt)).default("anthropic"),oauthProvider:f.string().nullable().optional(),tokensIn:f.number().min(0),tokensOut:f.number().min(0),inputCost:f.number().min(0),totalCost:f.number().min(0),outputCost:f.number().min(0),ownerLogin:f.string(),tokensTotal:f.number().min(0),creditsTotal:f.number().min(0),durationTotal:f.number().min(0),mode:yh.nullable().optional(),cacheCost:f.number().min(0).optional(),cacheSavings:f.number().optional(),cacheCreation:f.object({ephemeral_5m_input_tokens:f.number().optional(),ephemeral_1h_input_tokens:f.number().optional()}).nullable().optional(),cacheCreationInputTokens:f.number().min(0).nullable().optional(),cacheReadInputTokens:f.number().min(0).nullable().optional(),threadId:f.string().nullable().optional(),messageInId:f.string().nullable().optional(),messageOutId:f.string().nullable().optional(),cliVersion:f.string().nullable().optional(),modelCategory:f.enum(["premium","opensource"]).optional()}),f.object({success:f.boolean(),instanceId:f.string().optional(),error:f.string().optional()}),f.object({userId:f.string().min(1),orgId:f.string().nullable()}),f.object({credits:f.object({freeCredits:f.number(),belowThreshold:f.boolean(),monthlyCredits:f.number(),creditThreshold:f.number(),availableCredits:f.number(),purchasedCredits:f.number(),premiumMonthlyCredits:f.number().optional(),opensourceMonthlyCredits:f.number().optional(),planId:f.string().nullable().optional()})}),f.object({userId:f.string().min(1),orgId:f.string().nullable().optional()}),f.object({success:f.boolean(),data:f.object({id:f.string(),userId:f.uuid(),orgId:f.string().nullable(),stripeCustomerId:f.string(),autoCharge:f.boolean(),creditThreshold:f.string(),rechargeAmount:f.string(),monthlyCreditThreshold:f.string()}).optional(),error:f.string().optional()}),f.object({userId:f.string().min(1),orgId:f.string().nullable().optional(),autoCharge:f.boolean().optional(),rechargeAmount:f.number().min(0).optional(),creditThreshold:f.number().min(0).optional(),monthlyCreditThreshold:f.number().min(0).optional(),stripeCustomerId:f.string().optional()}),f.object({success:f.boolean(),data:f.object({id:f.string(),userId:f.uuid(),orgId:f.string().nullable(),stripeCustomerId:f.string(),autoCharge:f.boolean(),creditThreshold:f.string(),rechargeAmount:f.string()}).optional(),error:f.string().optional()}),f.object({userId:f.string().min(1),userEmail:f.email(),orgId:f.string().nullable().optional()}),f.object({success:f.boolean(),data:f.object({clientSecret:f.string(),customerId:f.string()}).optional(),error:f.string().optional(),message:f.string().optional()}),f.object({userId:f.string().min(1),orgId:f.string().nullable().optional()}),f.object({success:f.boolean(),data:f.object({hasPaymentMethod:f.boolean(),paymentMethods:f.array(f.object({id:f.string(),brand:f.string().optional(),last4:f.string().optional(),expMonth:f.number().optional(),expYear:f.number().optional(),default:f.boolean()})),customerId:f.string().optional()}).optional(),error:f.string().optional()}),f.object({userId:f.string().min(1),paymentMethodId:f.string().min(1),orgId:f.string().nullable().optional()}),f.object({success:f.boolean(),error:f.string().optional()}),f.object({userId:f.string().min(1),orgId:f.string().nullable().optional(),customerId:f.string().min(1),paymentMethodId:f.string().min(1)}),f.object({success:f.boolean(),message:f.string().optional(),error:f.string().optional()}),f.object({body:f.string(),signature:f.string()}),f.object({success:f.boolean(),received:f.boolean().optional(),error:f.string().optional()}),f.object({orgId:f.string().nullable().optional(),amount:f.number().min(0),credits:f.number().min(0),userEmail:f.email(),creditType:wh.optional(),invoiceType:fh}),f.object({success:f.boolean(),message:f.string().optional(),error:f.string().optional()}),f.object({orgId:f.string().nullable(),limit:f.number().min(1).max(100).default(10),userId:f.string().min(1),startingAfter:f.string().optional()}),f.object({success:f.boolean(),data:f.object({invoices:f.array(f.object({id:f.string(),status:f.enum(["paid"]),invoicePdf:f.url().nullable(),amountPaid:f.number(),currency:f.string(),credits:f.string(),autoCharged:f.boolean(),createdAt:f.string(),invoiceType:fh})),hasMore:f.boolean()}).optional(),error:f.string().optional()}),f.object({userId:f.uuid(),orgId:f.uuid().nullable().optional()}),f.object({success:f.boolean(),data:f.object({id:f.string(),orgId:f.string().nullable(),userId:f.string().nullable(),status:hh,planId:f.string(),priceId:f.string(),quantity:f.number(),currentPeriodEnd:f.string(),cancelAtPeriodEnd:f.boolean(),currentPeriodStart:f.string()}).nullable(),error:f.string().optional()}),f.object({success:f.boolean(),data:f.object({totalGiven:f.number(),limit:f.number(),remaining:f.number()}).optional(),error:f.string().optional()}),f.object({userId:f.string().min(1),orgId:f.string().nullable().optional()}),f.object({success:f.boolean(),error:f.string().optional()}),f.object({amount:f.number().min(0)}),f.object({success:f.boolean(),totalGiven:f.number().optional(),exceeded:f.boolean().optional(),error:f.string().optional()}),f.object({userId:f.uuid(),userEmail:f.email(),ip:f.string().nullable().optional(),userAgent:f.string().nullable().optional()}),f.object({success:f.boolean(),allowed:f.boolean(),reason:f.enum(["banned","user_rate_limit","ip_rate_limit","failed_payment_velocity","suspicious_user_agent","email_not_verified"]).optional(),message:f.string().optional(),error:f.string().optional()}),f.object({userId:f.uuid(),orgId:f.uuid().nullable().optional(),eventType:f.enum(mh.enumValues),metadata:f.record(f.string(),f.unknown()).optional(),scheduledFor:f.iso.datetime().optional(),idempotencyKey:f.string().min(1).optional()}),f.object({success:f.boolean(),tracked:f.boolean(),error:f.string().optional()}),f.object({userId:f.uuid(),orgId:f.string().nullable().optional(),minutes:f.number().int().min(1).optional(),from:f.iso.datetime().optional(),to:f.iso.datetime().optional()}),Sh=f.object({model:f.string(),provider:f.string(),timeBucket:f.string(),requests:f.number(),totalCost:f.number(),inputCost:f.number(),outputCost:f.number(),creditsTotal:f.number(),cacheCost:f.number(),cacheSavings:f.number(),tokensIn:f.number(),tokensOut:f.number(),tokensTotal:f.number(),cacheReadInputTokens:f.number(),cacheCreationInputTokens:f.number()}),f.object({success:f.boolean(),data:f.array(Sh).optional(),error:f.string().optional()})}}),xh=__esm({"../shared/src/types/templates.ts"(){tn()}}),Ph=__esm({"../shared/src/types/auth.types.ts"(){tn()}}),Ah=__esm({"../shared/src/types/keys.types.ts"(){tn()}}),Ih=__esm({"../shared/src/types/orgs.types.ts"(){tn()}}),Nh=__esm({"../shared/src/types/usage.ts"(){tn()}});function preprocessAllowedTools(e){if(void 0===e)return;if(Array.isArray(e)){const t=e.filter(e=>"string"==typeof e);return t.length>0?t:void 0}if("string"!=typeof e)throw new Error('allowed-tools must be a space-delimited string (e.g., "Bash(git:*) Read Write") or an array of strings');const t=e.trim();if(""===t)return;const n=t.split(/\s+/).filter(Boolean);return n.length>0?n:void 0}var Rh,Mh,Lh,$h,Dh,Oh,Fh=__esm({"../shared/src/types/skills.ts"(){tn(),__name(preprocessAllowedTools,"preprocessAllowedTools"),bh=f.preprocess(preprocessAllowedTools,f.array(f.string()).optional()).optional(),Eh=f.object({name:f.string().min(1,"Skill name is required").max(64,"Skill name must be 64 characters or less").regex(/^[a-z0-9-]+$/,"Skill name must contain only lowercase letters, numbers, and hyphens").refine(e=>!e.startsWith("-")&&!e.endsWith("-"),"Skill name cannot start or end with a hyphen").refine(e=>!e.includes("--"),"Skill name cannot contain consecutive hyphens"),description:f.string().min(1,"Skill description is required").max(1024,"Skill description must be 1024 characters or less"),license:f.string().optional(),compatibility:f.string().max(500,"Skill compatibility must be 500 characters or less").optional(),metadata:f.record(f.string(),f.any()).optional(),"allowed-tools":bh}),f.object({name:f.string(),description:f.string(),license:f.string().optional(),compatibility:f.string().max(500).optional(),metadata:f.record(f.string(),f.any()).optional(),"allowed-tools":bh,content:f.string(),filePath:f.string()}),f.object({name:f.string(),description:f.string(),filePath:f.string()})}}),qh=__esm({"../shared/src/types/cli-auth.types.ts"(){tn()}}),jh=__esm({"../shared/src/types/sandbox.ts"(){tn()}}),Bh=__esm({"../shared/src/types/index.ts"(){tn(),as(),rs(),ls(),_h(),xh(),Ph(),Ah(),Ih(),Nh(),Fh(),qh(),jh()}});function isSlashCommandToken(e){const t=e.replace(Dh,"");return $h.test(t)}var Uh=__esm({"../shared/src/utils/path-sanitizer.ts"(){tn(),Rh=/\/(?:Users|home)\/[^\/\s]+(?:\/[^\s]*)?/g,Mh=/[A-Za-z]:\\(?:Users\\[^\\]+(?:\\[^\\]*)*|[^\s]*)/g,Lh=/(?:^|\s)([A-Za-z]:\\[^\s]*|\/[^\s]*)/g,$h=/^\/[a-z][a-z0-9-]*$/i,Dh=/[,.;:!?)\]}'"`]+$/,__name(isSlashCommandToken,"isSlashCommandToken"),Oh=class _PathSanitizer{static{__name(this,"PathSanitizer")}projectRoot;homeDir;options;constructor(e={}){this.projectRoot=e.projectRoot||process.cwd(),this.homeDir=this.getHomeDirectory(),this.options={projectRoot:this.projectRoot,useHomeShorthand:e.useHomeShorthand??!0,customReplacements:e.customReplacements||[]}}sanitizeMessage(e){if(!e)return e;const t=JSON.parse(JSON.stringify(e)),n=t.message||t;return n.content=this.sanitizeContent(n.content),t.message&&(t.message=n),t.metadata&&(t.metadata=this.sanitizeObject(t.metadata)),t}sanitizeContent(e){return"string"==typeof e?this.sanitizeText(e):Array.isArray(e)?e.map(e=>this.sanitizeContentBlock(e)):e&&"object"==typeof e?this.sanitizeLegacyContent(e):e}sanitizeContentBlock(e){return"text"===e.type&&"string"==typeof e.text?{...e,text:this.sanitizeText(e.text)}:"tool_use"===e.type&&e.input||"tool-call"===e.type&&e.input?{...e,input:this.sanitizeToolInput(e.input)}:e}sanitizeLegacyContent(e){const t={...e};return t.input&&(t.input=this.sanitizeText(t.input)),t.output&&(t.output=this.sanitizeText(t.output)),t}sanitizeToolInput(e){if(!e||"object"!=typeof e)return e;const t={...e},n=["absolutePath","filePath","path","file_path"];for(const e of n)t[e]&&"string"==typeof t[e]&&(t[e]=this.sanitizePath(t[e]));return t.directory&&"string"==typeof t.directory&&(t.directory=this.sanitizePath(t.directory)),t.content&&"string"==typeof t.content&&(t.content=this.sanitizeText(t.content)),t}sanitizeText(e){if(!e||"string"!=typeof e)return e;let t=e;for(const{pattern:e,replacement:n}of this.options.customReplacements)t=t.replace(e,n);return t=this.replaceAbsolutePaths(t),t}sanitizePath(e){if(!e||"string"!=typeof e)return e;if(isSlashCommandToken(e))return e;if(!t.isAbsolute(e)&&!this.isWindowsAbsolutePath(e))return e;const n=this.tryProjectRelative(e);return null!==n?n:this.options.useHomeShorthand&&e.startsWith(this.homeDir)?e.replace(this.homeDir,"~"):this.isUserPath(e)?`<user-home>/${t.relative(this.homeDir,e)}`:`<system-path>/${t.basename(e)}`}tryProjectRelative(e){try{const n=t.relative(this.projectRoot,e);return n.startsWith("../../../")?null:n.startsWith("../")?n:`./${n}`}catch{return null}}replaceAbsolutePaths(e){return(e=(e=e.replace(Rh,e=>this.sanitizePath(e))).replace(Mh,e=>this.sanitizePath(e))).replace(Lh,(e,t)=>isSlashCommandToken(t)?e:e.substring(0,e.length-t.length)+this.sanitizePath(t))}sanitizeObject(e){if(!e||"object"!=typeof e)return e;if(Array.isArray(e))return e.map(e=>this.sanitizeObject(e));const t={};for(const[n,r]of Object.entries(e))t[n]="string"!=typeof r?"object"!=typeof r?r:this.sanitizeObject(r):this.sanitizeText(r);return t}isWindowsAbsolutePath(e){return/^[A-Za-z]:\\/.test(e)}isUserPath(e){return e.includes("/Users/")||e.includes("/home/")||e.includes("\\Users\\")}getHomeDirectory(){return process.env.HOME||process.env.USERPROFILE||""}static forProject(e){return new _PathSanitizer({projectRoot:e,useHomeShorthand:!0})}static sanitizeMessage(e,t){return _PathSanitizer.forProject(t).sanitizeMessage(e)}static sanitizeMessages(e,t){const n=_PathSanitizer.forProject(t);return e.map(e=>n.sanitizeMessage(e))}}}}),zh=__esm({"../shared/src/utils/calculate-cost.ts"(){tn(),sn()}});function findModelById(e){return Object.values(Ht).find(t=>t.id===e)}function getModelDisplayName(e){const t=Wt[e]??e,n=Object.values(Ht).find(e=>e.id===t);return n?.name??e}var Hh=__esm({"../shared/src/utils/models.ts"(){tn(),sn(),__name(findModelById,"findModelById"),__name(getModelDisplayName,"getModelDisplayName")}});function buildToolNameMap(e){const t=new Map;for(const n of e)if("assistant"===n.role&&Array.isArray(n.content))for(const e of n.content){const n=e;"tool_use"!==n.type&&"server_tool_use"!==n.type||t.set(n.id,n.name)}return t}function extractResultValue(e){return"string"==typeof e.content?e.content:JSON.stringify(e.content??"")}function isServerToolError(e){return"object"==typeof e.content&&null!==e.content&&("type"in e.content&&["web_search_tool_result_error","web_fetch_tool_result_error","web_search_tool_error","web_fetch_tool_error"].includes(e.content.type))}function convertUserMessage(e,t){const n=[],r=[];for(const o of e){const e=o;if("tool_result"===e.type){const r=extractResultValue(e);n.push({type:"tool-result",toolCallId:e.tool_use_id,toolName:t.get(e.tool_use_id)??"unknown",output:e.is_error?{type:"error-text",value:r}:{type:"text",value:r}});continue}if("text"!==e.type){if("image"===e.type){const t="base64"===e.source?.type?`data:${e.source.media_type};base64,${e.source.data}`:e.source?.data??"";r.push({type:"image",image:t});continue}}else r.push({type:"text",text:e.text})}const o=[];if(n.length>0&&o.push({role:"tool",content:n}),r.length>0){const e=r[0],t=1===r.length&&"text"===e.type?e.text:r;o.push({role:"user",content:t})}return o}function convertAssistantBlock(e,t){const n=e;if("text"===n.type&&n.text)return{assistantPart:{type:"text",text:n.text}};if("thinking"===n.type&&n.thinking)return{assistantPart:{type:"reasoning",text:n.thinking}};if("tool_use"===n.type)return t.set(n.id,n.name),{assistantPart:{type:"tool-call",toolCallId:n.id,toolName:n.name,input:n.input??{}}};if("server_tool_use"===n.type)return{assistantPart:{type:"tool-call",toolCallId:n.id,toolName:n.name,input:n.input??{},providerExecuted:!0}};if("web_search_tool_result"===n.type||"web_fetch_tool_result"===n.type||"server_tool_result"===n.type){const e=extractResultValue(n);return{toolResult:{type:"tool-result",toolCallId:n.tool_use_id,toolName:t.get(n.tool_use_id)??"unknown",output:isServerToolError(n)?{type:"error-text",value:e}:{type:"text",value:e},providerExecuted:!0}}}return{}}function convertAssistantMessage(e,t){const n=[],r=[];for(const o of e){const{assistantPart:e,toolResult:s}=convertAssistantBlock(o,t);e&&n.push(e),s&&r.push(s)}const o=[];if(n.length>0){const e=n[0],t=1===n.length&&"text"===e.type?e.text:n;o.push({role:"assistant",content:t})}return r.length>0&&o.push({role:"tool",content:r}),o}function legacyAnthropicToSession(e){const t=buildToolNameMap(e),n=[];for(const r of e)"string"!=typeof r.content?Array.isArray(r.content)&&("user"!==r.role?"assistant"!==r.role||n.push(...convertAssistantMessage(r.content,t)):n.push(...convertUserMessage(r.content,t))):n.push({role:r.role,content:r.content});return n}function isLegacyFormat(e){const t=e.metadata;return!t||2!==t.version}var Wh,Gh,Vh,Qh,Kh,Yh=__esm({"../shared/src/migrations/v1-to-v2-session-messages.ts"(){tn(),__name(buildToolNameMap,"buildToolNameMap"),__name(extractResultValue,"extractResultValue"),__name(isServerToolError,"isServerToolError"),__name(convertUserMessage,"convertUserMessage"),__name(convertAssistantBlock,"convertAssistantBlock"),__name(convertAssistantMessage,"convertAssistantMessage"),__name(legacyAnthropicToSession,"legacyAnthropicToSession"),__name(isLegacyFormat,"isLegacyFormat")}}),Jh=__esm({"../shared/src/constants/license.ts"(){tn()}});function cachedError(e){if(Wh.has(e))return Wh.get(e);const t=Error.stackTraceLimit;return Error.stackTraceLimit=4,Wh.set(e,new Error),Error.stackTraceLimit=t,Wh.get(e)}var Xh,Zh,ef=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/query.js"(){tn(),Wh=new Map,Gh=new Map,Vh=Symbol("OriginError"),Qh={},Kh=class extends Promise{static{__name(this,"Query")}constructor(e,t,n,r,o={}){let s,i;super((e,t)=>{s=e,i=t}),this.tagged=Array.isArray(e.raw),this.strings=e,this.args=t,this.handler=n,this.canceller=r,this.options=o,this.state=null,this.statement=null,this.resolve=e=>(this.active=!1,s(e)),this.reject=e=>(this.active=!1,i(e)),this.active=!1,this.cancelled=null,this.executed=!1,this.signature="",this[Vh]=this.handler.debug?new Error:this.tagged&&cachedError(this.strings)}get origin(){return(this.handler.debug?this[Vh].stack:this.tagged&&Gh.has(this.strings)?Gh.get(this.strings):Gh.set(this.strings,this[Vh].stack).get(this.strings))||""}static get[Symbol.species](){return Promise}cancel(){return this.canceller&&(this.canceller(this),this.canceller=null)}simple(){return this.options.simple=!0,this.options.prepare=!1,this}async readable(){return this.simple(),this.streaming=!0,this}async writable(){return this.simple(),this.streaming=!0,this}cursor(e=1,t){if(this.options.simple=!1,"function"==typeof e&&(t=e,e=1),this.cursorRows=e,"function"==typeof t)return this.cursorFn=t,this;let n;return{[Symbol.asyncIterator]:()=>({next:__name(()=>{if(this.executed&&!this.active)return{done:!0};n&&n();const e=new Promise((e,t)=>{this.cursorFn=t=>(e({value:t,done:!1}),new Promise(e=>n=e)),this.resolve=()=>(this.active=!1,e({done:!0})),this.reject=e=>(this.active=!1,t(e))});return this.execute(),e},"next"),return:()=>(n&&n(Qh),{done:!0})})}}describe(){return this.options.simple=!1,this.onlyDescribe=this.options.prepare=!0,this}stream(){throw new Error(".stream has been renamed to .forEach")}forEach(e){return this.forEachFn=e,this.handle(),this}raw(){return this.isRaw=!0,this}values(){return this.isRaw="values",this}async handle(){!this.executed&&(this.executed=!0)&&await 1&&this.handler(this)}execute(){return this.handle(),this}then(){return this.handle(),super.then.apply(this,arguments)}catch(){return this.handle(),super.catch.apply(this,arguments)}finally(){return this.handle(),super.finally.apply(this,arguments)}},__name(cachedError,"cachedError")}});function connection(e,t,n){const{host:r,port:o}=n||t,s=Object.assign(new Error("write "+e+" "+(t.path||r+":"+o)),{code:e,errno:e,address:t.path||r},t.path?{}:{port:o});return Error.captureStackTrace(s,connection),s}function postgres(e){const t=new Xh(e);return Error.captureStackTrace(t,postgres),t}function generic(e,t){const n=Object.assign(new Error(e+": "+t),{code:e});return Error.captureStackTrace(n,generic),n}function notSupported(e){const t=Object.assign(new Error(e+" (B) is not supported"),{code:"MESSAGE_NOT_SUPPORTED",name:e});return Error.captureStackTrace(t,notSupported),t}var tf,nf,rf,of,sf,af,lf,cf,uf,df,mf,pf,gf,hf,ff,yf,wf,Sf,bf,Ef,Cf,vf,kf,Tf,_f,xf,Pf=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/errors.js"(){tn(),Xh=class extends Error{static{__name(this,"PostgresError")}constructor(e){super(e.message),this.name=this.constructor.name,Object.assign(this,e)}},Zh={connection:connection,postgres:postgres,generic:generic,notSupported:notSupported},__name(connection,"connection"),__name(postgres,"postgres"),__name(generic,"generic"),__name(notSupported,"notSupported")}});function handleValue(e,t,n,r){let o=e instanceof of?e.value:e;if(void 0===o&&(e instanceof of?e.value=r.transform.undefined:o=e=r.transform.undefined,void 0===o))throw Zh.generic("UNDEFINED_VALUE","Undefined values are not allowed");return"$"+n.push(e instanceof of?(t.push(e.value),e.array?e.array[e.type||pf(e.value)]||e.type||firstIsString(e.value):e.type):(t.push(e),pf(e)))}function stringify(e,t,n,r,o,s){for(let i=1;i<e.strings.length;i++)t+=stringifyValue(t,n,r,o,s)+e.strings[i],n=e.args[i];return t}function stringifyValue(e,t,n,r,o){return t instanceof sf?t.build(e,n,r,o):t instanceof Kh?fragment(t,n,r,o):t instanceof rf?t.value:t&&t[0]instanceof Kh?t.reduce((e,t)=>e+" "+fragment(t,n,r,o),""):handleValue(t,n,r,o)}function fragment(e,t,n,r){return e.fragment=!0,stringify(e,e.strings[0],e.args[0],t,n,r)}function valuesBuilder(e,t,n,r,o){return e.map(e=>"("+r.map(r=>stringifyValue("values",e[r],t,n,o)).join(",")+")").join(",")}function values(e,t,n,r,o){const s=Array.isArray(e[0]);return valuesBuilder(s?e:[e],n,r,t.length?t.flat():Object.keys(s?e[0]:e),o)}function select(e,t,n,r,o){if("string"==typeof e&&(e=[e].concat(t)),Array.isArray(e))return escapeIdentifiers(e,o);let s;return(t.length?t.flat():Object.keys(e)).map(t=>(s=e[t],(s instanceof Kh?fragment(s,n,r,o):s instanceof rf?s.value:handleValue(s,n,r,o))+" as "+mf(o.transform.column.to?o.transform.column.to(t):t))).join(",")}function notTagged(){throw Zh.generic("NOT_TAGGED_CALL","Query not called as a tagged template literal")}function firstIsString(e){return Array.isArray(e)?firstIsString(e[0]):"string"==typeof e?1009:0}function typeHandlers(e){return Object.keys(e).reduce((t,n)=>(e[n].from&&[].concat(e[n].from).forEach(r=>t.parsers[r]=e[n].parse),e[n].serialize&&(t.serializers[e[n].to]=e[n].serialize,e[n].from&&[].concat(e[n].from).forEach(r=>t.serializers[r]=e[n].serialize)),t),{parsers:{},serializers:{}})}function escapeIdentifiers(e,{transform:{column:t}}){return e.map(e=>mf(t.to?t.to(e):e)).join(",")}function arrayEscape(e){return e.replace(gf,"\\\\").replace(hf,'\\"')}function arrayParserLoop(e,t,n,r){const o=[],s=1020===r?";":",";for(;e.i<t.length;e.i++){if(e.char=t[e.i],e.quoted)"\\"===e.char?e.str+=t[++e.i]:'"'===e.char?(o.push(n?n(e.str):e.str),e.str="",e.quoted='"'===t[e.i+1],e.last=e.i+2):e.str+=e.char;else if('"'===e.char)e.quoted=!0;else if("{"===e.char)e.last=++e.i,o.push(arrayParserLoop(e,t,n,r));else{if("}"===e.char){e.quoted=!1,e.last<e.i&&o.push(n?n(t.slice(e.last,e.i)):t.slice(e.last,e.i)),e.last=e.i+1;break}e.char===s&&"}"!==e.p&&'"'!==e.p&&(o.push(n?n(t.slice(e.last,e.i)):t.slice(e.last,e.i)),e.last=e.i+1)}e.p=e.char}return e.last<e.i&&o.push(n?n(t.slice(e.last,e.i+1)):t.slice(e.last,e.i+1)),o}function createJsonTransform(e){return __name(function jsonTransform(t,n){return"object"!=typeof t||null===t||114!==n.type&&3802!==n.type?t:Array.isArray(t)?t.map(e=>jsonTransform(e,n)):Object.entries(t).reduce((t,[r,o])=>Object.assign(t,{[e(r)]:jsonTransform(o,n)}),{})},"jsonTransform")}var Af,If,Nf=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/types.js"(){tn(),ef(),Pf(),tf={string:{to:25,from:null,serialize:__name(e=>""+e,"serialize")},number:{to:0,from:[21,23,26,700,701],serialize:__name(e=>""+e,"serialize"),parse:__name(e=>+e,"parse")},json:{to:114,from:[114,3802],serialize:__name(e=>JSON.stringify(e),"serialize"),parse:__name(e=>JSON.parse(e),"parse")},boolean:{to:16,from:16,serialize:__name(e=>!0===e?"t":"f","serialize"),parse:__name(e=>"t"===e,"parse")},date:{to:1184,from:[1082,1114,1184],serialize:__name(e=>(e instanceof Date?e:new Date(e)).toISOString(),"serialize"),parse:__name(e=>new Date(e),"parse")},bytea:{to:17,from:17,serialize:__name(e=>"\\x"+Buffer.from(e).toString("hex"),"serialize"),parse:__name(e=>Buffer.from(e.slice(2),"hex"),"parse")}},nf=class{static{__name(this,"NotTagged")}then(){notTagged()}catch(){notTagged()}finally(){notTagged()}},rf=class extends nf{static{__name(this,"Identifier")}constructor(e){super(),this.value=mf(e)}},of=class extends nf{static{__name(this,"Parameter")}constructor(e,t,n){super(),this.value=e,this.type=t,this.array=n}},sf=class extends nf{static{__name(this,"Builder")}constructor(e,t){super(),this.first=e,this.rest=t}build(e,t,n,r){const o=lf.map(([t,n])=>({fn:n,i:e.search(t)})).sort((e,t)=>e.i-t.i).pop();return-1===o.i?escapeIdentifiers(this.first,r):o.fn(this.first,this.rest,t,n,r)}},__name(handleValue,"handleValue"),af=typeHandlers(tf),__name(stringify,"stringify"),__name(stringifyValue,"stringifyValue"),__name(fragment,"fragment"),__name(valuesBuilder,"valuesBuilder"),__name(values,"values"),__name(select,"select"),lf=Object.entries({values:values,in:__name((...e)=>{const t=values(...e);return"()"===t?"(null)":t},"in"),select:select,as:select,returning:select,"\\(":select,update:(e,t,n,r,o)=>(t.length?t.flat():Object.keys(e)).map(t=>mf(o.transform.column.to?o.transform.column.to(t):t)+"="+stringifyValue("values",e[t],n,r,o)),insert(e,t,n,r,o){const s=t.length?t.flat():Object.keys(Array.isArray(e)?e[0]:e);return"("+escapeIdentifiers(s,o)+")values"+valuesBuilder(Array.isArray(e)?e:[e],n,r,s,o)}}).map(([e,t])=>[new RegExp("((?:^|[\\s(])"+e+"(?:$|[\\s(]))(?![\\s\\S]*\\1)","i"),t]),__name(notTagged,"notTagged"),cf=af.serializers,uf=af.parsers,__name(firstIsString,"firstIsString"),df=__name(function(e){const t=typeHandlers(e||{});return{serializers:Object.assign({},cf,t.serializers),parsers:Object.assign({},uf,t.parsers)}},"mergeUserTypes"),__name(typeHandlers,"typeHandlers"),__name(escapeIdentifiers,"escapeIdentifiers"),mf=__name(function escape(e){return'"'+e.replace(/"/g,'""').replace(/\./g,'"."')+'"'},"escape"),pf=__name(function inferType2(e){return e instanceof of?e.type:e instanceof Date?1184:e instanceof Uint8Array?17:!0===e||!1===e?16:"bigint"==typeof e?20:Array.isArray(e)?inferType2(e[0]):0},"inferType"),gf=/\\/g,hf=/"/g,__name(arrayEscape,"arrayEscape"),ff=__name(function arraySerializer2(e,t,n,r){if(!1===Array.isArray(e))return e;if(!e.length)return"{}";const o=e[0],s=1020===r?";":",";return Array.isArray(o)&&!o.type?"{"+e.map(e=>arraySerializer2(e,t,n,r)).join(s)+"}":"{"+e.map(e=>{if(void 0===e&&void 0===(e=n.transform.undefined))throw Zh.generic("UNDEFINED_VALUE","Undefined values are not allowed");return null===e?"null":'"'+arrayEscape(t?t(e.type?e.value:e):""+e)+'"'}).join(s)+"}"},"arraySerializer"),yf={i:0,char:null,str:"",quoted:!1,last:0},wf=__name(function arrayParser2(e,t,n){return yf.i=yf.last=0,arrayParserLoop(yf,e,t,n)},"arrayParser"),__name(arrayParserLoop,"arrayParserLoop"),Sf=__name(e=>{let t=e[0];for(let n=1;n<e.length;n++)t+="_"===e[n]?e[++n].toUpperCase():e[n];return t},"toCamel"),bf=__name(e=>{let t=e[0].toUpperCase();for(let n=1;n<e.length;n++)t+="_"===e[n]?e[++n].toUpperCase():e[n];return t},"toPascal"),Ef=__name(e=>e.replace(/_/g,"-"),"toKebab"),Cf=__name(e=>e.replace(/([A-Z])/g,"_$1").toLowerCase(),"fromCamel"),vf=__name(e=>(e.slice(0,1)+e.slice(1).replace(/([A-Z])/g,"_$1")).toLowerCase(),"fromPascal"),kf=__name(e=>e.replace(/-/g,"_"),"fromKebab"),__name(createJsonTransform,"createJsonTransform"),Sf.column={from:Sf},Sf.value={from:createJsonTransform(Sf)},Cf.column={to:Cf},(Tf={...Sf}).column.to=Cf,bf.column={from:bf},bf.value={from:createJsonTransform(bf)},vf.column={to:vf},(_f={...bf}).column.to=vf,Ef.column={from:Ef},Ef.value={from:createJsonTransform(Ef)},kf.column={to:kf},(xf={...Ef}).column.to=kf}}),Rf=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/result.js"(){tn(),Af=class extends Array{static{__name(this,"Result")}constructor(){super(),Object.defineProperties(this,{count:{value:null,writable:!0},state:{value:null,writable:!0},command:{value:null,writable:!0},columns:{value:null,writable:!0},statement:{value:null,writable:!0}})}static get[Symbol.species](){return Array}}}});function Queue(e=[]){let t=e.slice(),n=0;return{get length(){return t.length-n},remove:__name(e=>{const n=t.indexOf(e);return-1===n?null:(t.splice(n,1),e)},"remove"),push:__name(e=>(t.push(e),e),"push"),shift:__name(()=>{const e=t[n++];return n===t.length?(n=0,t=[]):t[n-1]=void 0,e},"shift")}}var Mf,Lf,$f,Df,Of=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/queue.js"(){tn(),If=Queue,__name(Queue,"Queue")}});function fit(e){if(Mf.length-$f.i<e){const t=Mf,n=t.length;Mf=Buffer.allocUnsafe(n+(n>>1)+e),t.copy(Mf)}}function reset(){return $f.i=0,$f}var Ff,qf,jf,Bf,Uf,zf,Hf,Wf,Gf,Vf,Qf=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/bytes.js"(){tn(),Mf=Buffer.allocUnsafe(256),Lf="BCcDdEFfHPpQSX".split("").reduce((e,t)=>{const n=t.charCodeAt(0);return e[t]=()=>(Mf[0]=n,$f.i=5,$f),e},{}),$f=Object.assign(reset,Lf,{N:String.fromCharCode(0),i:0,inc:e=>($f.i+=e,$f),str(e){const t=Buffer.byteLength(e);return fit(t),$f.i+=Mf.write(e,$f.i,t,"utf8"),$f},i16:e=>(fit(2),Mf.writeUInt16BE(e,$f.i),$f.i+=2,$f),i32:(e,t)=>t||0===t?(Mf.writeUInt32BE(e,t),$f):(fit(4),Mf.writeUInt32BE(e,$f.i),$f.i+=4,$f),z:e=>(fit(e),Mf.fill(0,$f.i,$f.i+e),$f.i+=e,$f),raw:e=>(Mf=Buffer.concat([Mf.subarray(0,$f.i),e]),$f.i=Mf.length,$f),end(e=1){Mf.writeUInt32BE($f.i-e,e);const t=Mf.subarray(0,$f.i);return $f.i=0,Mf=Buffer.allocUnsafe(256),t}}),Df=$f,__name(fit,"fit"),__name(reset,"reset")}});function Connection(e,t={},{onopen:n=Wf,onend:r=Wf,onclose:o=Wf}={}){const{sslnegotiation:s,ssl:i,max:a,user:l,host:u,port:d,database:m,parsers:g,transform:h,onnotice:f,onnotify:y,onparameter:w,max_pipeline:S,keep_alive:E,backoff:C,target_session_attrs:v}=e,k=If(),T=qf++,_={pid:null,secret:null},x=timer(end,e.idle_timeout),P=timer(end,e.max_lifetime),A=timer(function connectTimedOut(){errored(Zh.connection("CONNECT_TIMEOUT",e,N)),N.destroy()},e.connect_timeout);let I,N=null,R=null,M=new Af,L=Buffer.alloc(0),$=e.fetch_types,D={},O={},F=Math.random().toString(36).slice(2),q=1,j=0,B=0,U=0,z=0,H=0,W=0,G=0,Q=null,K=null,Y=!1,J=null,X=null,Z=null,ee=null,te=null,ne=null,re=null,oe=null,se=null,ie=null;const ae={queue:t.closed,idleTimer:x,connect(e){Z=e,reconnect()},terminate:terminate,execute:execute,cancel:async function cancel7({pid:e,secret:t},n,r){try{I=Df().i32(16).i32(80877102).i32(e).i32(t).end(16),await connect(),N.once("error",r),N.once("close",n)}catch(e){r(e)}},end:end,count:0,id:T};return t.closed&&t.closed.push(ae),ae;function execute(t){if(Y)return queryError(t,Zh.connection("CONNECTION_DESTROYED",e));if(te)return queryError(t,Zh.generic("COPY_IN_PROGRESS","You cannot execute queries during copy"));if(!t.cancelled)try{return t.state=_,se?k.push(t):(se=t,se.active=!0),function build(t){const n=[],r=[],o=stringify(t,t.strings[0],t.args[0],n,r,e);!t.tagged&&t.args.forEach(t=>handleValue(t,n,r,e)),t.prepare=e.prepare&&(!("prepare"in t.options)||t.options.prepare),t.string=o,t.signature=t.prepare&&r+o,t.onlyDescribe&&delete O[t.signature],t.parameters=t.parameters||n,t.prepared=t.prepare&&t.signature in O,t.describeFirst=t.onlyDescribe||n.length&&!t.prepared,t.statement=t.prepared?O[t.signature]:{string:o,types:r,name:t.prepare?F+q++:""},"function"==typeof e.debug&&e.debug(T,o,n,r)}(t),write(function toBuffer(e){if(e.parameters.length>=65534)throw Zh.generic("MAX_PARAMETERS_EXCEEDED","Max number of parameters (65534) exceeded");return e.options.simple?Df().Q().str(e.statement.string+Df.N).end():e.describeFirst?Buffer.concat([describe(e),Bf]):e.prepare?e.prepared?prepared(e):Buffer.concat([describe(e),prepared(e)]):function unnamed(e){return Buffer.concat([Parse(e.statement.string,e.parameters,e.statement.types),Hf,prepared(e)])}(e)}(t))&&!t.describeFirst&&!t.cursorFn&&k.length<S&&(!t.options.onexecute||t.options.onexecute(ae))}catch(e){return 0===k.length&&write(jf),errored(e),!0}}function describe(e){return Buffer.concat([Parse(e.statement.string,e.parameters,e.statement.types,e.statement.name),Describe("S",e.statement.name)])}function prepared(e){return Buffer.concat([Bind(e.parameters,e.statement.types,e.statement.name,e.cursorName),e.cursorFn?Execute("",e.cursorRows):zf])}function write(e,t){return ne=ne?Buffer.concat([ne,e]):Buffer.from(e),ne.length>=1024?nextWrite(t):(null===K&&(K=setImmediate(nextWrite)),!0)}function nextWrite(e){const t=N.write(ne,e);return null!==K&&clearImmediate(K),ne=K=null,t}async function secure(){if("direct"!==s&&(write(Uf),!await new Promise(e=>N.once("data",t=>e(83===t[0])))&&"prefer"===i))return connected();const e={socket:N,servername:Ne.isIP(N.host)?void 0:N.host};"direct"===s&&(e.ALPNProtocols=["postgresql"]),"require"===i||"allow"===i||"prefer"===i?e.rejectUnauthorized=!1:"object"==typeof i&&Object.assign(e,i),N.removeAllListeners(),N=Re.connect(e),N.on("secureConnect",connected),N.on("error",error),N.on("close",closed),N.on("drain",drain)}function drain(){!se&&n(ae)}function data(e){if(!(J&&(J.push(e),B-=e.length,B>0)))for(L=J?Buffer.concat(J,H-B):0===L.length?e:Buffer.concat([L,e],L.length+e.length);L.length>4;){if(H=L.readUInt32BE(1),H>=L.length){B=H-L.length,J=[L];break}try{handle(L.subarray(0,H+1))}catch(e){se&&(se.cursorFn||se.describeFirst)&&write(jf),errored(e)}L=L.subarray(H+1),B=0,J=null}}async function connect(){if(Y=!1,D={},N||(N=await async function createSocket(){let t;try{t=e.socket?await Promise.resolve(e.socket(e)):new Ne.Socket}catch(e){return void error(e)}return t.on("error",error),t.on("close",closed),t.on("drain",drain),t}()),N){if(A.start(),e.socket)return i?secure():connected();if(N.on("connect",i?secure:connected),e.path)return N.connect(e.path);N.ssl=i,N.connect(d[U],u[U]),N.host=u[U],N.port=d[U],U=(U+1)%d.length}}function reconnect(){setTimeout(connect,j?Math.max(0,j+W-Le.now()):0)}function connected(){try{O={},$=e.fetch_types,F=Math.random().toString(36).slice(2),q=1,P.start(),N.on("data",data),E&&N.setKeepAlive&&N.setKeepAlive(!0,1e3*E),write(function StartupMessage(){return I||Df().inc(4).i16(3).z(2).str(Object.entries(Object.assign({user:l,database:m,client_encoding:"UTF8"},e.connection)).filter(([,e])=>e).map(([e,t])=>e+Df.N+t).join(Df.N)).z(2).end(0)}())}catch(e){error(e)}}function error(n){if(ae.queue!==t.connecting||!e.host[z+1])for(errored(n);k.length;)queryError(k.shift(),n)}function errored(e){te&&(te.destroy(e),te=null),se&&queryError(se,e),Z&&(queryError(Z,e),Z=null)}function queryError(t,n){if(t.reserve)return t.reject(n);n&&"object"==typeof n||(n=new Error(n)),"query"in n||"parameters"in n||Object.defineProperties(n,{stack:{value:n.stack+t.origin.replace(/.*\n/,"\n"),enumerable:e.debug},query:{value:t.string,enumerable:e.debug},parameters:{value:t.parameters,enumerable:e.debug},args:{value:t.args,enumerable:e.debug},types:{value:t.statement&&t.statement.types,enumerable:e.debug}}),t.reject(n)}function end(){return ee||(!ae.reserved&&r(ae),ae.reserved||Z||se||0!==k.length?ee=new Promise(e=>re=e):(terminate(),new Promise(e=>N&&"closed"!==N.readyState?N.once("close",e):e())))}function terminate(){Y=!0,(te||se||Z||k.length)&&error(Zh.connection("CONNECTION_DESTROYED",e)),clearImmediate(K),N&&(N.removeListener("data",data),N.removeListener("connect",connected),"open"===N.readyState&&N.end(Df().X().end())),re&&(re(),ee=re=null)}async function closed(t){if(L=Buffer.alloc(0),B=0,J=null,clearImmediate(K),N.removeListener("data",data),N.removeListener("connect",connected),x.cancel(),P.cancel(),A.cancel(),N.removeAllListeners(),N=null,Z)return reconnect();!t&&(se||k.length)&&error(Zh.connection("CONNECTION_CLOSED",e,N)),j=Le.now(),t&&e.shared.retries++,W=1e3*("function"==typeof C?C(e.shared.retries):C),o(ae,Zh.connection("CONNECTION_CLOSED",e,N))}function handle(e,t=e[0]){(68===t?DataRow:100===t?CopyData:65===t?NotificationResponse:83===t?ParameterStatus:90===t?ReadyForQuery:67===t?CommandComplete:50===t?BindComplete:49===t?ParseComplete:116===t?ParameterDescription:84===t?RowDescription:82===t?Authentication:110===t?NoData:75===t?BackendKeyData:69===t?ErrorResponse:115===t?PortalSuspended:51===t?CloseComplete:71===t?CopyInResponse:78===t?NoticeResponse:72===t?CopyOutResponse:99===t?CopyDone:73===t?EmptyQueryResponse:86===t?FunctionCallResponse:118===t?NegotiateProtocolVersion:87===t?CopyBothResponse:UnknownMessage)(e)}function DataRow(e){let t,n,r,o=7;const s=se.isRaw?new Array(se.statement.columns.length):{};for(let i=0;i<se.statement.columns.length;i++)n=se.statement.columns[i],t=e.readInt32BE(o),o+=4,r=-1===t?null:!0===se.isRaw?e.subarray(o,o+=t):void 0===n.parser?e.toString("utf8",o,o+=t):!0===n.parser.array?n.parser(e.toString("utf8",o+1,o+=t)):n.parser(e.toString("utf8",o,o+=t)),se.isRaw?s[i]=!0===se.isRaw?r:h.value.from?h.value.from(r,n):r:s[n.name]=h.value.from?h.value.from(r,n):r;se.forEachFn?se.forEachFn(h.row.from?h.row.from(s):s,M):M[G++]=h.row.from?h.row.from(s):s}function ParameterStatus(t){const[n,r]=t.toString("utf8",5,t.length-1).split(Df.N);D[n]=r,e.parameters[n]!==r&&(e.parameters[n]=r,w&&w(n,r))}function ReadyForQuery(t){if(se?R?se.retried?errored(se.retried):se.prepared&&Gf.has(R.routine)?function retry(e,t){delete O[e.signature],e.retried=t,execute(e)}(se,R):errored(R):se.resolve(X||M):R&&errored(R),se=X=R=null,M=new Af,A.cancel(),Z){if(v){if(!D.in_hot_standby||!D.default_transaction_read_only)return function fetchState(){const e=new Kh(["\n show transaction_read_only;\n select pg_catalog.pg_is_in_recovery()\n "],[],execute,null,{simple:!0});e.resolve=([[e],[t]])=>{D.default_transaction_read_only=e.transaction_read_only,D.in_hot_standby=t.pg_is_in_recovery?"on":"off"},e.execute()}();if(function tryNext(t,n){return"read-write"===t&&"on"===n.default_transaction_read_only||"read-only"===t&&"off"===n.default_transaction_read_only||"primary"===t&&"on"===n.in_hot_standby||"standby"===t&&"off"===n.in_hot_standby||"prefer-standby"===t&&"off"===n.in_hot_standby&&e.host[z]}(v,D))return terminate()}return $?(Z.reserve&&(Z=null),async function fetchArrayTypes(){$=!1,(await new Kh(["\n select b.oid, b.typarray\n from pg_catalog.pg_type a\n left join pg_catalog.pg_type b on b.oid = a.typelem\n where a.typcategory = 'A'\n group by b.oid, b.typarray\n order by b.oid\n "],[],execute)).forEach(({oid:t,typarray:n})=>function addArrayType(t,n){if(e.parsers[n]&&e.serializers[n])return;const r=e.parsers[t];e.shared.typeArrayMap[t]=n,e.parsers[n]=e=>wf(e,r,n),e.parsers[n].array=!0,e.serializers[n]=r=>ff(r,e.serializers[t],e,n)}(t,n))}()):(Z&&!Z.reserve&&execute(Z),e.shared.retries=z=0,void(Z=null))}for(;k.length&&(se=k.shift())&&(se.active=!0,se.cancelled);)Connection(e).cancel(se.state,se.cancelled.resolve,se.cancelled.reject);se||(ae.reserved?ae.reserved.release||73!==t[5]?ae.reserved():ee?terminate():(ae.reserved=null,n(ae)):ee?terminate():n(ae))}function CommandComplete(e){G=0;for(let t=e.length-1;t>0;t--)if(32===e[t]&&e[t+1]<58&&null===M.count&&(M.count=+e.toString("utf8",t+1,e.length-1)),e[t-1]>=65){M.command=e.toString("utf8",5,t),M.state=_;break}return ie&&(ie(),ie=null),"BEGIN"!==M.command||1===a||ae.reserved?se.options.simple?BindComplete():void(se.cursorFn&&(M.count&&se.cursorFn(M),write(jf))):errored(Zh.generic("UNSAFE_TRANSACTION","Only use sql.begin, sql.reserved or max: 1"))}function ParseComplete(){se.parsing=!1}function BindComplete(){!M.statement&&(M.statement=se.statement),M.columns=se.statement.columns}function ParameterDescription(e){const t=e.readUInt16BE(5);for(let n=0;n<t;++n)!se.statement.types[n]&&(se.statement.types[n]=e.readUInt32BE(7+4*n));se.prepare&&(O[se.signature]=se.statement),se.describeFirst&&!se.onlyDescribe&&(write(prepared(se)),se.describeFirst=!1)}function RowDescription(e){M.command&&(X=X||[M],X.push(M=new Af),M.count=null,se.statement.columns=null);const t=e.readUInt16BE(5);let n,r=7;se.statement.columns=Array(t);for(let o=0;o<t;++o){for(n=r;0!==e[r++];);const t=e.readUInt32BE(r),s=e.readUInt16BE(r+4),i=e.readUInt32BE(r+6);se.statement.columns[o]={name:h.column.from?h.column.from(e.toString("utf8",n,r-1)):e.toString("utf8",n,r-1),parser:g[i],table:t,number:s,type:i},r+=18}if(M.statement=se.statement,se.onlyDescribe)return se.resolve(se.statement),write(jf)}async function Authentication(e,t=e.readUInt32BE(5)){(3===t?AuthenticationCleartextPassword:5===t?AuthenticationMD5Password:10===t?SASL:11===t?SASLContinue:12===t?SASLFinal:0!==t?UnknownAuth:Wf)(e,t)}async function AuthenticationCleartextPassword(){const e=await Pass();write(Df().p().str(e).z(1).end())}async function AuthenticationMD5Password(e){const t="md5"+await md5(Buffer.concat([Buffer.from(await md5(await Pass()+l)),e.subarray(9)]));write(Df().p().str(t).z(1).end())}async function SASL(){oe=(await V.randomBytes(18)).toString("base64"),Df().p().str("SCRAM-SHA-256"+Df.N);const e=Df.i;write(Df.inc(4).str("n,,n=*,r="+oe).i32(Df.i-e-4,e).end())}async function SASLContinue(e){const t=e.toString("utf8",9).split(",").reduce((e,t)=>(e[t[0]]=t.slice(2),e),{}),n=await V.pbkdf2Sync(await Pass(),Buffer.from(t.s,"base64"),parseInt(t.i),32,"sha256"),r=await hmac(n,"Client Key"),o="n=*,r="+oe+",r="+t.r+",s="+t.s+",i="+t.i+",c=biws,r="+t.r;Q=(await hmac(await hmac(n,"Server Key"),o)).toString("base64");const s="c=biws,r="+t.r+",p="+xor(r,Buffer.from(await hmac(await sha256(r),o))).toString("base64");write(Df().p().str(s).end())}function SASLFinal(e){e.toString("utf8",9).split(Df.N,1)[0].slice(2)!==Q&&(errored(Zh.generic("SASL_SIGNATURE_MISMATCH","The server did not return the correct signature")),N.destroy())}function Pass(){return Promise.resolve("function"==typeof e.pass?e.pass():e.pass)}function NoData(){if(M.statement=se.statement,M.statement.columns=[],se.onlyDescribe)return se.resolve(se.statement),write(jf)}function BackendKeyData(e){_.pid=e.readUInt32BE(5),_.secret=e.readUInt32BE(9)}function ErrorResponse(e){se?((se.cursorFn||se.describeFirst)&&write(jf),R=Zh.postgres(parseError(e))):errored(Zh.postgres(parseError(e)))}function NotificationResponse(e){if(!y)return;let t=9;for(;0!==e[t++];);y(e.toString("utf8",9,t-1),e.toString("utf8",t,e.length-1))}async function PortalSuspended(){try{const e=await Promise.resolve(se.cursorFn(M));G=0,e===Qh?write(function Close(e=""){return Buffer.concat([Df().C().str("P").str(e+Df.N).end(),Df().S().end()])}(se.portal)):(M=new Af,write(Execute("",se.cursorRows)))}catch(e){write(jf),se.reject(e)}}function CloseComplete(){M.count&&se.cursorFn(M),se.resolve(M)}function CopyInResponse(){te=new Me.Writable({autoDestroy:!0,write(e,t,n){N.write(Df().d().raw(e).end(),n)},destroy(e,t){t(e),N.write(Df().f().str(e+Df.N).end()),te=null},final(e){N.write(Df().c().end()),ie=e,te=null}}),se.resolve(te)}function CopyOutResponse(){te=new Me.Readable({read(){N.resume()}}),se.resolve(te)}function CopyBothResponse(){te=new Me.Duplex({autoDestroy:!0,read(){N.resume()},write(e,t,n){N.write(Df().d().raw(e).end(),n)},destroy(e,t){t(e),N.write(Df().f().str(e+Df.N).end()),te=null},final(e){N.write(Df().c().end()),ie=e}}),se.resolve(te)}function CopyData(e){te&&(te.push(e.subarray(5))||N.pause())}function CopyDone(){te&&te.push(null),te=null}function NoticeResponse(e){f?f(parseError(e)):console.log(parseError(e))}function EmptyQueryResponse(){}function FunctionCallResponse(){errored(Zh.notSupported("FunctionCallResponse"))}function NegotiateProtocolVersion(){errored(Zh.notSupported("NegotiateProtocolVersion"))}function UnknownMessage(e){console.error("Postgres.js : Unknown Message:",e[0])}function UnknownAuth(e,t){console.error("Postgres.js : Unknown Auth:",t)}function Bind(t,n,r="",o=""){let s,i;return Df().B().str(o+Df.N).str(r+Df.N).i16(0).i16(t.length),t.forEach((r,o)=>{if(null===r)return Df.i32(4294967295);i=n[o],t[o]=r=i in e.serializers?e.serializers[i](r):""+r,s=Df.i,Df.inc(4).str(r).i32(Df.i-s-4,s)}),Df.i16(0),Df.end()}function Parse(e,t,n,r=""){return Df().P().str(r+Df.N).str(e+Df.N).i16(t.length),t.forEach((e,t)=>Df.i32(n[t]||0)),Df.end()}function Describe(e,t=""){return Df().D().str(e).str(t+Df.N).end()}function Execute(e="",t=0){return Buffer.concat([Df().E().str(e+Df.N).i32(t).end(),Bf])}}function parseError(e){const t={};let n=5;for(let r=5;r<e.length-1;r++)0===e[r]&&(t[Vf[e[n]]]=e.toString("utf8",n+1,r),n=r+1);return t}function md5(e){return V.createHash("md5").update(e).digest("hex")}function hmac(e,t){return V.createHmac("sha256",e).update(t).digest()}function sha256(e){return V.createHash("sha256").update(e).digest()}function xor(e,t){const n=Math.max(e.length,t.length),r=Buffer.allocUnsafe(n);for(let o=0;o<n;o++)r[o]=e[o]^t[o];return r}function timer(e,t){if(!(t="function"==typeof t?t():t))return{cancel:Wf,start:Wf};let n;return{cancel(){n&&(clearTimeout(n),n=null)},start(){n&&clearTimeout(n),n=setTimeout(done,1e3*t,arguments)}};function done(t){e.apply(null,t),n=null}}var Kf,Yf=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/connection.js"(){tn(),Nf(),Pf(),Rf(),Of(),ef(),Qf(),Ff=Connection,qf=1,jf=Df().S().end(),Bf=Df().H().end(),Uf=Df().i32(8).i32(80877103).end(8),zf=Buffer.concat([Df().E().str(Df.N).i32(0).end(),jf]),Hf=Df().D().str("S").str(Df.N).end(),Wf=__name(()=>{},"noop"),Gf=new Set(["FetchPreparedStatement","RevalidateCachedQuery","transformAssignedExpr"]),Vf={83:"severity_local",86:"severity",67:"code",77:"message",68:"detail",72:"hint",80:"position",112:"internal_position",113:"internal_query",87:"where",115:"schema_name",116:"table_name",99:"column_name",100:"data type_name",110:"constraint_name",70:"file",76:"line",82:"routine"},__name(Connection,"Connection"),__name(parseError,"parseError"),__name(md5,"md5"),__name(hmac,"hmac"),__name(sha256,"sha256"),__name(xor,"xor"),__name(timer,"timer")}});function Subscribe(e,t){const n=new Map,r="postgresjs_"+Math.random().toString(36).slice(2),o={};let s,i,a=!1;const l=subscribe.sql=e({...t,transform:{column:{},value:{},row:{}},max:1,fetch_types:!1,idle_timeout:null,max_lifetime:null,connection:{...t.connection,replication:"database"},onclose:__name(async function(){a||(i=null,o.pid=o.secret=void 0,connected(await init(l,r,t.publications)),n.forEach(e=>e.forEach(({onsubscribe:e})=>e())))},"onclose"),no_subscribe:!0}),u=l.end,d=l.close;return l.end=async()=>(a=!0,i&&await new Promise(e=>(i.once("close",e),i.end())),u()),l.close=async()=>(i&&await new Promise(e=>(i.once("close",e),i.end())),d()),subscribe;async function subscribe(e,a,u=Kf,d=Kf){e=parseEvent(e),s||(s=init(l,r,t.publications));const m={fn:a,onsubscribe:u},g=n.has(e)?n.get(e).add(m):n.set(e,new Set([m])).get(e),h=__name(()=>{g.delete(m),0===g.size&&n.delete(e)},"unsubscribe");return s.then(e=>(connected(e),u(),i&&i.on("error",d),{unsubscribe:h,state:o,sql:l}))}function connected(e){i=e.stream,o.pid=e.state.pid,o.secret=e.state.secret}async function init(e,n,r){if(!r)throw new Error("Missing publication names");const o=await e.unsafe(`CREATE_REPLICATION_SLOT ${n} TEMPORARY LOGICAL pgoutput NOEXPORT_SNAPSHOT`),[s]=o,i=await e.unsafe(`START_REPLICATION SLOT ${n} LOGICAL ${s.consistent_point} (proto_version '1', publication_names '${r}')`).writable(),a={lsn:Buffer.concat(s.consistent_point.split("/").map(e=>Buffer.from(("00000000"+e).slice(-8),"hex")))};return i.on("data",function data(n){119===n[0]?parse(n.subarray(25),a,e.options.parsers,handle,t.transform):107===n[0]&&n[17]&&(a.lsn=n.subarray(1,9),function pong(){const e=Buffer.alloc(34);e[0]="r".charCodeAt(0),e.fill(a.lsn,1),e.writeBigInt64BE(BigInt(Date.now()-Date.UTC(2e3,0,1))*BigInt(1e3),25),i.write(e)}())}),i.on("error",function error(e){console.error("Unexpected error during logical streaming - reconnecting",e)}),i.on("close",e.close),{stream:i,state:o.state};function handle(e,t){const n=t.relation.schema+"."+t.relation.table;call("*",e,t),call("*:"+n,e,t),t.relation.keys.length&&call("*:"+n+"="+t.relation.keys.map(t=>e[t.name]),e,t),call(t.command,e,t),call(t.command+":"+n,e,t),t.relation.keys.length&&call(t.command+":"+n+"="+t.relation.keys.map(t=>e[t.name]),e,t)}}function call(e,t,r){n.has(e)&&n.get(e).forEach(({fn:n})=>n(t,r,e))}}function Time(e){return new Date(Date.UTC(2e3,0,1)+Number(e/BigInt(1e3)))}function parse(e,t,n,r,o){const s=__name((e,[t,n])=>(e[t.charCodeAt(0)]=n,e),"char");Object.entries({R:__name(e=>{let r=1;const s=t[e.readUInt32BE(r)]={schema:e.toString("utf8",r+=4,r=e.indexOf(0,r))||"pg_catalog",table:e.toString("utf8",r+1,r=e.indexOf(0,r+1)),columns:Array(e.readUInt16BE(r+=2)),keys:[]};r+=2;let i,a=0;for(;r<e.length;)i=s.columns[a++]={key:e[r++],name:o.column.from?o.column.from(e.toString("utf8",r,r=e.indexOf(0,r))):e.toString("utf8",r,r=e.indexOf(0,r)),type:e.readUInt32BE(r+=1),parser:n[e.readUInt32BE(r)],atttypmod:e.readUInt32BE(r+=4)},i.key&&s.keys.push(i),r+=4},"R"),Y:__name(()=>{},"Y"),O:__name(()=>{},"O"),B:__name(e=>{t.date=Time(e.readBigInt64BE(9)),t.lsn=e.subarray(1,9)},"B"),I:__name(e=>{let n=1;const s=t[e.readUInt32BE(n)],{row:i}=tuples(e,s.columns,n+=7,o);r(i,{command:"insert",relation:s})},"I"),D:__name(e=>{let n=1;const s=t[e.readUInt32BE(n)];n+=4;const i=75===e[n];r(i||79===e[n]?tuples(e,s.columns,n+=3,o).row:null,{command:"delete",relation:s,key:i})},"D"),U:__name(e=>{let n=1;const s=t[e.readUInt32BE(n)];n+=4;const i=75===e[n],a=i||79===e[n]?tuples(e,s.columns,n+=3,o):null;a&&(n=a.i);const{row:l}=tuples(e,s.columns,n+3,o);r(l,{command:"update",relation:s,key:i,old:a&&a.row})},"U"),T:__name(()=>{},"T"),C:__name(()=>{},"C")}).reduce(s,{})[e[0]](e)}function tuples(e,t,n,r){let o,s,i;const a=r.raw?new Array(t.length):{};for(let l=0;l<t.length;l++)o=e[n++],s=t[l],i=110===o?null:117===o?void 0:void 0===s.parser?e.toString("utf8",n+4,n+=4+e.readUInt32BE(n)):!0===s.parser.array?s.parser(e.toString("utf8",n+5,n+=4+e.readUInt32BE(n))):s.parser(e.toString("utf8",n+4,n+=4+e.readUInt32BE(n))),r.raw?a[l]=!0===r.raw?i:r.value.from?r.value.from(i,s):i:a[s.name]=r.value.from?r.value.from(i,s):i;return{i:n,row:r.row.from?r.row.from(a):a}}function parseEvent(e){const t=e.match(/^(\*|insert|update|delete)?:?([^.]+?\.?[^=]+)?=?(.+)?/i)||[];if(!t)throw new Error("Malformed subscribe pattern: "+e);const[,n,r,o]=t;return(n||"*")+(r?":"+(-1===r.indexOf(".")?"public."+r:r):"")+(o?"="+o:"")}var Jf=__esm({"../../node_modules/.pnpm/postgres@3.4.8/node_modules/postgres/src/subscribe.js"(){tn(),Kf=__name(()=>{},"noop"),__name(Subscribe,"Subscribe"),__name(Time,"Time"),__name(parse,"parse"),__name(tuples,"tuples"),__name(parseEvent,"parseEvent")}});function largeObject(e,t,n=393216){return new Promise(async(r,o)=>{await e.begin(async e=>{let o;!t&&([{oid:t}]=await(e`select lo_creat(-1) as oid`));const[{fd:s}]=await(e`select lo_open(${t}, ${n}) as fd`),i={writable:async function writable({highWaterMark:e=16384,start:t=0}={}){return t&&await i.seek(t),new Me.Writable({highWaterMark:e,write(e,t,n){i.write(e).then(()=>n(),n)}})},readable:async function readable({highWaterMark:e=16384,start:t=0,end:n=1/0}={}){let r=n-t;return t&&await i.seek(t),new Me.Readable({highWaterMark:e,async read(e){const t=e>r?e-r:e;r-=e;const[{data:n}]=await i.read(t);this.push(n),n.length<e&&this.push(null)}})},close:__name(()=>e`select lo_close(${s})`.then(o),"close"),tell:__name(()=>e`select lo_tell64(${s})`,"tell"),read:__name(t=>e`select loread(${s}, ${t}) as data`,"read"),write:__name(t=>e`select lowrite(${s}, ${t})`,"write"),truncate:__name(t=>e`select lo_truncate64(${s}, ${t})`,"truncate"),seek:__name((t,n=0)=>e`select lo_lseek64(${s}, ${t}, ${n})`,"seek"),size:__name(()=>e`
27
27
  select
28
28
  lo_lseek64(${s}, location, 0) as position,
29
29
  seek.size
@@ -290,4 +290,4 @@ import*as e from"path";import t,{join as n,dirname as r,parse as o,relative as s
290
290
  ░█▀▀░█▀▄▀█░█▀▄░
291
291
  ░█░░░█░▀░█░█░█░
292
292
  ░▀▀▀░▀░░░▀░▀▀░░
293
- `,TT=getMaxLineWidth(kT),_T=ET,xT=__name(e=>{const t=e??getTerminalWidth();return t>=bT?"full":t>=_T?"compact":"minimal"},"getHeaderLayout");tn(),kr();var PT=__name(({children:e})=>{const t=[];let n="",r=!0;const o=__name(()=>{0!==n.length&&(t.push({text:n,panel:r}),n="")},"flush");for(const t of e){const e="░"===t;0===n.length?r=e:e!==r&&(o(),r=e),n+=t}return o(),J.createElement(se,null,t.map((e,t)=>J.createElement(se,{key:t,color:e.panel?Er.BG:Er.TEXT},e.text)))},"CommandLogoBanner");tn(),kr();var AT=__name(({title:e,hashPrefix:t=!1,subPrefix:n=!1,suffix:r,padding:o=0,titleColor:s=Xn.GRAY,dividerChar:i="─",dividerColor:a=Xn.GRAY,boxProps:l})=>{const u=Math.max(0,(process.stdout.columns??80)-2*o),d=t?`# ${i}${i} `:n?`${i}${i} `:"",m=e?`${e} `:"",g=r?` ${r}`:"",h=d.length+m.length+g.length,f=i.repeat(Math.max(0,u-h));return J.createElement(oe,{paddingLeft:o,paddingRight:o,marginBottom:1,...l},(t||n)&&J.createElement(se,{color:a},d),e&&J.createElement(se,{color:s},m),J.createElement(se,{color:a},f),r&&J.createElement(se,{color:Xn.DIM},g))},"Divider");HS(),kr(),tn(),kr();var IT=[{type:"user",text:"I always prefer pnpm",duration:2e3},{type:"learned",text:"Learned: pnpm (95% preference)",details:".commandcode/taste/taste.md",duration:2e3},{type:"user",text:"I prefer commander over meow",duration:2e3},{type:"updated",text:"Updated: commander boosted (60% → 95%), meow adjusted (90% → 35%)",details:".commandcode/taste/cli/taste.md",duration:2e3},{type:"user",text:"I prefer TypeScript for Node CLIs",duration:2e3},{type:"learned",text:"Learned: TypeScript for CLIs (90% preference)",details:".commandcode/taste/cli/taste.md",duration:2e3}],NT=__name(({onComplete:e,onExit:t})=>{const[n,r]=Z(0),[o,s]=Z(!1),i=n>=IT.length;return te(()=>{if(n>=IT.length)return;if(o)return;const e=IT[n],t=setTimeout(()=>{r(e=>Math.min(e+1,IT.length))},e.duration);return()=>clearTimeout(t)},[n,o]),le((n,o)=>{""===n||o.ctrl&&"c"===n?t?t():e():o.escape?e():i?(o.return||" "===n)&&e():" "===n?s(e=>!e):o.return&&r(e=>Math.min(e+1,IT.length))}),J.createElement(oe,{flexDirection:"column"},J.createElement(oe,null,J.createElement(se,{bold:!0},"Meet Your Coding Taste")),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"Command Code learns your coding style as you work.")),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"Here's how your preferences evolve in real-time:")),J.createElement(oe,{flexDirection:"column",marginY:1},IT.slice(0,n).map((e,t)=>"user"===e.type?J.createElement(oe,{key:t},J.createElement(se,null,Pe.pointer," ",e.text)):J.createElement(oe,{key:t,flexDirection:"column",marginBottom:1,marginLeft:1},J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"⎿ "),J.createElement(se,{color:er.TEXT},e.text)),e.details&&J.createElement(oe,{marginLeft:3},J.createElement(se,{color:Xn.DIM},"Saved(",e.details,")"))))),i?J.createElement(oe,{flexDirection:"column",marginY:1},J.createElement(oe,null,J.createElement(se,{bold:!0,color:er.TEXT},"Demo Complete!")),J.createElement(oe,null,J.createElement(se,null,"Command Code will now use these preferences to generate")),J.createElement(oe,null,J.createElement(se,null,"better suggestions tailored to your coding style. The")),J.createElement(oe,null,J.createElement(se,null,"more you code, the smarter it gets.")),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press Enter to get started →"))):J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"[SPACE: pause] [ENTER: next] [ESC: skip]"+(o?" (paused)":""))))},"TasteDemoComponent"),RT=__name(({onClose:e,onExit:t})=>{const[n,r]=Z(Av.getEvents()),[o,s]=Z(0);le((n,r)=>{""===n||r.ctrl&&"c"===n?t():r.ctrl&&"t"===n&&e()},{isActive:!0}),te(()=>{const e=__name(()=>{r(Av.getEvents())},"handleNewEvent"),t=__name(()=>{r([])},"handleCleared");return Av.on("new-event",e),Av.on("cleared",t),()=>{Av.off("new-event",e),Av.off("cleared",t)}},[]),te(()=>{const e=__name(()=>{BS(),s(e=>e+1)},"handleResize");return process.stdout.on("resize",e),()=>{process.stdout.off("resize",e)}},[]);const i=__name(e=>["learned","refactored"].includes(e),"isLearningEvent"),a=__name(e=>{const t=e.match(/^(learned|upgraded|downgraded|refactored|moved):\s*(.*)$/i);if(t){const e=t[1].toLowerCase();let n=t[2];const r=n.match(/^(.+?)\.?\s+Confidence:\s*(\d+\.?\d*)$/);let o=n,s=null;if(r){o=r[1].trim();const e=(100*parseFloat(r[2])).toFixed(2);s=`confidence: ${parseFloat(e).toString()}%`}const i={learned:"Learned",upgraded:"Reinforced",downgraded:"Downgraded",refactored:"Refactored",moved:"Moved"}[e]||e.charAt(0).toUpperCase()+e.slice(1);return{type:e,label:i,content:o,confidence:s}}return{type:null,label:null,content:e,confidence:null}},"formatLearningMessage"),l=__name(e=>{const t=e.match(/^(.+?)\s*\((\d+)%\s*(?:→|->)\s*(\d+)%\)$/);if(!t)return null;const n=t[1].trim(),r=parseInt(t[2],10),o=parseInt(t[3],10);return{text:n,oldPercent:r,newPercent:o,diff:o-r}},"parsePercentageChange"),u=__name(e=>{if(!e)return null;const t=e.match(/moved to (.+)/);if(!t)return null;const n=t[1],r=n.split("/"),o=r[r.length-1];return{category:r.slice(0,-1).join("/"),oldPath:o,newPath:n,fullPath:`.commandcode/taste/${n}`}},"formatMovedDetails"),d=ne(()=>(process.stdout.rows??24)-1,[o]);return J.createElement(oe,{flexDirection:"column",width:"100%",height:d,justifyContent:"flex-start",alignItems:"flex-start",padding:0,margin:0},J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(PT,null,CT())),J.createElement(AT,{hashPrefix:!0,title:"Taste Feed",titleColor:"white",suffix:"ctrl+t to close"}),J.createElement(oe,{flexDirection:"column"},0===n.length?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(oe,null,J.createElement(se,null,"Start using Command Code and it will begin recording your coding taste.")),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"Your preferences, patterns, and style will appear here in real-time."))),J.createElement(de,{count:2}),J.createElement(AT,{title:"DEMO",titleColor:"white",subPrefix:!0}),J.createElement(NT,{onComplete:()=>{e()},onExit:t})):J.createElement(oe,{flexDirection:"column"},n.map(e=>{if(i(e.type)){const{type:t,label:n,content:r,confidence:o}=a(e.message),s="moved"===t?u(e.details):null,i="upgraded"===t||"downgraded"===t?l(r):null;return J.createElement(oe,{key:e.id,marginBottom:1},J.createElement(oe,{flexDirection:"column"},J.createElement(oe,null,J.createElement(oe,{flexShrink:0},J.createElement(se,{backgroundColor:er.BADGE_BG,color:er.BADGE_FG,bold:!0},`${Yv}${n}${Yv}`)),s?J.createElement(se,{color:Xn.DIM}," ","(",s.fullPath,")"):e.details?J.createElement(se,{color:Xn.DIM}," ","(",e.details,")"):null),J.createElement(oe,{marginLeft:1},J.createElement(se,{color:Xn.DIM},"⎿"," "),s?J.createElement(J.Fragment,null,J.createElement(se,null," ",s.category," ","package ("),J.createElement(se,{color:Xn.DIM},s.oldPath),J.createElement(se,null," ",Pe.arrowRight," ",s.newPath),J.createElement(se,null,")")):i?J.createElement(J.Fragment,null,J.createElement(se,null," ",i.text," ","("),J.createElement(se,{color:Xn.DIM},"confidence:"," "),J.createElement(se,{color:Xn.DIM},i.oldPercent,"%"),J.createElement(se,null," ",Pe.arrowRight," "),J.createElement(se,{color:i.diff>0?Xn.GREEN:Xn.RED},i.newPercent,"%"),J.createElement(se,null,")")):J.createElement(J.Fragment,null,J.createElement(se,null," ",r),o&&J.createElement(se,{color:Xn.DIM}," ","(",o,")")))))}return J.createElement(oe,{key:e.id,marginBottom:1},J.createElement(se,{color:Xn.DIM},Pe.pointerSmall," ",e.message))}))))},"LearningFeedFull");function LearningView({setShowLearningFeed:e,setStaticKey:t,onExit:n}){return J.createElement(RT,{onClose:()=>{BS(),e(!1),t(e=>e+1)},onExit:n})}__name(LearningView,"LearningView"),tn(),kr(),tn(),kr(),HS(),Fr();var MT=__name(({onClose:e,onSettingsChange:t,staticKey:n})=>{const[r,o]=Z(!1),[s,i]=Z(!0);te(()=>{__name(async()=>{try{const e=await isTasteLearningEnabled();o(e)}catch(e){}finally{i(!1)}},"loadSettings")()},[]),le((t,n)=>{if(!n.return&&" "!==t)return n.escape?(BS(),void e()):void 0;a()});const a=__name(async()=>{const e=!r;o(e);try{await setTasteLearning({tasteLearning:e}),t?.()}catch(t){o(!e)}},"toggleTasteLearning");return s?J.createElement(oe,{key:n,borderStyle:"single",borderColor:Xn.BLUE,padding:1,flexDirection:"column"},J.createElement(se,{color:Xn.BLUE,bold:!0},"Taste Settings"),J.createElement(se,{color:Xn.DIM},"Loading configuration...")):J.createElement(oe,{key:n,borderStyle:"single",borderColor:Xn.GRAY,padding:1,flexDirection:"column"},J.createElement(se,{bold:!0},"Taste Learning"),J.createElement(se,{color:Xn.DIM},"Configure taste learning preferences for this project"),J.createElement(oe,{marginTop:1}),J.createElement(oe,{justifyContent:"space-between"},J.createElement(se,null,"Taste learning",J.createElement(se,{color:Xn.DIM}," - Learn from your interactions")),J.createElement(se,{color:r?Xn.GREEN:Xn.GRAY},r?"enabled":"disabled")),J.createElement(oe,{marginTop:1}),J.createElement(se,{color:Xn.DIM},"Taste data stored in .commandcode/taste/taste.md"),J.createElement(se,{color:Xn.DIM},"Enter/Space to toggle • Esc to close"))},"TasteConfig");function TasteConfigView({staticKey:e,setShowTasteConfig:t,loadTasteStatus:n}){return J.createElement(J.Fragment,null,J.createElement(eT,{staticKey:e}),J.createElement(oe,{flexDirection:"column",width:"100%"},J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"Press Esc to return to conversation")),J.createElement(MT,{onClose:()=>t(!1),onSettingsChange:n,staticKey:e})))}__name(TasteConfigView,"TasteConfigView"),tn(),tn(),sn(),HS(),kr();var LT=__name(e=>Math.ceil(e.length/4),"estimateTokens"),$T=__name(e=>e.includes("/.agents/skills/")||e.includes("\\.agents\\skills\\"),"isAgentsSkill"),DT=__name(({onClose:e})=>{const[t,n]=Z([]),[r,o]=Z(!0),[s,i]=Z(null),[a,l]=Z(0);te(()=>{__name(async()=>{try{const{global:e,project:t}=await loadAllSkillSummaries(),r=[...e.map(e=>({label:e.name,value:e.filePath,location:"user",description:e.description,filePath:e.filePath})),...t.map(e=>({label:e.name,value:e.filePath,location:"project",description:e.description,filePath:e.filePath}))];n(r)}catch(e){i(e instanceof Error?e.message:"Failed to load skills")}finally{o(!1)}},"loadSkills")()},[]);const u=t.filter(e=>"project"===e.location),d=t.filter(e=>"user"===e.location),m=[...u,...d],g=__name(async t=>{try{await dt([{file:t.filePath,line:1}]),BS(),e()}catch(e){e instanceof Error&&e.message.includes("$EDITOR environment variable")?i(h()):i(e instanceof Error?e.message:"Failed to open skill in editor")}},"handleSelectSkill");le((t,n)=>{if(n.escape)return BS(),void e();if(n.upArrow)l(e=>Math.max(0,e-1));else if(n.downArrow)l(e=>Math.min(m.length-1,e+1));else if(n.return){const e=m[a];e&&g(e)}});const h=__name(()=>{const e=process.platform;return"win32"===e?'No editor found. Set $EDITOR: setx EDITOR "code"':"No editor found. Set $EDITOR: echo 'export EDITOR=\"code\"' >> "+("darwin"===e?"~/.zshrc":"~/.bashrc")},"getEditorSetupMessage");return r?J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(se,{color:Zn,bold:!0},"Agent Skills"),J.createElement(se,{color:Xn.DIM},"Loading skills...")):s?J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(se,{color:Xn.RED,bold:!0},"Agent Skills"),J.createElement(se,{color:Xn.DIM},s),J.createElement(oe,{marginTop:1}),J.createElement(se,{color:Xn.DIM},"Press ",J.createElement(se,{bold:!0},"Esc")," to close")):0===t.length?J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(se,{color:Zn,bold:!0},"Agent Skills"),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"No skills found")),J.createElement(se,{color:Xn.DIM},"Create skills in:"),J.createElement(se,{color:Xn.DIM}," ","~/",".commandcode","/","skills","/ (user)"),J.createElement(se,{color:Xn.DIM}," ","~/.agents/","skills","/ (user, .agents)"),J.createElement(se,{color:Xn.DIM}," ",".commandcode","/","skills","/ (project)"),J.createElement(se,{color:Xn.DIM}," ",".agents/","skills","/ (project, .agents)"),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press ",J.createElement(se,{bold:!0},"Esc")," to close"))):J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(oe,null,J.createElement(se,{color:Zn,bold:!0},"Skills"," "),J.createElement(se,{color:Xn.DIM},m.length," skills")),u.length>0&&J.createElement(oe,{flexDirection:"column",marginTop:1},J.createElement(oe,null,J.createElement(se,{color:ur,bold:!0},"Project skills"," "),J.createElement(se,{color:ur},"(",".commandcode","/","skills"," or .agents/","skills",")")),u.map((e,t)=>{const n=a===t,r=$T(e.filePath);return J.createElement(oe,{key:e.value},J.createElement(se,{color:n?Xn.GREEN:Xn.WHITE},e.label),r&&J.createElement(se,{color:Xn.DIM}," [.agents]"),J.createElement(se,{color:Xn.DIM}," · ~",LT(e.description)," description tokens"))})),d.length>0&&J.createElement(oe,{flexDirection:"column",marginTop:1},J.createElement(oe,null,J.createElement(se,{color:ur,bold:!0},"User skills"," "),J.createElement(se,{color:ur},"(~/",".commandcode","/","skills"," or ~/.agents/","skills",")")),d.map((e,t)=>{const n=a===u.length+t,r=$T(e.filePath);return J.createElement(oe,{key:e.value},J.createElement(se,{color:n?Xn.GREEN:Xn.WHITE},e.label),r&&J.createElement(se,{color:Xn.DIM}," [.agents]"),J.createElement(se,{color:Xn.DIM}," · ~",LT(e.description)," description tokens"))})),J.createElement(oe,{marginTop:1,flexDirection:"column"},J.createElement(se,{dimColor:!0},"Add skills: ",J.createElement(se,{color:Xn.CYAN},"cmd skills add ","<owner/repo>")),J.createElement(se,{color:Xn.DIM},"Press ",J.createElement(se,{bold:!0},"Esc")," to close")))},"SkillsConfig");function SkillsConfigView({staticKey:e,setShowSkillsConfig:t}){return J.createElement(J.Fragment,null,J.createElement(eT,{staticKey:e}),J.createElement(oe,{flexDirection:"column",width:"100%"},J.createElement(DT,{onClose:()=>t(!1),staticKey:e})))}function useTerminalWidth(){const{stdout:e}=ae(),[t,n]=Z(()=>e.columns??80);return te(()=>{const t=__name(()=>n(e.columns??80),"onResize");return e.on("resize",t),()=>{e.off("resize",t)}},[e]),t}function getUsageColor(e){return e>=80?Xn.RED:e>=50?Xn.YELLOW:Xn.GREEN}function buildBlockBar({percentage:e,width:t}){const n=Math.max(0,Math.min(100,e));let r=Math.round(n/100*t);n>.5&&0===r&&(r=1),n<99.5&&r===t&&(r=t-1);const o=t-r;return{filled:"█".repeat(r),empty:"░".repeat(o)}}function getStudioUsageUrl(e){const t=e?.org?.login??e?.user?.userName;return t?`https://commandcode.ai/${t}/settings/usage`:null}__name(SkillsConfigView,"SkillsConfigView"),tn(),tn(),Hh(),HS(),kr(),tn(),__name(useTerminalWidth,"useTerminalWidth"),tn(),kr(),__name(getUsageColor,"getUsageColor"),__name(buildBlockBar,"buildBlockBar"),qr(),__name(getStudioUsageUrl,"getStudioUsageUrl");var OT=__name(e=>e.replace(/^https?:\/\//,""),"stripScheme");function getProgressBarWidth({terminalWidth:e}){return e<50?Math.max(10,e-10):e<70?Math.max(15,e-15):Math.min(30,e-15)}function getDaysColor(e){if(null!==e)return e<3?Xn.RED:e<7?Xn.YELLOW:void 0}__name(getProgressBarWidth,"getProgressBarWidth"),__name(getDaysColor,"getDaysColor");var FT=__name(({plan:e,status:t})=>J.createElement(oe,{marginBottom:0},J.createElement(oe,{flexShrink:0},J.createElement(se,{backgroundColor:Xn.BLUE,color:"#f4f4f4",bold:!0},`${Yv}USAGE${Yv}`)),e&&J.createElement(J.Fragment,null,J.createElement(se,null," "),J.createElement(se,{color:Xn.GRAY},`${e.name} Plan`)),t&&J.createElement(J.Fragment,null,J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,{color:"active"===t?Xn.GREEN:Xn.YELLOW},t))),"UsageBadge"),qT=__name(({showRetry:e})=>J.createElement(oe,{marginTop:1},e&&J.createElement(se,{color:Xn.DIM},J.createElement(se,{bold:!0},"r")," to retry · "),J.createElement(se,{color:Xn.DIM},"Press ",J.createElement(se,{bold:!0},"Esc")," to close")),"UsageFooter"),jT=__name(({models:e,grandTotal:t})=>{if(0===e.length)return null;const n=e.map(e=>({...e,displayName:getModelDisplayName(e.model),costLabel:formatCredits(e.totalCost)})),r=Math.max(...n.map(e=>e.displayName.length)),o=Math.min(24,Math.max(10,r)),s=Math.max(...n.map(e=>e.costLabel.length)),i=Math.max(8,s+2);return J.createElement(oe,{flexDirection:"column",marginTop:1},n.map(({model:e,displayName:n,costLabel:r,totalCost:s})=>{const a=t>0?Math.round(s/t*100):0,l=n.length>o?n.slice(0,o-1)+"…":n;return J.createElement(oe,{key:e},J.createElement(se,null,l.padEnd(o+2)),J.createElement(se,null,r.padEnd(i)),J.createElement(se,{color:Xn.DIM},`${a}%`))}))},"ModelBreakdownRows"),BT=__name(({onClose:e})=>{const[t,n]=Z("loading"),[r,o]=Z(null),[s,i]=Z(!1),a=getProgressBarWidth({terminalWidth:useTerminalWidth()}),l=re(async e=>{try{i(!1);const t=await fetchUsageData();if(e.aborted)return;if(!t.whoami){const e=t.errors.some(isAuthErrorMessage);return i(e),void n("error")}o(t),n("loaded")}catch{if(e.aborted)return;n("error")}},[]),u=J.useRef(null);le((r,o)=>{if(o.escape&&(BS(),e()),"r"===r&&"error"===t){n("loading"),u.current?.abort();const e=new AbortController;u.current=e,l(e.signal)}}),te(()=>{const e=new AbortController;return u.current=e,l(e.signal),()=>e.abort()},[l]);const d=r?.subscription?.data??null,m=d?getPlanInfo({planId:d.planId??""}):null;if("loading"===t)return J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(FT,{plan:m,status:d?.status??null}),J.createElement(se,{color:Xn.DIM},"Loading…"),J.createElement(qT,null));if("error"===t)return J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(FT,{plan:m,status:d?.status??null}),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},s?"Not authenticated. Run /login to connect your account.":"Something went wrong.")),J.createElement(qT,{showRetry:!s}));if(!r)return null;const g=r.credits||r.subscription,h=getStudioUsageUrl(r.whoami);if(!g)return J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(FT,{plan:m,status:d?.status??null}),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"No billing data found."),h&&J.createElement(J.Fragment,null,J.createElement(se,{color:Xn.DIM}," Visit "),J.createElement(Dr,{url:h,text:"Studio",color:Xn.CYAN}),J.createElement(se,{color:Xn.DIM}," ","for usage details."))),J.createElement(qT,null));const f=r.credits?.credits,y=r.summary,w=r.modelBreakdown,S=null!=w&&w.length>0,E=Math.max(0,f?.monthlyCredits??0)+Math.max(0,f?.purchasedCredits??0)+Math.max(0,f?.freeCredits??0),C=Math.max(0,y?.totalCost??0),v=getUsagePercent({used:C,total:C+E}),k=E>0||C>0,T=d?.currentPeriodEnd?getDaysRemaining(d.currentPeriodEnd):null,_=getDaysColor(T),x=getUsageColor(v),P=buildBlockBar({percentage:v,width:a}),A=S?w.reduce((e,t)=>e+t.totalCost,0):0;return J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(oe,{marginBottom:1},J.createElement(FT,{plan:m,status:d?.status??null})),k?J.createElement(oe,null,J.createElement(se,{color:x},P.filled),J.createElement(se,{color:ur},P.empty),J.createElement(se,{bold:!0,color:x},` ${Math.round(v)}% used`)):J.createElement(se,{color:Xn.DIM},"Plan details unavailable"),k&&J.createElement(oe,null,d?.currentPeriodEnd&&J.createElement(se,{color:Xn.DIM},"Cycle: "),J.createElement(se,null,formatCredits(E)),J.createElement(se,{color:Xn.DIM}," left"),y&&J.createElement(J.Fragment,null,J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,null,y.totalCount.toLocaleString()),J.createElement(se,{color:Xn.DIM}," requests")),null!==T&&J.createElement(J.Fragment,null,J.createElement(se,{color:Xn.DIM}," · "),0===T?J.createElement(se,{color:_},"renewal today"):J.createElement(J.Fragment,null,J.createElement(se,{color:_},`${T} day${1===T?"":"s"}`),J.createElement(se,{color:Xn.DIM}," to renewal")))),S&&J.createElement(jT,{models:w,grandTotal:A}),h&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Full breakdown at "),J.createElement(Dr,{url:h,text:OT(h),color:Xn.CYAN})),J.createElement(qT,null))},"UsageOverlay");function UsageView({staticKey:e,setShowUsageOverlay:t}){return J.createElement(J.Fragment,null,J.createElement(eT,{staticKey:e}),J.createElement(oe,{flexDirection:"column",width:"100%"},J.createElement(BT,{onClose:()=>t(!1)})))}__name(UsageView,"UsageView"),tn(),tn(),sn(),Kw(),Fr();var UT="System prompt";function countMessagesByRole({messages:e}){let t=0,n=0;for(const r of e)"user"===r.message.role&&!isHiddenTranscriptMessage({message:r})&&t++,"assistant"===r.message.role&&n++;return{user:t,assistant:n}}function countToolCalls({messages:e}){let t=0,n=0;for(const r of e){if(isHiddenTranscriptMessage({message:r}))continue;const e=r.message.content;if(Array.isArray(e))for(const r of e)"tool-call"===r.type&&t++,"tool-result"===r.type&&n++}return{calls:t,results:n}}function countImages({messages:e}){let t=0;for(const n of e){if(isHiddenTranscriptMessage({message:n}))continue;const e=n.message.content;if(Array.isArray(e))for(const n of e)"image"===n.type&&t++}return t}function estimateConversationTokens({messages:e}){let t=0;for(const n of e)isHiddenTranscriptMessage({message:n})||(t+=estimateTokens(n.message));return t}function buildAutoCompactStatus({tokensUsed:e,tokenLimit:t}){const n=e/t,r=[{tier:1,threshold:Xt.TIER_1_THRESHOLD,description:`Prune to last ${Xt.TIER_1_KEEP_COUNT} tool calls`},{tier:2,threshold:Xt.TIER_2_THRESHOLD,description:`Prune to last ${Xt.TIER_2_KEEP_COUNT} tool calls`},{tier:3,threshold:Xt.TIER_3_THRESHOLD,description:"Full summarization"}];let o=0;const s=r.map(r=>{const s=Math.round(r.threshold*t),i=Math.max(0,s-e);let a="upcoming";return n>=r.threshold&&(a="passed",o=r.tier),{tier:r.tier,threshold:r.threshold,tokensAt:s,description:r.description,status:a,tokensAway:i}}),i=s.findIndex(e=>"upcoming"===e.status);return{tiers:-1!==i?s.map((e,t)=>t===i?{...e,status:"current"}:e):s,currentTier:o,keepRecentTokens:Xt.KEEP_RECENT_TOKENS}}function getPrimaryTip({percentage:e,conversationPct:t}){return e>=90?"Tier 3 auto-compact imminent — /compact now to control what gets summarized":e>=80?"Auto-compact Tier 3 triggers at 90% — /compact to free space before it kicks in":t>60&&e>40?`${t}% is conversation — /compact to reclaim tokens`:e>=50?"/compact to free space · /model to switch models":null}function getSecondaryTip({mcpToolCount:e,imageCount:t,messageCount:n,percentage:r}){return e>0&&r>30?`${e} MCP tools loaded — disconnect unused servers to save tokens`:t>0&&r>30?`${t} image${t>1?"s":""} in context — images use ~1.5k tokens each`:n>50&&r>40?`${n} messages — consider starting a new session for a fresh context`:null}function generateTips({percentage:e,conversationTokens:t,totalTokens:n,mcpToolCount:r,messageCount:o,imageCount:s}){if(0===n)return[];const i=getPrimaryTip({percentage:e,conversationPct:Math.min(100,Math.round(t/n*100))}),a=getSecondaryTip({mcpToolCount:r,imageCount:s,messageCount:o,percentage:e}),l=[];return i&&l.push(i),a&&l.push(a),0===l.length&&l.push("/compact to summarize and free context · /model to switch models"),l}async function collectMemoryItems(){const e=(await discoverMemoryFiles(process.cwd())).filter(e=>e.exists),t=[];for(const n of e){const e=await loadMemoryFile(n.path),r=e?estimateTokens(e):0,o=process.env.HOME??"",s=o&&n.path.startsWith(o)?`~${n.path.slice(o.length)}`:n.path;t.push({name:n.description,tokens:r,source:s})}return t}function collectBuiltInTools(){const e=[];for(const t of FC){const n=JSON.stringify(t.input_schema??{}),r=estimateTokens(`${t.name} ${t.description??""} ${n}`);e.push({name:t.name,tokens:r})}for(const t of qC){const n=estimateTokens(`${t.name} ${t.type}`);e.push({name:t.name,tokens:n})}return e}function collectMcpTools(){const e=getMcpConnectionManager().getConnectedServers(),t=[];for(const n of e)if("connected"===n.status)for(const e of n.tools){const r=JSON.stringify(e.inputSchema??{}),o=estimateTokens(`${e.name} ${e.description??""} ${r}`);t.push({name:e.name,tokens:o,source:n.name})}return t}async function collectSkillItems(){const e=await loadAllSkillSummaries(),t=[];for(const n of e.project){const e=estimateTokens(`${n.name} ${n.description}`);t.push({name:n.name,tokens:e,source:"project"})}for(const n of e.global){const e=estimateTokens(`${n.name} ${n.description}`);t.push({name:n.name,tokens:e,source:"user"})}return t}async function collectAgentItems(){const e=await loadAllAgents(),t=[];for(const n of e.project){const e=estimateTokens(`${n.name} ${n.description} ${n.systemPrompt}`);t.push({name:n.name,tokens:e,source:"project"})}for(const n of e.personal){const e=estimateTokens(`${n.name} ${n.description} ${n.systemPrompt}`);t.push({name:n.name,tokens:e,source:"user"})}return t}function sumTokens(e){let t=0;for(const n of e)t+=n.tokens;return t}async function analyzeContext({contextEngine:e}){const t=e.getContextTokensUsed(),n=CE,r=getConfiguredModel(),o=e.getHistory(),s=countMessagesByRole({messages:o}),i=countToolCalls({messages:o}),a=countImages({messages:o}),l=estimateConversationTokens({messages:o}),u=collectBuiltInTools(),d=collectMcpTools(),[m,g,h]=await Promise.all([collectSkillItems(),collectAgentItems(),collectMemoryItems()]),f=sumTokens(u),y=sumTokens(d),w=sumTokens(m),S=sumTokens(g),E=sumTokens(h),C=f+y+w+S+E,v=t>0,k=v?t:l+C,T=!v&&o.length>0,_=Math.min(k/n*100,100),x=Math.max(0,n-k),P=Math.max(0,k-l-C),A=[];if(k>0){if(P>0&&A.push({name:UT,tokens:P,detail:"identity + taste"}),f>0&&A.push({name:"System tools",tokens:f,detail:`${u.length} built-in`}),y>0){const e=Array.from(new Set(d.map(e=>e.source).filter(e=>"string"==typeof e)));let t=`${d.length} tools`;e.length>3&&(t=`${e.length} servers`),e.length>=1&&e.length<=3&&(t=e.join(", ")),A.push({name:"MCP",tokens:y,detail:t})}w>0&&A.push({name:"Skills",tokens:w,detail:`${m.length} loaded`}),S>0&&A.push({name:"Subagents",tokens:S,detail:`${g.length} loaded`}),E>0&&A.push({name:"Memory",tokens:E,detail:"AGENTS.md"}),l>0&&A.push({name:"Messages",tokens:l,detail:`${s.user} user · ${s.assistant} assistant`})}A.sort((e,t)=>e.name===UT?-1:t.name===UT?1:t.tokens-e.tokens);const I=o.length>0?o[0]?.meta.timestamp??null:null;return{tokensUsed:k,tokenLimit:n,percentage:_,tokensRemaining:x,isEstimated:T,model:r,breakdown:A,autoCompact:buildAutoCompactStatus({tokensUsed:k,tokenLimit:n}),stats:{messageCount:o.length,userMessages:s.user,assistantMessages:s.assistant,toolCalls:i.calls,toolResults:i.results,imageCount:a,sessionStartTime:I},tips:generateTips({percentage:_,conversationTokens:l,totalTokens:k,mcpToolCount:d.length,messageCount:o.length,imageCount:a})}}function formatK(e){if(e<1e3)return String(e);const t=e/1e3;return Number.isInteger(t)?`${t}k`:`${t.toFixed(1)}k`}function formatBreakdownValue(e){return e<1e3?String(e):`${(e/1e3).toFixed(1)}k`}function getLayoutSizes({terminalWidth:e}){const t=Math.max(20,e),n=Math.min(50,Math.max(30,Math.floor(.5*t)));return{labelWidth:16,progressBarWidth:Math.max(10,Math.min(n,t-10)),showBreakdownDetail:t>=70}}function ContextProgress({analysis:e,progressBarWidth:t}){const n=getUsageColor(e.percentage),r=buildBlockBar({percentage:e.percentage,width:t});return J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(oe,{flexShrink:0},J.createElement(se,{backgroundColor:Xn.BLUE,color:"#f4f4f4",bold:!0},`${Yv}CONTEXT${Yv}`)),J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,{color:Xn.GRAY},getModelDisplayName(e.model))),J.createElement(oe,null,J.createElement(se,{color:n},r.filled),J.createElement(se,{color:ur},r.empty),J.createElement(se,{bold:!0,color:n},` ${e.percentage.toFixed(1)}%`)),J.createElement(oe,null,J.createElement(se,null,formatK(e.tokensUsed)),J.createElement(se,{color:Xn.GRAY},` / ${formatK(e.tokenLimit)}`),J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,{color:n},formatK(e.tokensRemaining)),J.createElement(se,{color:Xn.GRAY}," remaining"),e.isEstimated&&J.createElement(se,{color:Xn.DIM}," (estimated)")))}function CompactionDistance({analysis:e}){if(e.percentage<40)return null;const t=e.autoCompact.tiers.find(e=>3===e.tier);if(!t||"passed"===t.status)return null;const{tokensAway:n}=t;let r=Xn.GRAY;return n<=5e4&&(r=Xn.YELLOW),n<=2e4&&(r=Xn.RED),J.createElement(oe,{marginTop:1},J.createElement(se,{color:r},`~${formatK(n)}`),J.createElement(se,{color:Xn.DIM}," until auto-compact"))}function BreakdownRow({item:e,labelWidth:t,numWidth:n,showDetail:r}){return J.createElement(oe,null,J.createElement(se,null,e.name.padEnd(t)),J.createElement(se,{bold:!0},formatBreakdownValue(e.tokens).padStart(n)),J.createElement(se,{color:Xn.GRAY}," tokens"),r&&e.detail&&J.createElement(se,{color:Xn.DIM},` · ${e.detail}`))}function ContextBreakdown({analysis:e,labelWidth:t,showBreakdownDetail:n}){const r=e.breakdown.filter(e=>e.tokens>0);if(0===r.length)return null;const o=Math.max(4,...r.map(e=>formatBreakdownValue(e.tokens).length));return J.createElement(oe,{flexDirection:"column",marginTop:1},r.map(e=>J.createElement(BreakdownRow,{key:e.name,item:e,labelWidth:t,numWidth:o,showDetail:n})))}function ContextTips({tips:e}){return 0===e.length?null:J.createElement(oe,{flexDirection:"column",marginTop:1},e.map(e=>J.createElement(oe,{key:e},J.createElement(se,{color:Xn.CYAN},Pe.pointer),J.createElement(se,{color:Xn.GRAY}," ",e))))}function ContextMessage({analysis:e}){const t=getLayoutSizes({terminalWidth:useTerminalWidth()});return J.createElement(oe,{flexDirection:"column",paddingTop:1},J.createElement(ContextProgress,{analysis:e,progressBarWidth:t.progressBarWidth}),J.createElement(CompactionDistance,{analysis:e}),J.createElement(ContextBreakdown,{analysis:e,labelWidth:t.labelWidth,showBreakdownDetail:t.showBreakdownDetail}),J.createElement(ContextTips,{tips:e.tips}))}function ContextConfigView({staticKey:e,contextEngineRef:t,setShowContextView:n,setInput:r}){const[o,s]=Z(null),[i,a]=Z(null);return te(()=>{let e=!0;return __name(async()=>{if(t.current)try{const n=await analyzeContext({contextEngine:t.current});e&&s(n)}catch{e&&a("Failed to analyze context.")}else e&&a("No active conversation. Start chatting first.")},"load")(),()=>{e=!1}},[t]),le((e,t)=>{t.escape&&(BS(),r(""),n(!1))}),J.createElement(J.Fragment,null,J.createElement(eT,{staticKey:e}),J.createElement(oe,{flexDirection:"column",width:"100%"},i?J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Zn,bold:!0},"Context"),J.createElement(se,{color:Xn.DIM},i)):o?J.createElement(ContextMessage,{analysis:o}):J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Zn,bold:!0},"Context"),J.createElement(se,{color:Xn.DIM},"Loading context analysis...")),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press Esc to return to conversation"))))}__name(countMessagesByRole,"countMessagesByRole"),__name(countToolCalls,"countToolCalls"),__name(countImages,"countImages"),__name(estimateConversationTokens,"estimateConversationTokens"),__name(buildAutoCompactStatus,"buildAutoCompactStatus"),__name(getPrimaryTip,"getPrimaryTip"),__name(getSecondaryTip,"getSecondaryTip"),__name(generateTips,"generateTips"),__name(collectMemoryItems,"collectMemoryItems"),__name(collectBuiltInTools,"collectBuiltInTools"),__name(collectMcpTools,"collectMcpTools"),__name(collectSkillItems,"collectSkillItems"),__name(collectAgentItems,"collectAgentItems"),__name(sumTokens,"sumTokens"),__name(analyzeContext,"analyzeContext"),HS(),tn(),Hh(),kr(),__name(formatK,"formatK"),__name(formatBreakdownValue,"formatBreakdownValue"),__name(getLayoutSizes,"getLayoutSizes"),__name(ContextProgress,"ContextProgress"),__name(CompactionDistance,"CompactionDistance"),__name(BreakdownRow,"BreakdownRow"),__name(ContextBreakdown,"ContextBreakdown"),__name(ContextTips,"ContextTips"),__name(ContextMessage,"ContextMessage"),kr(),__name(ContextConfigView,"ContextConfigView"),tn(),tn(),sn(),ts(),oo(),Vr(),Fr();var zT="https://commandcode.ai/studio";function getVersionStatus(){try{return{current:getPackageJson().version,updateAvailable:null}}catch{return{current:"Unknown",updateAvailable:null}}}async function getAuthStatus(){try{const e=await checkAuthStatus(),t=e.userName||null;return{authenticated:e.authenticated,username:t}}catch{return{authenticated:!1,username:null}}}async function getModelStatus(){try{const e=await getSelectedModel(),t=getProviderDisplayName((await loadUserConfig()).provider||null);return{id:e,displayName:getModelDisplayName(e),provider:t}}catch{return{id:"Unknown",displayName:"Unknown",provider:"Unknown"}}}async function getSkillsAgentsStatus(){let e=0,t=0,n=0,r=0;try{const n=await loadAllSkillSummaries();e=n.global.length,t=n.project.length}catch{}try{const e=await loadAllAgents();n=e.personal.length,r=e.project.length}catch{}return{personalSkills:e,projectSkills:t,personalAgents:n,projectAgents:r}}function execGitAsync(e){return new Promise(t=>{O("git",e,{encoding:"utf8",cwd:process.cwd(),timeout:3e3},(e,n)=>{t(e?null:n.trim()||null)})})}async function getGitStatus2(){const e=await execGitAsync(["rev-parse","--abbrev-ref","HEAD"]);if(!e)return{branch:null,worktreePath:null,remoteUrl:null,remoteHttpUrl:null};const[t,n]=await Promise.all([execGitAsync(["rev-parse","--show-toplevel"]),execGitAsync(["remote","get-url","origin"])]);return{branch:e,worktreePath:t,remoteUrl:n?formatRemoteUrl(n):null,remoteHttpUrl:n?buildHttpUrl(n):null}}function parseSSHUrl(e){const t=e.match(/@([^:]+):(.+?)(?:\.git)?$/);return t?.[1]&&t[2]?{host:t[1],path:t[2]}:null}function formatRemoteUrl(e){const t=parseSSHUrl(e);if(t)return t.path;const n=e.match(/\/\/[^/]+\/(.+?)(?:\.git)?$/);return n?.[1]?n[1]:e}function buildHttpUrl(e){const t=parseSSHUrl(e);if(t)return`https://${t.host}/${t.path}`;const n=e.match(/^ssh:\/\/[^@]+@([^/]+)\/(.+?)(?:\.git)?$/);return n?.[1]&&n[2]?`https://${n[1]}/${n[2]}`:/^https?:\/\//.test(e)?e.replace(/\.git$/,""):e}function getPrStatus(e){try{const t=getCachedPR(e);return t?{number:t.number,url:t.url,state:t.state}:null}catch{return null}}async function hasTasteMdFiles(e){if(!k(e))return!1;try{return(await W(e,{recursive:!0,encoding:"utf-8"})).some(e=>e.endsWith(".md"))}catch{return!1}}async function getTasteStatus(){const e=t.join(process.cwd(),".commandcode","taste"),n=t.join(e,"taste.md"),r=k(n),o=r||await hasTasteMdFiles(e);let s=!0;try{s=await isTasteLearningEnabled()}catch{}return{fileExists:o,filePath:r?n:e,learningEnabled:s}}function detectProxy(){const e=process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy;return e?sanitizeProxyUrl(e):null}function sanitizeProxyUrl(e){try{const t=new URL(e);return t.username="",t.password="",t.toString().replace(/\/$/,"")}catch{return"[malformed proxy URL]"}}function getSystemStatus(){let e,t,n,r;try{e=Ak(w.platform()),t=zk(),n=Hk(),r=Wk()}catch{e="Unknown",t="Unknown",n="Unknown",r="N/A"}return{cwd:process.cwd(),os:e,arch:w.arch(),shell:n,terminal:t,nodeVersion:process.version,ide:"N/A"!==r?r:null,proxy:detectProxy()}}async function gatherStatusData(){const e=safeSync(getVersionStatus,{current:"Unknown",updateAvailable:null}),t=safeSync(getSystemStatus,{cwd:process.cwd(),os:"Unknown",arch:w.arch(),shell:"Unknown",terminal:"Unknown",nodeVersion:process.version,ide:null,proxy:null}),[n,r,o,s,i]=await Promise.all([safeAsync(getAuthStatus,{authenticated:!1,username:null}),safeAsync(getModelStatus,{id:"Unknown",displayName:"Unknown",provider:"Unknown"}),safeAsync(getTasteStatus,{fileExists:!1,filePath:"",learningEnabled:!1}),safeAsync(getSkillsAgentsStatus,{personalSkills:0,projectSkills:0,personalAgents:0,projectAgents:0}),safeAsync(getGitStatus2,{branch:null,worktreePath:null,remoteUrl:null,remoteHttpUrl:null})]),a=safeSync(()=>getPrStatus(i.branch),null);return{version:e,auth:n,model:r,git:i,pr:a,taste:o,skillsAgents:s,system:t}}function safeSync(e,t){try{return e()}catch{return t}}async function safeAsync(e,t){try{return await e()}catch{return t}}function formatCountValue(e,t){const n=e+t;return 0===n?"None":`${n} (${e} user, ${t} project)`}function formatSystemValue({system:e}){const t=[`${e.os} ${e.arch}`];return e.ide&&t.push(e.ide),!e.terminal||e.ide&&e.ide.toLowerCase().startsWith(e.terminal.toLowerCase())||t.push(e.terminal),t.push(e.shell),t.push(`Node ${e.nodeVersion}`),t.join(" · ")}__name(getVersionStatus,"getVersionStatus"),__name(getAuthStatus,"getAuthStatus"),__name(getModelStatus,"getModelStatus"),__name(getSkillsAgentsStatus,"getSkillsAgentsStatus"),__name(execGitAsync,"execGitAsync"),__name(getGitStatus2,"getGitStatus"),__name(parseSSHUrl,"parseSSHUrl"),__name(formatRemoteUrl,"formatRemoteUrl"),__name(buildHttpUrl,"buildHttpUrl"),__name(getPrStatus,"getPrStatus"),__name(hasTasteMdFiles,"hasTasteMdFiles"),__name(getTasteStatus,"getTasteStatus"),__name(detectProxy,"detectProxy"),__name(sanitizeProxyUrl,"sanitizeProxyUrl"),__name(getSystemStatus,"getSystemStatus"),__name(gatherStatusData,"gatherStatusData"),__name(safeSync,"safeSync"),__name(safeAsync,"safeAsync"),tn(),sn(),NS(),kr(),qr(),__name(formatCountValue,"formatCountValue"),__name(formatSystemValue,"formatSystemValue");var HT=__name(({label:e,value:t,valueColor:n,dimValue:r})=>J.createElement(oe,null,J.createElement(se,{dimColor:!0},`${e}:`.padEnd(14)),r?J.createElement(se,{dimColor:!0},t):J.createElement(se,{color:n},t)),"Row");function StatusMessage({statusData:e}){const t=e,n=t.version.updateAvailable?`v${t.version.current} → v${t.version.updateAvailable} available`:`v${t.version.current}`,r=`${t.model.provider} · ${t.model.displayName}`,o=t.git.branch||"N/A",s=t.git.worktreePath?toRelativePath(t.git.worktreePath):null,i=t.auth.authenticated?Pe.tick:Pe.cross,a=t.auth.authenticated?Xn.WHITE:lr.ERROR,l=t.skillsAgents.personalSkills+t.skillsAgents.projectSkills,u=t.skillsAgents.personalAgents+t.skillsAgents.projectAgents,d=t.taste.fileExists?"Active · "+(t.taste.learningEnabled?"Learning on":"Learning off"):"No taste.md";return J.createElement(oe,{flexDirection:"column",paddingX:0},J.createElement(oe,null,J.createElement(se,{color:Zn,bold:!0},"Command Code"," "),J.createElement(se,{dimColor:!0},n)),J.createElement(oe,null,J.createElement(se,{dimColor:!0},"Visit "),J.createElement(Dr,{url:zT,text:zT,color:Xn.CYAN}),J.createElement(se,{dimColor:!0}," for usage and billing")),J.createElement(oe,{marginTop:1},J.createElement(se,{dimColor:!0},"Account:".padEnd(14)),t.auth.authenticated&&t.auth.username?J.createElement(J.Fragment,null,J.createElement(Dr,{url:`https://commandcode.ai/${t.auth.username}/`,text:t.auth.username,color:Xn.CYAN}),J.createElement(se,{color:a}," ",i)):t.auth.authenticated?J.createElement(J.Fragment,null,J.createElement(se,null,"Authenticated"),J.createElement(se,{color:a}," ",i)):J.createElement(J.Fragment,null,J.createElement(se,{color:lr.WARNING},"Not signed in"),J.createElement(se,{color:a}," ",i),J.createElement(se,{dimColor:!0}," — run "),J.createElement(se,{bold:!0},"/login"))),J.createElement(HT,{label:"Model",value:r}),J.createElement(HT,{label:"Branch",value:o,dimValue:!t.git.branch}),s?J.createElement(HT,{label:"Worktree",value:s}):null,t.git.remoteUrl?J.createElement(oe,null,J.createElement(se,{dimColor:!0},"Repository:".padEnd(14)),J.createElement(Dr,{url:t.git.remoteHttpUrl||`https://github.com/${t.git.remoteUrl}`,text:t.git.remoteUrl,color:Xn.CYAN}),t.pr?J.createElement(J.Fragment,null,J.createElement(se,{dimColor:!0}," · "),J.createElement(Dr,{url:t.pr.url,text:`#${t.pr.number}`,color:"OPEN"===t.pr.state?Xn.CYAN:Xn.GRAY}),J.createElement(se,{dimColor:!0}," (",t.pr.state.toLowerCase(),")")):null):t.pr?J.createElement(oe,null,J.createElement(se,{dimColor:!0},"Pull Request:".padEnd(14)),J.createElement(Dr,{url:t.pr.url,text:`#${t.pr.number}`,color:"OPEN"===t.pr.state?Xn.CYAN:Xn.GRAY}),J.createElement(se,{dimColor:!0}," (",t.pr.state.toLowerCase(),")")):null,J.createElement(HT,{label:"Taste",value:d,dimValue:!t.taste.fileExists}),J.createElement(HT,{label:"Directory",value:toRelativePath(t.system.cwd)}),J.createElement(HT,{label:"Skills",value:formatCountValue(t.skillsAgents.personalSkills,t.skillsAgents.projectSkills),dimValue:0===l}),J.createElement(HT,{label:"Agents",value:formatCountValue(t.skillsAgents.personalAgents,t.skillsAgents.projectAgents),dimValue:0===u}),J.createElement(HT,{label:"System",value:formatSystemValue({system:t.system})}),t.system.proxy?J.createElement(HT,{label:"Proxy",value:t.system.proxy}):null)}function StatusConfigView({staticKey:e,setShowStatusView:t,setInput:n}){const[r,o]=Z({phase:"loading"});return te(()=>{let e=!1;return gatherStatusData().then(t=>{e||o({phase:"ready",data:t})}).catch(t=>{if(e)return;const n=t instanceof Error?t.message:"Failed to gather status";o({phase:"error",message:n})}),()=>{e=!0}},[]),le((e,r)=>{r.escape&&(n(""),t(!1))}),J.createElement(J.Fragment,null,J.createElement(eT,{staticKey:e}),J.createElement(oe,{flexDirection:"column",width:"100%"},"ready"===r.phase?J.createElement(StatusMessage,{statusData:r.data}):"error"===r.phase?J.createElement(se,{dimColor:!0},"Could not load status: ",r.message):J.createElement(se,{dimColor:!0},"Gathering status…"),J.createElement(oe,{marginTop:1},J.createElement(se,{dimColor:!0},"Press Esc to return to conversation"))))}function moveFocusDown(e,t){const{suggestionCount:n,activeDirCount:r}=t;return"input"===e.zone?n>0?{...e,zone:"suggestions",suggestionIndex:0}:r>0?{...e,zone:"active-dir",activeDirIndex:0}:e:"suggestions"===e.zone?e.suggestionIndex<n-1?{...e,suggestionIndex:e.suggestionIndex+1}:r>0?{...e,zone:"active-dir",activeDirIndex:0}:{...e,zone:"input"}:e.activeDirIndex<r-1?{...e,activeDirIndex:e.activeDirIndex+1}:{...e,zone:"input"}}function moveFocusUp(e,t){const{suggestionCount:n,activeDirCount:r}=t;return"input"===e.zone?r>0?{...e,zone:"active-dir",activeDirIndex:r-1}:n>0?{...e,zone:"suggestions",suggestionIndex:n-1}:e:"suggestions"===e.zone?e.suggestionIndex>0?{...e,suggestionIndex:e.suggestionIndex-1}:{...e,zone:"input"}:e.activeDirIndex>0?{...e,activeDirIndex:e.activeDirIndex-1}:n>0?{...e,zone:"suggestions",suggestionIndex:n-1}:{...e,zone:"input"}}function getAdjustedSuggestionOffset(e){const{selectedIndex:t,currentOffset:n,maxVisible:r,totalSuggestions:o}=e;return o<=r?0:t<n?t:t>=n+r?t-r+1:n}function getSuggestionBase(e){const n=resolveDirectoryPath(e),r=/[\\/]$/.test(e),o=e.replace(/\\/g,"/");if(o.endsWith("/."))return{searchDirectory:n,prefix:".",outputPrefix:`${o.slice(0,-1)}`};if(r)return{searchDirectory:n,prefix:"",outputPrefix:o};const s=o.lastIndexOf("/");return-1===s?{searchDirectory:t.dirname(n),prefix:t.basename(n),outputPrefix:""}:{searchDirectory:t.dirname(n),prefix:t.basename(n),outputPrefix:o.slice(0,s+1)}}function getDirectorySuggestions(e){const t=e.trim();if(!t)return[];try{const{searchDirectory:e,prefix:n,outputPrefix:r}=getSuggestionBase(t),o=n.startsWith(".")||r.includes("/.");return v.readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()).filter(e=>!!o||!e.name.startsWith(".")).filter(e=>!n||e.name.toLowerCase().startsWith(n.toLowerCase())).sort((e,t)=>e.name.localeCompare(t.name)).map(e=>`${r}${e.name}/`)}catch(e){const t=e.code;return"ENOENT"!==t&&"ENOTDIR"!==t&&console.error(`Warning: Could not list directory suggestions: ${t}`),[]}}function getFooterText(e){return"active-dir"===e.focusZone?"[Del] Remove [↑↓] Navigate [Tab] Autocomplete [Esc] Close":"[Enter] Add [↑↓] Navigate [Tab] Autocomplete [Esc] Close"}__name(StatusMessage,"StatusMessage"),__name(StatusConfigView,"StatusConfigView"),tn(),tn(),dn(),tn(),dn(),__name(function createInitialFocusState(){return{zone:"input",suggestionIndex:0,activeDirIndex:0}},"createInitialFocusState"),__name(moveFocusDown,"moveFocusDown"),__name(moveFocusUp,"moveFocusUp"),__name(getAdjustedSuggestionOffset,"getAdjustedSuggestionOffset"),__name(getSuggestionBase,"getSuggestionBase"),__name(getDirectorySuggestions,"getDirectorySuggestions"),__name(getFooterText,"getFooterText"),kr(),xr();var WT=__name(({onClose:e})=>{const[t,n]=Z(""),[r,o]=Z(null),[s,i]=Z([]),[a,l]=Z(getAdditionalDirectories()),[u,d]=Z({zone:"input",suggestionIndex:0,activeDirIndex:0}),[m,g]=Z(0);te(()=>{i(t?getDirectorySuggestions(t):[]),d(e=>({...e,zone:"input"})),g(0)},[t]),te(()=>{if(!r||"success"!==r.tone)return;const e=setTimeout(()=>{o(null)},5e3);return()=>clearTimeout(e)},[r]);const h=__name(e=>{const t=addDirectory(e);"error"!==t.status?"skipped"!==t.status?(o({tone:"success",text:`Added ${t.displayPath} to directory scope`}),n(""),l(getAdditionalDirectories()),d({zone:"input",suggestionIndex:0,activeDirIndex:0})):o({tone:"warning",text:t.message}):o({tone:"error",text:t.message})},"submitPath"),f=__name(e=>{if(!removeAdditionalDirectory(e))return o({tone:"error",text:`${formatDirectoryForDisplay(e)} is no longer in workspace scope`}),void l(getAdditionalDirectories());o({tone:"success",text:`Removed ${formatDirectoryForDisplay(e)} from directory scope`}),l(getAdditionalDirectories()),d(e=>{if("active-dir"!==e.zone)return e;const t=Math.max(0,e.activeDirIndex-1);return{...e,activeDirIndex:t}})},"handleRemove");le((t,r)=>{if(r.escape)e();else{if(r.return)return"suggestions"===u.zone&&s[u.suggestionIndex]?void h(s[u.suggestionIndex]):void 0;if((r.delete||r.backspace)&&"active-dir"===u.zone&&a[u.activeDirIndex])f(a[u.activeDirIndex]);else{if(r.tab&&s.length>0){const e=s[u.suggestionIndex]??s[0];return void(e&&(n(e),d(e=>({...e,zone:"input"})),o(null)))}r.downArrow?d(e=>moveFocusDown(e,{suggestionCount:s.length,activeDirCount:a.length})):r.upArrow&&d(e=>moveFocusUp(e,{suggestionCount:s.length,activeDirCount:a.length}))}}}),te(()=>{"suggestions"===u.zone&&g(e=>getAdjustedSuggestionOffset({selectedIndex:u.suggestionIndex,currentOffset:e,maxVisible:8,totalSuggestions:s.length}))},[u,s.length]),te(()=>{d(e=>"suggestions"===e.zone&&e.suggestionIndex>=s.length?{...e,zone:"input",suggestionIndex:Math.max(0,s.length-1)}:"active-dir"===e.zone&&e.activeDirIndex>=a.length?{...e,zone:"input",activeDirIndex:Math.max(0,a.length-1)}:e)},[s.length,a.length]);const y=s.slice(m,m+8),w=getFooterText({focusZone:u.zone});return J.createElement(oe,{flexDirection:"column",borderStyle:"single",borderColor:Xn.CYAN,paddingX:1,paddingY:0},J.createElement(se,{bold:!0,color:Xn.CYAN},"Add directory to workspace"),J.createElement(se,{color:Xn.GRAY},"Command Code will be able to read files in this directory and make edits when accept edits mode is on."),J.createElement(oe,{marginTop:1,flexDirection:"column"},J.createElement(se,{color:Xn.GRAY},"Added directories"),0===a.length?J.createElement(se,{color:Xn.GRAY}," None yet"):a.map((e,t)=>{const n="active-dir"===u.zone&&u.activeDirIndex===t;return J.createElement(se,{key:e,color:n?Xn.YELLOW:Xn.GREEN,bold:n},n?` ${Pe.pointer} `:" ",formatDirectoryForDisplay(e))})),J.createElement(oe,{marginTop:1},J.createElement(se,{bold:!0,color:Xn.WHITE},"Path")),J.createElement(oe,null,J.createElement(TextInput,{value:t,focus:"input"===u.zone,prefix:`${"input"===u.zone?Pe.pointer:" "} `,prefixColor:"input"===u.zone?Xn.CYAN:Xn.GRAY,onChange:e=>{n(e),o(null)},onSubmit:h})),!t&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.GRAY},"Examples: ../shared ~/docs /abs/path")),r&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:{error:Xn.RED,warning:Xn.YELLOW,success:Xn.GREEN}[r.tone]},r.text)),s.length>0&&J.createElement(oe,{flexDirection:"column",marginTop:1},J.createElement(se,{color:Xn.GRAY},"Suggestions"),y.map((e,t)=>{const n=m+t,r="suggestions"===u.zone&&u.suggestionIndex===n;return J.createElement(se,{key:e,color:r?Xn.CYAN:Xn.GRAY,bold:r},r?` ${Pe.pointer} `:" ",e)})),J.createElement(oe,{marginTop:1},J.createElement(BracketedText,{text:w,color:Xn.DIM})))},"AddDirModal");tn(),tn(),sn(),tn(),tn(),sn(),kr();var GT=__name(()=>t.join(w.homedir(),".commandcode","agents"),"getRootAgentDir"),VT=__name(()=>t.join(process.cwd(),".commandcode","agents"),"getLocalAgentDir"),QT=__name(({config:e,onSaveComplete:n,viewOnly:r=!1})=>{const[o,s]=Z("idle"),[i,a]=Z(""),l=[...FC.map(e=>e.name),...qC.map(e=>e.name)],u=__name(async()=>{if(!e.agentType||!e.sysPrompt)return s("error"),void a("Agent configuration is incomplete");s("saving");try{const r="personal"===e.location?GT():VT();await q.mkdir(r,{recursive:!0});const o=`${e.agentType}.md`,s=t.join(r,o),i=Array.from(e.selectedTools).map(e=>UC[e]||e).join(", "),a=0===e.selectedTools.size?"none":e.selectedTools.size===l.length?'"*"':JSON.stringify(i),u=`---\nname: "${e.agentType}"\ndescription: ${JSON.stringify(e.ccToolDefinition)}\ntools: ${a}\n---\n\n${e.sysPrompt}\n`;await q.writeFile(s,u,"utf-8"),n(e.agentType)}catch(e){console.error("Error saving agent:",e),s("error"),a(e instanceof Error?e.message:"Unknown error occurred")}},"handleSaveAgent");le((e,t)=>{r||!t.return||"idle"!==o&&"error"!==o||u()});const d=Array.from(e.selectedTools).map(e=>UC[e]||e).join(", "),m="personal"===e.location?`~/.commandcode/agents/${e.agentType}`:`.commandcode/agents/${e.agentType}`;return J.createElement(oe,{flexDirection:"column",gap:1},J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{gap:1},J.createElement(se,{color:Xn.WHITE,bold:!0},"Name:"),J.createElement(se,{color:Xn.GRAY},e.agentType)),J.createElement(oe,{gap:1},J.createElement(se,{color:Xn.WHITE,bold:!0},"Location:"),J.createElement(se,{color:Xn.GRAY},m)),J.createElement(oe,{gap:1},J.createElement(se,{color:Xn.WHITE,bold:!0},"Tools:"),J.createElement(se,{color:Xn.GRAY},0===e.selectedTools.size?"None":e.selectedTools.size===l.length?"*":d))),J.createElement(oe,{gap:1},J.createElement(se,{color:Xn.WHITE,bold:!0},"Description"),J.createElement(se,{color:Xn.GRAY},"(Tells ","Command Code"," when to use this agent):")),J.createElement(se,{color:Xn.GRAY},e.ccToolDefinition),J.createElement(oe,{gap:1},J.createElement(se,{color:Xn.WHITE,bold:!0},"System Prompt:")),J.createElement(se,{color:Xn.GRAY},e.sysPrompt),!r&&J.createElement(oe,{marginTop:1},"idle"===o&&J.createElement(oe,{gap:1},J.createElement(se,{color:Xn.GREEN,dimColor:!0},"Press"),J.createElement(se,{color:Xn.GREEN,bold:!0},"Enter"),J.createElement(se,{color:Xn.GREEN,dimColor:!0},"to save • Esc to cancel")),"saving"===o&&J.createElement(se,{color:Xn.YELLOW},"Saving agent..."),"saved"===o&&J.createElement(se,{color:Xn.GREEN},Pe.tick," ",i),"error"===o&&J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.RED},Pe.cross," Error: ",i),J.createElement(se,{color:Xn.GRAY},"Press Enter to retry"))))},"AgentSummary");kr();var KT=__name(({agent:e,onBack:t,setRevalidateAgent:n,isReadOnly:r=!1})=>{const[o,s]=Z("menu"),i=[...FC.map(e=>e.name),...qC.map(e=>e.name)];let a=new Set;if("*"===e.tools||'"*"'===e.tools)a=new Set(i);else if(e.tools&&"none"!==e.tools){const t=e.tools.replace(/^"|"$/g,"").split(",").map(e=>e.trim()).map(e=>zC[e]||e);a=new Set(t)}const l={location:e.location,method:"manual",agentType:e.name,sysPrompt:e.sysPrompt,ccToolDefinition:e.description,recommendedMethodDescription:"",selectedTools:a},u=[{label:"1. View agent",value:"view"},...r?[]:[{label:"2. Delete agent",value:"delete"}],{label:r?"2. Back":"3. Back",value:"back"}],d=__name(e=>{"back"===e.value?t():"view"===e.value?s("view"):"edit"===e.value?s("edit"):"delete"===e.value&&s("delete")},"handleMenuSelect");if(le((e,n)=>{n.escape&&("menu"===o?t():s("menu")),n.return&&"view"===o&&s("menu")}),"view"===o)return J.createElement(oe,{flexDirection:"column"},J.createElement(QT,{config:l,onSaveComplete:()=>s("menu"),viewOnly:!0}),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.GRAY},"Press Enter to go back")));if("edit"===o)return J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.YELLOW},"Edit functionality coming soon..."),J.createElement(se,{color:Xn.GRAY},"Press Esc to go back"));if("delete"===o){const r=[{label:"1. Yes, delete",value:"confirm-delete"},{label:"2. No, cancel",value:"cancel"}],o=__name(async r=>{if("confirm-delete"===r.value)try{await q.unlink(e.filePath),n(!0),t()}catch(e){console.error(`Failed to delete agent: ${e}`),s("menu")}else s("menu")},"handleDeleteSelect");return J.createElement(oe,{flexDirection:"column",gap:1},J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.RED},"Delete agent"),J.createElement(se,{color:Xn.GRAY},"Are you sure you want to delete the agent ",e.name,"?")),J.createElement(oe,null,J.createElement(at,{items:r,onSelect:o,indicatorComponent:({isSelected:e})=>J.createElement(se,{color:Xn.WHITE},e?">":" "),itemComponent:({isSelected:e,label:t})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY},` ${t}`)})))}return J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.WHITE,bold:!0},e.name),J.createElement(oe,{marginTop:1},J.createElement(at,{items:u,onSelect:d,indicatorComponent:({isSelected:e})=>J.createElement(se,{color:Xn.WHITE},e?">":" "),itemComponent:({isSelected:e,label:t})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY},` ${t}`)})),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.GRAY},"Press ↑↓ to navigate · Enter to select · Esc to go back")))},"AgentDetails");kr();var YT=__name(({handleSelect:e,createdAgentName:n})=>{const[r,o]=Z([]),[s,i]=Z([]),[a,l]=Z([]),[u,d]=Z(!0),[m,g]=Z(!1),[h,f]=Z(null),[y,S]=Z(!1),E=__name(()=>t.join(w.homedir(),".commandcode","agents"),"getRootAgentDir"),C=__name(()=>t.join(process.cwd(),".commandcode","agents"),"getLocalAgentDir"),v=__name(async(e,n)=>{try{g(!1);const r=(await q.readdir(e)).filter(e=>e.endsWith(".md"));return(await Promise.all(r.map(async r=>{try{const o=t.join(e,r),s=await q.readFile(o,"utf-8"),{data:i,content:a}=Ge(s);let l=i.tools||"";return"*"!==l&&'"*"'!==l||(l="*"),{name:i.name||r.replace(".md",""),description:i.description||"",tools:l,sysPrompt:a.trim(),location:n,filePath:o}}catch(e){return console.error(`Error loading agent from ${r}:`,e),null}}))).filter(e=>null!==e)}catch{return[]}},"loadAgentsFromDirectory");te(()=>{__name(async()=>{d(!0);const[e,t]=await Promise.all([v(E(),"personal"),v(C(),"project")]),n=yC.map(e=>({name:e.name,description:e.description,tools:Array.isArray(e.tools)?e.tools.join(", "):e.tools,sysPrompt:e.systemPrompt,location:"personal",filePath:`__builtin__:${e.name}`}));o(e),i(t),l(n),d(!1)},"loadAgents")()},[m]);const k=[{label:"Create new agent",value:"create_new_agent"}];r.forEach(e=>{k.push({label:e.name,value:e.filePath})}),s.forEach(e=>{k.push({label:e.name,value:e.filePath})});const T=r.length+s.length,_=__name(t=>{if("create_new_agent"===t.value)e(t);else{const e=[...r,...s].find(e=>e.filePath===t.value);e&&(f(e),S(!0))}},"handleAgentSelect");if(u)return J.createElement(se,{color:Xn.GRAY},"Loading agents...");if(y&&h){const e=h.filePath.startsWith("__builtin__:");return J.createElement(KT,{agent:h,onBack:()=>{S(!1),f(null)},setRevalidateAgent:g,isReadOnly:e})}const x=__name(({isSelected:e,label:t})=>{const n=k.find(e=>e.label===t),o=n?.value||"",i=r[0]?.filePath===o,a=s[0]?.filePath===o;return J.createElement(oe,{flexDirection:"column"},i&&r.length>0&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.GRAY,bold:!0},"User agents")),a&&s.length>0&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.GRAY,bold:!0},"Project agents")),J.createElement(oe,null,J.createElement(se,{color:Xn.WHITE},e?">":" "),J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY}," ",t)))},"CustomItemComponent");return J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.WHITE,bold:!0},"Agents"),T>0?J.createElement(se,{color:Xn.GRAY}," ","(",T," agent",T>1?"s":"",")"):J.createElement(se,{color:Xn.GRAY}," (No custom agents)")),n&&J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(se,{color:Xn.GREEN,dimColor:!0},"Created agent: ",n)),J.createElement(at,{items:k,onSelect:_,indicatorComponent:()=>null,itemComponent:x}),a.length>0&&J.createElement(oe,{flexDirection:"column",marginTop:1},J.createElement(se,{color:Xn.GRAY,bold:!0},"Default agents"),a.map(e=>J.createElement(se,{key:e.filePath,color:Xn.GRAY}," ",e.name.charAt(0).toUpperCase()+e.name.slice(1)))),J.createElement(oe,{flexDirection:"column",marginTop:1},J.createElement(se,{color:Xn.GRAY},"Create specialized subagents that Command Code can delegate to."),J.createElement(se,{color:Xn.GRAY},"Each subagent has its own context window, custom system prompt, and specific tools.")))},"ManageAgents");tn(),sn(),as(),kr(),tn(),tn(),sn(),kr();var JT=__name(({onSelect:e})=>J.createElement(at,{items:[{label:"1. Project (.commandcode/agents/)",value:"project"},{label:"2. Personal (~/.commandcode/agents/)",value:"personal"}],onSelect:t=>{"project"!==t.value&&"personal"!==t.value||e(t.value)},indicatorComponent:({isSelected:e})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY},e?">":" "),itemComponent:({isSelected:e,label:t})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY},` ${t}`)}),"LocationSelector");tn(),xr(),sn(),Ir(),$r(),kr();var XT=__name(({step:e,agentType:t,sysPrompt:n,ccToolDefinition:r,onAgentTypeChange:o,onSysPromptChange:s,onCCToolDefinitionChange:i,onAgentTypeSubmit:a,onSysPromptSubmit:l,onCCToolDefinitionSubmit:u})=>{const[d,m]=Z(!1),[g,h]=Z(!1),f=re(async e=>{const t=processBracketedPaste(e);if(!t.isPasteStart||d){if(!d||t.isPasteEnd){if(d&&t.isPasteEnd){m(!1);const e=await detectClipboardText();return void(e?s(e):t.cleanedContent&&s(t.cleanedContent))}s(e)}}else if(m(!0),t.isPasteEnd){m(!1);const e=await detectClipboardText();return void(e?s(e):t.cleanedContent&&s(t.cleanedContent))}},[d,s]),y=re(async e=>{const t=processBracketedPaste(e);if(!t.isPasteStart||g){if(!g||t.isPasteEnd){if(g&&t.isPasteEnd){h(!1);const e=await detectClipboardText();return void(e?i(e):t.cleanedContent&&i(t.cleanedContent))}i(e)}}else if(h(!0),t.isPasteEnd){h(!1);const e=await detectClipboardText();return void(e?i(e):t.cleanedContent&&i(t.cleanedContent))}},[g,i]);return"agentType"===e?J.createElement(J.Fragment,null,J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.WHITE},"Enter a unique identifier for your agent:"),t&&(Object.values(UC).some(e=>$e(e)===$e(t))||Object.keys(UC).some(e=>$e(e)===$e(t)))&&J.createElement(se,{color:Xn.RED},Pe.warning," This name conflicts with an existing tool name. Please choose a different name."),t&&isReservedAgentName($e(t))&&J.createElement(se,{color:Xn.RED},Pe.warning," This name is reserved. Reserved names:"," ",fC.join(", "))),J.createElement(TextInput,{showCursor:!0,value:t||"",onSubmit:()=>{if(null===t||0===t.trim().length)return;const e=$e(t);Object.values(UC).some(t=>$e(t)===e)||Object.keys(UC).some(t=>$e(t)===e)||isReservedAgentName(e)||a()},onChange:o,placeholder:"e.g. code-reviewer, unit-tester"})):"sysPrompt"===e?J.createElement(J.Fragment,null,J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.WHITE},"Enter the system prompt for your agent:"),J.createElement(se,{color:Xn.GRAY},"Be comprehensive for best results.")),J.createElement(TextInput,{showCursor:!0,value:n||"",onSubmit:()=>{null!==n&&0!==n.trim().length&&l()},onChange:f,placeholder:"You are a helpful coding reviewer..."})):"ccToolDefinition"===e?J.createElement(J.Fragment,null,J.createElement(se,{color:Xn.WHITE},"When should ","Command Code"," use this agent?"),J.createElement(TextInput,{showCursor:!0,value:r,onSubmit:()=>{0!==r.trim().length&&u()},onChange:y,placeholder:"e.g., Use this agent when you are done writing code..."})):null},"ManualFlow");tn(),kr();var ZT=__name(({onSelect:e})=>J.createElement(at,{items:[{label:"1. Generate with Command Code (recommended)",value:"recommended"},{label:"2. Manual configuration",value:"manual"}],onSelect:t=>{"recommended"!==t.value&&"manual"!==t.value||e(t.value)},indicatorComponent:({isSelected:e})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY},e?">":" "),itemComponent:({isSelected:e,label:t})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY},` ${t}`)}),"MethodSelector");tn(),xr(),tn(),zS(),kr();var e_=["·","○","◇","☆","✧","☆","◇","○","⌘"],t_=[12,5,4,4,4,4,4,5,16],n_=[5,4,4,4,4,4,5];function getWaveSymbol(e){const t=e%88;let n=0;for(let e=0;e<t_.length;e++)if(n+=t_[e],t<n)return e_[e];const r=t-58;n=0;for(let e=0;e<n_.length;e++)if(n+=n_[e],r<n)return e_[7-e];return e_[0]}function ShimmerText({text:e,offset:t,bg:n}){const r=ne(()=>e.split(""),[e]),o=__name(e=>{const n=e-(t-5);return n>=0&&n<wr.length?wr[n]:Sr},"getCharColor");return J.createElement(se,null,r.map((e,t)=>J.createElement(se,{key:`${t}:${e}`,color:o(t),backgroundColor:n},e)))}function CMDIcon({frame:e,color:t}){return J.createElement(se,{color:t??Zn,bold:!0},`${getWaveSymbol(e)} `)}function formatToken(e){return e<1e3?`${e}`:`${(e/1e3).toFixed(1)}k`}function formatTime3(e){return e<6e4?`${Math.floor(e/1e3)}s`:`${Math.floor(e/6e4)}m ${Math.floor(e%6e4/1e3)}s`}__name(getWaveSymbol,"getWaveSymbol"),__name(ShimmerText,"ShimmerText"),__name(CMDIcon,"CMDIcon"),__name(formatToken,"formatToken"),__name(formatTime3,"formatTime");var r_=__name(({status:e,timeElapsed:t,tokens:n})=>{const[r,o]=Z(0),[s,i]=Z(0),a=ee(n);a.current=n;const l=getTerminalWidth(),[u,d]=Z(()=>l>=72?"all":l>=42?"medium":"none");te(()=>{d(e=>"all"===e?l<68?l>=42?"medium":"none":"all":"medium"===e?l>=72?"all":l<38?"none":"medium":l>=72?"all":l>=42?"medium":"none")},[l]),te(()=>{const e=setInterval(()=>{o(e=>(e+1)%88),i(e=>{const t=a.current;if(e===t)return e;const n=t-e,r=e+Math.sign(n)*Math.max(1,Math.ceil(Math.abs(n)/10));return n>0?Math.min(r,t):Math.max(r,t)})},80);return()=>clearInterval(e)},[]);const m=r%(e.length+10),g="all"===u,h="medium"===u;return qS.statusRender({width:l,layoutMode:u,status:e,frame:r}),J.createElement(oe,{width:l,height:1,paddingLeft:0,marginLeft:0},J.createElement(oe,{flexShrink:0},J.createElement(se,{backgroundColor:ir.BG,color:ir.FG}," "),J.createElement(se,{backgroundColor:ir.BG},J.createElement(CMDIcon,{frame:4*r})),J.createElement(ShimmerText,{text:e,offset:m,bg:ir.BG}),J.createElement(se,{backgroundColor:ir.BG,color:ir.FG}," ")),g&&J.createElement(oe,{columnGap:1,marginLeft:1},J.createElement(se,{bold:!0,color:Xn.GRAY},"esc"),J.createElement(se,{color:Xn.DIM},"to interrupt"),J.createElement(se,{color:Xn.DIM},"•"),J.createElement(se,{color:Xn.DIM},formatTime3(t)),J.createElement(se,{color:Xn.DIM},"•"),J.createElement(se,{color:Xn.GRAY},Pe.arrowDown),J.createElement(se,{color:Xn.DIM},formatToken(Math.round(s)))),h&&J.createElement(oe,{marginLeft:1},J.createElement(se,{color:Xn.DIM},formatToken(Math.round(s)))))},"Status");$r(),Ir(),kr();var o_=__name(({description:e,onChange:t,onSubmit:n,loading:r,errorMessage:o})=>{const[s,i]=Z(!1),[a,l]=Z(0),[u,d]=Z(0);te(()=>{if(!r)return;const e=setInterval(()=>d(e=>e+1),50);return()=>clearInterval(e)},[r]);const m=re(()=>{0!==e.trim().length&&n()},[e,n]),g=re(async e=>{const n=processBracketedPaste(e);if(!n.isPasteStart||s){if(!s||n.isPasteEnd){if(s&&n.isPasteEnd){i(!1);const e=await detectClipboardText();return void(e?(l(e=>e+1),t(e)):n.cleanedContent&&(l(e=>e+1),t(n.cleanedContent)))}t(e)}}else if(i(!0),n.isPasteEnd){i(!1);const e=await detectClipboardText();return void(e?(l(e=>e+1),t(e)):n.cleanedContent&&(l(e=>e+1),t(n.cleanedContent)))}},[s,t]);return J.createElement(oe,{flexDirection:"column"},r?J.createElement(oe,null,J.createElement(CMDIcon,{frame:u}),J.createElement(se,{color:Xn.WHITE},"Generating agent from description...")):J.createElement(TextInput,{key:a,showCursor:!0,value:e,placeholder:"e.g. Help me review my code...",onChange:g,onSubmit:m}),o&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.RED},`${Pe.warning} ${o}`)))},"RecommendedFlow");tn(),kr();var s_=__name(({selectedTools:e,onToggleTool:t,onToggleCategory:n,onComplete:r})=>{const[o,s]=Z(!1),[i,a]=Z(0),l=ne(()=>[...FC.map(e=>e.name),...qC.map(e=>e.name)],[]),u=ne(()=>[{name:"All tools",tools:l},{name:"Read-only tools",tools:l.filter(e=>"read_file"===e||"read_directory"===e||"read_multiple_files"===e||"grep"===e)},{name:"Edit tools",tools:l.filter(e=>"edit_file"===e||"write_file"===e)},{name:"Execution tools",tools:l.filter(e=>"shell_command"===e)},{name:"Search tools",tools:l.filter(e=>"web_search"===e||"web_fetch"===e)},{name:"Other tools",tools:l.filter(e=>!["read_file","read_directory","read_multiple_files","grep","edit_file","write_file","shell_command","web_search","web_fetch"].includes(e))}].filter(e=>e.tools.length>0),[l]),d=ne(()=>{const e=[];return e.push({type:"continue",value:"continue"}),e.push({type:"divider",value:"divider-1"}),o?(u.forEach(t=>{e.push({type:"category",value:t.name})}),e.push({type:"divider",value:"divider-3"}),e.push({type:"toggle",value:"hide-advanced"}),e.push({type:"spacer",value:"spacer-1"}),e.push({type:"label",value:"Individual Tools:"}),l.forEach(t=>{e.push({type:"tool",value:t})})):(u.forEach(t=>{e.push({type:"category",value:t.name})}),e.push({type:"divider",value:"divider-2"}),e.push({type:"toggle",value:"show-advanced"})),e},[o,u,e,l]),m=d.map((t,n)=>{if("divider"===t.type)return{label:"─".repeat(30),value:n,type:"divider"};if("spacer"===t.type)return{label:"",value:n,type:"spacer"};if("label"===t.type)return{label:t.value,value:n,type:"label"};if("continue"===t.type)return{label:"[ Continue ]",value:n,type:"continue"};if("toggle"===t.type)return{label:"show-advanced"===t.value?"[ Show advanced options ]":"[ Hide advanced options ]",value:n,type:"toggle"};if("category"===t.type){const r=u.find(e=>e.name===t.value),o=r?.tools.every(t=>e.has(t));return r?.tools.some(t=>e.has(t)),{label:`${o?"[x]":"[ ]"} ${t.value}`,value:n,type:"category"}}return"tool"===t.type?{label:` ${e.has(t.value)?"[x]":"[ ]"} ${UC[t.value]||t.value}`,value:n,type:"tool"}:{label:"",value:n,type:"unknown"}}),g=m.filter(e=>"divider"!==e.type&&"spacer"!==e.type&&"label"!==e.type);return le((e,l)=>{if(l.upArrow)a(e=>{const t=e-1;return t<0?g.length-1:t});else if(l.downArrow)a(e=>{const t=e+1;return t>=g.length?0:t});else if(l.return||" "===e){const e=g[i];if(e){const i=d[e.value];if(!i)return;"continue"===i.type?r():"toggle"===i.type?(s(!o),a(0)):"category"===i.type?n(i.value):"tool"===i.type&&t(i.value)}}}),J.createElement(oe,{flexDirection:"column"},m.map((e,t)=>{const n=g.findIndex(t=>t.value===e.value),r=-1!==n&&n===i;if("divider"===e.type)return J.createElement(oe,{key:`divider-${t}`},J.createElement(se,{color:Xn.GRAY}," ",e.label));if("spacer"===e.type)return J.createElement(oe,{key:`spacer-${t}`,height:1});if("label"===e.type)return J.createElement(oe,{key:`label-${t}`},J.createElement(se,{color:Xn.GRAY}," ",e.label));const o="continue"===e.type;return J.createElement(oe,{key:`item-${t}`},J.createElement(se,{color:r?Xn.WHITE:Xn.GRAY,bold:o&&r},r?">":" "," ",e.label))}),J.createElement(oe,{marginTop:1},e.size===l.length&&J.createElement(se,{color:Xn.GRAY},"All tools selected"),e.size>0&&e.size<l.length&&J.createElement(se,{color:Xn.GRAY},e.size," tools selected"),0===e.size&&J.createElement(se,{color:Xn.GRAY},"No tools selected")))},"ToolsSelector");Qr(),Tw(),gw(),ns(),Nb(),Fr();var i_=__name(({onComplete:e})=>{const[t,n]=Z("location"),[r,o]=Z(!1),[s,i]=Z(null),[a,l]=Z("agentType"),u=ne(()=>[...FC.map(e=>e.name),...qC.map(e=>e.name)],[]),d=__name(()=>({location:null,method:null,agentType:null,sysPrompt:null,ccToolDefinition:"",recommendedMethodDescription:"",selectedTools:new Set(u)}),"getInitialConfig"),[m,g]=Z(d()),h=__name(t=>{n("location"),l("agentType"),g(d()),e(t)},"resetToDefaults"),f=__name(()=>{if("location"===t)return"Choose location";if("method"===t)return"Creation method";if("configuration"===t){if("recommended"===m.method)return"Describe what this agent should do and when it should be used (be comprehensive for best results)";if("agentType"===a)return"Agent type (identifier)";if("sysPrompt"===a)return"System prompt";if("ccToolDefinition"===a)return"Description (Tell Command Code when to use this agent)"}return"tools"===t?"Select tools":"summary"===t?"Confirm and save":""},"getSubText"),y=__name(e=>{g({...m,location:e}),n("method")},"handleLocationSelect"),w=__name(e=>{g({...m,method:e}),n("configuration")},"handleMethodSelect"),S=__name(async()=>{try{i(null),o(!0);const e=await getConfiguredProvider(),t=await isOAuthEnforced(),{token:r,oauthProvider:s}=await getOAuthCredentials({provider:e});validateOAuthToken({token:r,provider:e});const a={[Pt.INTERNAL_TEAM_FLAG_HEADER]:t.toString()};r&&(a[Pt.OAUTH_TOKEN]=`Bearer ${r}`,s&&(a[Pt.OAUTH_PROVIDER]=s));const l=getApiBaseUrl(),u=new Jy({baseUrl:l}),d=parseModelString(getConfiguredModel()).modelId,h=await u.post({headers:a,endpoint:At.ALPHA.AGENT.GENERATE,body:{description:m.recommendedMethodDescription,model:d}});g({...m,agentType:$e(h.agentName),sysPrompt:h.systemPrompt,ccToolDefinition:h.toolDescription}),n("tools")}catch(e){if(e instanceof Go&&400===e.status&&e.message?.toLowerCase().includes("insufficient credits")){const e=await getBillingLink({billingLink:null,setBillingLink:__name(()=>{},"setBillingLink")})??"https://commandcode.ai/settings/billing";i(`You have insufficient credits to make this request. Please purchase more credits to continue using Command Code: ${e}`)}else i("An error occurred while generating the agent. Please try again.")}finally{o(!1)}},"handleRecommendedSubmit"),E=__name(()=>{g({...m,agentType:$e(m.agentType)}),l("sysPrompt")},"handleManualAgentTypeSubmit"),C=__name(()=>{l("ccToolDefinition")},"handleManualSysPromptSubmit"),v=__name(()=>{n("tools")},"handleManualCCToolDefinitionSubmit"),k=__name(()=>{n("summary")},"handleToolsComplete"),T=__name(e=>{const t=new Set(m.selectedTools);t.has(e)?t.delete(e):t.add(e),g({...m,selectedTools:t})},"handleToggleTool"),_=__name(e=>{const t=[{name:"All tools",tools:u},{name:"Read-only tools",tools:u.filter(e=>"read_file"===e||"read_directory"===e||"read_multiple_files"===e||"grep"===e)},{name:"Edit tools",tools:u.filter(e=>"edit_file"===e||"write_file"===e)},{name:"Execution tools",tools:u.filter(e=>"shell_command"===e)},{name:"Search tools",tools:u.filter(e=>"web_search"===e||"web_fetch"===e)},{name:"Other tools",tools:u.filter(e=>!["read_file","read_directory","read_multiple_files","grep","edit_file","write_file","shell_command","web_search","web_fetch"].includes(e))}].find(t=>t.name===e);if(!t)return;const n=new Set(m.selectedTools);t.tools.every(e=>n.has(e))?t.tools.forEach(e=>n.delete(e)):t.tools.forEach(e=>n.add(e)),g({...m,selectedTools:n})},"handleToggleCategory");return J.createElement(oe,{flexDirection:"column",gap:1},J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.WHITE,bold:!0},"Create new agent"),J.createElement(se,{color:Xn.GRAY},f())),J.createElement(oe,null,"location"===t&&J.createElement(JT,{onSelect:y}),"method"===t&&J.createElement(ZT,{onSelect:w}),"configuration"===t&&"recommended"===m.method&&J.createElement(o_,{description:m.recommendedMethodDescription,onChange:e=>g({...m,recommendedMethodDescription:e}),loading:r,errorMessage:s,onSubmit:S}),"configuration"===t&&"manual"===m.method&&J.createElement(oe,{flexDirection:"column",gap:1},J.createElement(XT,{step:a,agentType:m.agentType,sysPrompt:m.sysPrompt,ccToolDefinition:m.ccToolDefinition,onAgentTypeChange:e=>g({...m,agentType:e}),onSysPromptChange:e=>g({...m,sysPrompt:e}),onCCToolDefinitionChange:e=>g({...m,ccToolDefinition:e}),onAgentTypeSubmit:E,onSysPromptSubmit:C,onCCToolDefinitionSubmit:v})),"tools"===t&&J.createElement(s_,{selectedTools:m.selectedTools,onToggleTool:T,onToggleCategory:_,onComplete:k}),"summary"===t&&J.createElement(QT,{config:m,onSaveComplete:h})))},"AgentNew");kr();var a_=__name(({onCancel:e})=>{const[t,n]=Z(null),[r,o]=Z(null),s=__name(e=>{n(e.value),o(null)},"handleSelect");return le((t,n)=>{n.escape&&e()}),J.createElement(oe,{gap:1,paddingLeft:1,paddingRight:1,width:"100%",borderColor:Xn.GRAY,borderStyle:"single",flexDirection:"column"},null===t&&J.createElement(YT,{handleSelect:s,createdAgentName:r}),"create_new_agent"===t&&J.createElement(i_,{onComplete:e=>{o(e),n(null)}}))},"AgentsConfig");kr(),tn(),Fr(),kr();var l_=[{label:"Compact Normal (default)",value:"default",description:"Summarize session when context limit reached."},{label:"Compact Fast",value:"fast",description:"Fast tiered compaction. Higher quality, uses more tokens."}],c_=__name(({onSelect:e,onCancel:t})=>{const[n,r]=Z(null);te(()=>{loadUserConfig().then(e=>{r(e.compactMode??"default")})},[]);const o=__name(t=>{e(t.value)},"handleSelect");if(le((e,n)=>{n.escape&&t()}),null===n)return null;const s=l_.findIndex(e=>e.value===n);return J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(oe,null,J.createElement(se,{color:Zn,bold:!0},"Select a compact mode to compact sessions")),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"Choose how Command Code handles automatic context compaction.")),J.createElement(at,{items:l_,onSelect:o,initialIndex:s>=0?s:0,indicatorComponent:({isSelected:e})=>J.createElement(se,{color:Xn.CYAN},e?Pe.pointer:" "),itemComponent:({isSelected:e,label:t})=>{const r=l_.find(e=>e.label===t),o=r?.value===n,s=l_.findIndex(e=>e.label===t);return J.createElement(oe,{flexDirection:"column"},J.createElement(oe,null,J.createElement(se,{color:e?Xn.CYAN:o?Xn.GREEN:Xn.WHITE},` ${s+1}. ${r?.label??t}`),o&&J.createElement(se,{color:Xn.GREEN}," ",Pe.tick)),J.createElement(se,{color:Xn.DIM},` ${r?.description??""}`))}}),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press "),J.createElement(se,{color:Xn.DIM,bold:!0},"Esc"),J.createElement(se,{color:Xn.DIM}," to cancel")))},"CompactModeSelector");tn(),kr(),tn(),xr(),sn(),Ir(),Ln(),tn();var u_=n(S(),"commandcode-images"),d_={"image/png":".png","image/jpeg":".jpg","image/gif":".gif","image/webp":".webp"};function saveTempImage(e,t){try{k(u_)||P(u_,{recursive:!0});const r=d_[e.mediaType]||".png",o=`image-${t}-${Date.now()}${r}`,s=n(u_,o),i=Buffer.from(e.data,"base64");return A(s,i),s}catch{return null}}function accumulateDelta(e,t,n){const r=n+t;return e===t||e===r?t:r&&e.startsWith(r)?t+e.slice(r.length):t&&e.startsWith(t)?t+e.slice(t.length):t+e}function useBracketedPaste(e){const{input:t,detectedContent:n,setInput:r,setDetectedImages:o,setDetectedContent:s,incrementInputKey:i}=e,a=re((e,t)=>{o(t=>[...t,e]),r(t),i()},[o,r,i]),l=ee(!1),u=ee(""),d=ee(null),m=ee(""),g=re(async(e,t)=>{let o=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n");const l=await detectDroppedImageFile(o);if(l)return void a(l,t);const u=await detectClipboardImage();if(u)return void a(u,t);let d=o;if(!d.trim()){const e=await detectClipboardText();d=e?e.replace(/\r\n/g,"\n").replace(/\r/g,"\n"):""}if(d){if(d.length>300){const e=`[Text#${n.length+1}]`;s(e=>[...e,d]),r(t+e)}else r(t+d);i()}},[a,n.length,s,r,i]),h=re(()=>{d.current&&clearTimeout(d.current),d.current=setTimeout(async()=>{if(l.current){const e=u.current,t=m.current;u.current="",m.current="",l.current=!1,d.current=null,e&&await g(e,t)}},500)},[g]);return{handlePaste:re(async e=>{const n=processBracketedPaste(e);if(n.isPasteStart&&n.isPasteEnd)return l.current&&(l.current=!1,u.current="",m.current="",d.current&&(clearTimeout(d.current),d.current=null)),await g(n.pastedContent??n.cleanedContent,n.textBeforePaste??""),!0;if(n.isPasteStart&&!l.current)return l.current=!0,m.current=n.textBeforePaste??t,u.current=n.pastedContent??n.cleanedContent,h(),!0;if(l.current&&!n.isPasteEnd)return void 0!==n.pastedContent?u.current=n.pastedContent:n.cleanedContent&&(u.current=accumulateDelta(n.cleanedContent,u.current,m.current)),h(),!0;if(l.current&&n.isPasteEnd){d.current&&(clearTimeout(d.current),d.current=null),void 0!==n.pastedContent?u.current=n.pastedContent:n.cleanedContent&&(u.current=accumulateDelta(n.cleanedContent,u.current,m.current));const e=u.current,t=m.current;return u.current="",m.current="",l.current=!1,await g(e,t),!0}if(n.isPasteEnd&&!n.isPasteStart&&!l.current)return!0;const r=e.slice(t.length);if(r.length>0){const e=await detectDroppedImageFile(r);if(e)return a(e,t),!0}return!1},[t,g,h,a]),resetPasteState:re(()=>{l.current=!1,u.current="",m.current="",d.current&&(clearTimeout(d.current),d.current=null)},[]),isPasting:re(()=>l.current,[])}}__name(saveTempImage,"saveTempImage"),Gn(),Qr(),tn(),$r(),Ir(),__name(accumulateDelta,"accumulateDelta"),__name(useBracketedPaste,"useBracketedPaste"),$r(),tn(),tn();var m_=["code --wait","cursor --wait","nano"],p_=["code","cursor","subl","atom","zed"];function ensureWaitFlag(e){const t=e.split(" ").filter(e=>e.length>0),n=t[0];return p_.some(e=>n===e||n.endsWith(`/${e}`))?t.some(e=>"--wait"===e||"-w"===e)?e:`${n} --wait ${t.slice(1).join(" ")}`.trim():e}function isCommandAvailable(e){try{const t=e.split(" ")[0],n="win32"===process.platform?"where":"command -v";return L(`${n} ${t}`,{stdio:"ignore",encoding:"utf-8"}),!0}catch{return!1}}function findFallbackEditor(){for(const e of m_)if(isCommandAvailable(e))return e;return null}__name(ensureWaitFlag,"ensureWaitFlag"),__name(isCommandAvailable,"isCommandAvailable"),__name(findFallbackEditor,"findFallbackEditor");var g_=class extends Error{static{__name(this,"NoEditorError")}constructor(){super("No editor configured"),this.name="NoEditorError"}};async function openInEditor2(e){let t=process.env.EDITOR||process.env.VISUAL||null;if(!t&&("true"===process.env.COMMAND_CODE_DISABLE_EDITOR_FALLBACK||(t=findFallbackEditor()),!t))throw new g_;t=ensureWaitFlag(t);const r=n(S(),`commandcode-${Date.now()}.md`);return await B(r,e),new Promise((e,n)=>{const o=t.split(" ").filter(e=>e.length>0),s=o[0],i=o.slice(1),a=D(s,[...i,r],{stdio:"inherit"});a.on("close",async()=>{try{const t=await z(r,"utf-8");await H(r),e(t.trimEnd())}catch(e){n(e)}}),a.on("error",async e=>{try{await H(r)}catch{}n(e)})})}function useExternalEditor({input:e,setInput:t,setInputKey:n,onEditorClose:r}){const[o,s]=Z(!1),[i,a]=Z(null),l=re(async()=>{if(!o){s(!0),a(null);try{const o=e.replace(/\n+$/,""),s=await openInEditor2(o);t(s),n(e=>e+1),r?.()}catch(e){a(e instanceof g_?"No text editor found. Set your EDITOR environment variable.\n\nSee: https://commandcode.ai/core-concepts/interactive-mode#setting-up-your-editor":`Editor error: ${e instanceof Error?e.message:String(e)}`)}finally{s(!1)}}},[e,t,r,o]),u=re(()=>{a(null)},[]);return{isEditorOpen:o,editorError:i,handleOpenInEditor:l,clearEditorError:u}}__name(function getNoEditorMessage(){return"No text editor found. Set your EDITOR environment variable.\n\nSee: https://commandcode.ai/core-concepts/interactive-mode#setting-up-your-editor"},"getNoEditorMessage"),__name(openInEditor2,"openInEditor"),__name(useExternalEditor,"useExternalEditor"),tn();var h_=__name((e={})=>{const{enabled:t=!0}=e,[n,r]=Z(null),o=ee(!1);return te(()=>{if(!t||o.current)return;let e=!0;return o.current=!0,rk().then(t=>{e&&r(t)}),()=>{e=!1}},[t]),{pr:n}},"usePRDetection");function loadGitignore(e){const t=mt(),r=n(e,".gitignore");if(k(r))try{const e=_(r,"utf8");t.add(e)}catch{}return t.add(".git"),t}kr(),tn(),kr(),__name(loadGitignore,"loadGitignore");var f_=__name(({onSelectFile:e,onClose:t,searchQuery:o=""})=>{const[i,l]=Z(process.cwd()),[u,d]=Z([]),[m,g]=Z(0),[h,f]=Z(0),y=o.trim()?15:10,w=re((e,t=process.cwd())=>{if(!e.trim())return[];const r=loadGitignore(t);if(e.endsWith("/")){const o=n(t,e);try{const e=I(o),i=[];return e.forEach(e=>{const a=n(o,e);try{const e=N(a),n=s(t,a);if(r.ignores(n))return;i.push({name:n,path:a,isDirectory:e.isDirectory()})}catch{}}),i.sort((e,t)=>e.isDirectory&&!t.isDirectory?-1:!e.isDirectory&&t.isDirectory?1:e.name.localeCompare(t.name)),i.slice(0,50)}catch{}}if(e.includes("/")){const o=e.split("/"),i=o.pop()||"",a=n(t,o.join("/"));try{const e=I(a),o=[],l=i.toLowerCase();return e.forEach(e=>{const u=e.toLowerCase();if(!i||u.includes(l)){const i=n(a,e);try{const e=N(i),n=s(t,i);if(r.ignores(n))return;o.push({name:n,path:i,isDirectory:e.isDirectory()})}catch{}}}),o.sort((e,t)=>e.isDirectory&&!t.isDirectory?-1:!e.isDirectory&&t.isDirectory?1:e.name.localeCompare(t.name)),o.slice(0,50)}catch{}}const o=[],i=e.toLowerCase(),a=__name((e,l=0)=>{if(!(l>8))try{I(e).forEach(u=>{const d=n(e,u);try{const e=N(d),n=s(t,d);if(r.ignores(n))return;const m=n.toLowerCase();(u.toLowerCase().includes(i)||m.includes(i))&&o.push({name:n,path:d,isDirectory:e.isDirectory()}),e.isDirectory()&&"node_modules"!==u&&a(d,l+1)}catch(e){}})}catch(e){}},"searchRecursively");return a(t),o.sort((e,t)=>{const n=e.name.toLowerCase(),r=t.name.toLowerCase(),o=n===i,s=r===i;if(o&&!s)return-1;if(!o&&s)return 1;const a=n.split("/").pop()||"",l=r.split("/").pop()||"",u=a.includes(i),d=l.includes(i);if(u&&!d)return-1;if(!u&&d)return 1;const m=e.name.split("/").length,g=t.name.split("/").length;return m!==g?m-g:e.name.localeCompare(t.name)}),o.slice(0,50)},[]),S=re(e=>{try{const t=I(e),o=[],i=process.cwd(),a=loadGitignore(i);"/"!==e&&o.push({name:"..",path:r(e),isDirectory:!0}),t.forEach(t=>{const r=n(e,t);try{const e=N(r),n=s(i,r);if(a.ignores(n))return;o.push({name:t,path:r,isDirectory:e.isDirectory()})}catch{}}),o.sort((e,t)=>e.isDirectory&&!t.isDirectory?-1:!e.isDirectory&&t.isDirectory?1:e.name.localeCompare(t.name)),d(o),g(0),f(0)}catch{}},[]);te(()=>{if(o.trim()){const e=w(o);d(e),g(0),f(0)}else S(i)},[i,S,o,w]),le((n,r)=>{if(r.escape)t();else if(r.upArrow)g(e=>{const t=Math.max(0,e-1);return t<h&&f(t),t});else if(r.downArrow)g(e=>{const t=Math.min(u.length-1,e+1);return t>=h+y&&f(t-y+1),t});else{if(r.rightArrow){const e=u[m];if(!e)return;return void(e.isDirectory&&!o.trim()&&l(a(e.path)))}if(r.return){const t=u[m];if(!t)return;return void e(t.path)}}});const E=u.slice(h,h+y);return J.createElement(oe,{flexDirection:"column",paddingLeft:1},J.createElement(oe,{marginBottom:1,flexDirection:"column"},J.createElement(se,{color:Xn.DIM},o.trim()?`Searching for: "${o}"`:`Files: ${i}`),J.createElement(se,{color:Xn.DIM},o.trim()?"↑↓ navigate • Enter to select • Esc to close":"↑↓ navigate • → to open folder • Enter to select • Esc to close")),0===E.length?J.createElement(se,{color:Xn.DIM},o.trim()?`No files found matching "${o}"`:"No files found in this directory"):E.map((e,t)=>{const n=h+t,r=e.name,o=n===m;return J.createElement(se,{key:e.path,color:o?Xn.GREEN:Xn.DIM},e.isDirectory?`${r}/`:r)}))},"FileList");tn(),sn(),Vr(),kr(),tn(),kr();var y_=__name(({usage:e})=>{if(!e)return null;const t=Math.min(e.current/e.limit*100,100),n=Math.max(0,Math.round(90-t));if(n>20)return null;const r=__name(e=>e>=90?Xn.RED:e>=70?Xn.YELLOW:Xn.DIM,"getColor"),o=t>=90?6:Math.round(t/100*6),s=6-o,i=Pe.square.repeat(o),a=Pe.squareLightShade.repeat(s),l=r(t);return J.createElement(oe,{paddingRight:3},J.createElement(se,{color:l},`Context left before auto-compact ${n}% `),J.createElement(se,{color:l},i),s>0&&J.createElement(se,{color:Xn.DIM},a))},"ContextUsage");tn(),Mo(),kr();var w_=__name(()=>{const[e,t]=Z("continuous learning"),[n,r]=Z(!1),[o,s]=Z(!1),i=ee([]),a=ee(0),l=ee(null),u=ee(!1);te(()=>{const e=__name(e=>"analyzing"===e.type?(u.current=!0,r(!0),s(!1),i.current=[],a.current=0,l.current&&(clearTimeout(l.current),l.current=null),void t(e.message)):u.current&&"analyzed"!==e.type?void i.current.push(e):"analyzed"===e.type?(u.current=!1,void(i.current.length>0?(a.current=0,n()):(r(!1),s(!1),t("continuous learning")))):void 0,"handleNewEvent"),n=__name(()=>{if(a.current>=i.current.length)return r(!1),s(!1),t("continuous learning"),void(i.current=[]);const e=i.current[a.current];t(e.message);const o="learned"===e.type||"refactored"===e.type;s(o);const u="learned"===e.type||"refactored"===e.type||"no_learnings"===e.type||"error"===e.type?15e3:2e3;l.current=setTimeout(()=>{a.current++,n()},u)},"cycleThroughNextEvent");return Av.on("new-event",e),()=>{Av.off("new-event",e),l.current&&clearTimeout(l.current)}},[]);const d=` ${n?Pe.squareSmallFilled:Pe.squareSmall} TASTE`,m=9+e.length+d.length>vo;let g=e;g=truncateString(m?{text:e,maxChars:vo}:{text:e,maxChars:vo-d.length-9-10});const h=o?void 0:Xn.DIM;return J.createElement(oe,{paddingRight:2},!m&&J.createElement(J.Fragment,null,J.createElement(BracketWrap,{color:Xn.DIM},"ctrl+t"),J.createElement(se,{color:Xn.DIM}," ")),J.createElement(se,{color:h},g),!m&&J.createElement(se,{color:er.TEXT},d))},"LearningFeedMini");tn(),kr();var S_=__name(({mode:e,pendingExitKey:t})=>t?J.createElement(se,{color:Xn.DIM},"Press Ctrl+C again to exit"):"auto-accept"===e?J.createElement(oe,{flexDirection:"row"},J.createElement(se,{color:gr},"» accept edits on "),J.createElement(BracketWrap,{color:Xn.DIM},"shift+tab")):"plan"===e?J.createElement(oe,{flexDirection:"row"},J.createElement(se,{color:pr},"plan mode "),J.createElement(BracketWrap,{color:Xn.DIM},"shift+tab")):J.createElement(se,{color:Xn.DIM},"? for shortcuts"),"ModeIndicator");tn(),kr(),qr();var b_=__name(({prInfo:e,showSeparator:t=!0})=>{if(!e)return null;if("OPEN"!==e.state&&"MERGED"!==e.state)return null;const n="OPEN"===e.state?Xn.DIM:hr.MERGED;return J.createElement(J.Fragment,null,t&&J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,{color:n},"PR "),J.createElement(Dr,{url:e.url,text:`#${e.number}`,color:n}))},"PRLinkBadge"),E_=__name(({indicator:e,showSeparator:t=!0})=>e?.visible?J.createElement(J.Fragment,null,t&&J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,{color:"connected"===e.type?Xn.GREEN:Xn.YELLOW},e.message)):null,"ConnectionIndicatorBadge"),C_=__name(({termWidth:e,indicatorText:t,isIDEIndicator:n,permissionMode:r="standard",prInfo:o,tasteLearning:s,contextUsage:i,connectionIndicator:a,pendingExitKey:l,updateStatus:u,updateFailedInfo:d,currentProvider:m,showProviderInfo:g,isBashMode:h,shareInfo:f,showShareNotification:y,unshareNotificationMessage:w,tasteNotificationMessage:S,creditWarning:E})=>{const C=e>=60;return J.createElement(J.Fragment,null,J.createElement(oe,{flexDirection:"column",paddingLeft:2},"auto-accept"!==r&&"plan"!==r||l?J.createElement(oe,{flexDirection:"row",justifyContent:"space-between",width:e-1},J.createElement(oe,{flexDirection:"row",columnGap:0},n&&!l?J.createElement(se,{color:cr},t):J.createElement(S_,{mode:r,pendingExitKey:l}),!l&&J.createElement(b_,{prInfo:o}),!l&&J.createElement(E_,{indicator:a})),C&&J.createElement(oe,{flexDirection:"column",alignItems:"flex-end"},s&&J.createElement(w_,null),i&&J.createElement(y_,{usage:i}))):J.createElement(J.Fragment,null,J.createElement(oe,{flexDirection:"row",justifyContent:"space-between",width:e-1},J.createElement(S_,{mode:r}),C&&s&&J.createElement(w_,null)),J.createElement(oe,{flexDirection:"row",justifyContent:"space-between",width:e-1},J.createElement(oe,{flexDirection:"row",columnGap:0},J.createElement(se,{color:n?cr:Xn.DIM},t),J.createElement(b_,{prInfo:o}),J.createElement(E_,{indicator:a})),C&&i&&J.createElement(y_,{usage:i}))),(u||d||g&&m)&&J.createElement(oe,{flexDirection:"row",columnGap:1},u&&J.createElement(se,null,Pe.tick," ","Command Code"," updated:"," ",J.createElement(se,{color:Xn.DIM},"v",u.updatedFrom),J.createElement(se,{color:Xn.DIM}," ",Pe.arrowRight," "),J.createElement(se,null,"v",u.updatedTo)),!u&&d&&J.createElement(se,{color:Xn.YELLOW,dimColor:!0},Pe.info," Update available:"," ",d.currentVersion," ",Pe.arrowRight," ",d.latestVersion),g&&m&&J.createElement(se,{color:Xn.GREEN,dimColor:!0},Pe.bullet," Provider:"," ",getProviderDisplayName(m)))),h&&J.createElement(oe,{paddingLeft:2},J.createElement(se,{color:Xn.GREEN},"! for bash mode")),y&&f&&J.createElement(oe,{paddingLeft:2},J.createElement(se,{color:Zn},"SHARED: ",f.url," (copied to clipboard)")),w&&J.createElement(oe,{paddingLeft:2},J.createElement(se,{color:w.includes("NOT SHARED")?Xn.RED:Zn},w)),S&&J.createElement(oe,{paddingLeft:2},J.createElement(se,{color:Zn},S)),E&&J.createElement(oe,{paddingLeft:2},J.createElement(se,{color:Xn.YELLOW},Pe.warning," ",E)))},"BottomIndicator");tn(),Mo(),kr();var v_=12,k_=__name(e=>{const t=new Date(e),n=(new Date).getTime()-t.getTime(),r=Math.floor(n/6e4),o=Math.floor(n/36e5),s=Math.floor(n/864e5);return r<1?"just now":r<60?`${r} min ago`:o<24?`${o}h ago`:`${s}d ago`},"formatRelativeTime"),T_=__name(e=>e.replace(/\s+/g," ").trim(),"normalizeSummary"),__=__name(e=>truncateString({text:T_(e),maxChars:Co}),"truncateMessage"),x_=__name(e=>e.title?T_(e.title):__(e.firstMessage),"getSessionSummary"),P_=__name(({onSelectSession:e,onClose:t})=>{const[n,r]=Z([]),[o,s]=Z(0),[i,a]=Z(0),[l,u]=Z(!0),[d,m]=Z(!1),[g]=Z(()=>getCurrentGitBranch());te(()=>{__name(async()=>{u(!0);const e=await _C.listSessions();r(e),u(!1)},"loadSessions")()},[]);const h=d&&g?n.filter(e=>e.gitBranch===g):n;if(le((n,r)=>{if(!r.escape)return r.ctrl&&"b"===n?(m(e=>!e),s(0),void a(0)):void(r.upArrow?s(e=>{const t=Math.max(0,e-1);return t<i&&a(t),t}):r.downArrow?s(e=>{const t=Math.min(h.length-1,e+1);return t>=i+v_&&a(t-v_+1),t}):r.return&&h.length>0&&o<h.length&&e(h[o].id));t()}),l)return J.createElement(oe,{flexDirection:"column",paddingLeft:2},J.createElement(se,{color:Xn.GRAY},"Loading sessions..."));if(0===h.length)return J.createElement(oe,{flexDirection:"column",paddingLeft:2},J.createElement(se,{color:Xn.GRAY},d&&g?`No sessions found for branch "${g}"`:"No previous sessions found"),J.createElement(se,{color:Xn.DIM},d?"Press ctrl+b to show all branches, ESC to cancel":"Press ESC to go back"));const f=h.slice(i,i+v_);return J.createElement(oe,{flexDirection:"column",paddingLeft:1,width:"100%"},J.createElement(se,{color:Xn.CYAN,bold:!0},"Resume Session"),J.createElement(oe,{marginTop:1}),J.createElement(oe,{columnGap:2,marginBottom:1},J.createElement(oe,{width:5},J.createElement(se,{color:Xn.GRAY}," ")),J.createElement(oe,{width:13},J.createElement(se,{color:Xn.GRAY},"Modified")),J.createElement(oe,{width:20},J.createElement(se,{color:Xn.GRAY},"Git Branch")),J.createElement(oe,{width:11},J.createElement(se,{color:Xn.GRAY},"# Messages")),J.createElement(oe,null,J.createElement(se,{color:Xn.GRAY},"Summary"))),J.createElement(oe,{columnGap:2},J.createElement(oe,{flexDirection:"column",width:5},f.map((e,t)=>{const n=i+t;return J.createElement(se,{key:`sel-${n}`,color:o===n?Xn.WHITE:Xn.GRAY},o===n?`${Pe.pointer} ${n+1}.`:` ${n+1}.`)})),J.createElement(oe,{flexDirection:"column",width:13},f.map((e,t)=>{const n=i+t;return J.createElement(se,{key:`mod-${e.id}`,color:o===n?Xn.WHITE:Xn.GRAY},k_(e.lastModified))})),J.createElement(oe,{flexDirection:"column",width:20},f.map((e,t)=>{const n=i+t;return J.createElement(se,{key:`branch-${e.id}`,color:o===n?Xn.WHITE:Xn.GRAY,wrap:"truncate-end"},e.gitBranch||"-")})),J.createElement(oe,{flexDirection:"column",width:11},f.map((e,t)=>{const n=i+t;return J.createElement(se,{key:`msg-${e.id}`,color:o===n?Xn.WHITE:Xn.GRAY},e.messageCount)})),J.createElement(oe,{flexDirection:"column"},f.map((e,t)=>{const n=i+t;return J.createElement(se,{key:`summary-${e.id}`,color:o===n?Xn.WHITE:Xn.GRAY,wrap:"truncate-end"},x_(e))}))),J.createElement(oe,{marginTop:1}),h.length>v_&&J.createElement(se,{color:Xn.DIM},"Showing ",i+1,"–",Math.min(i+v_,h.length)," ","of ",h.length,i>0?" · ↑ more":"",i+v_<h.length?" · ↓ more":""),J.createElement(se,{color:Xn.DIM},"↑↓ navigate · Enter select · ctrl+b ",d?`[branch: ${g??"unknown"}]`:"branch filter"," · ESC cancel"))},"SessionsResumeTable");function getImageHintText({selectedIndex:e,imageCount:t,inHistory:n}){return-1!==e?t>1?"← → · Delete to remove · Esc to deselect":"Delete to remove · Esc to deselect":n?"↓ · ↑ imgs":"↑ to select"}function buildImageRows({imageCount:e,rowWidth:t}){const n=[];let r=[],o=0;for(let s=0;s<e;s++){const e=`[Image #${s+1}]`.length,i=e+(r.length>0?1:0);r.length>0&&o+i>t?(n.push(r),r=[s],o=e):(r.push(s),o+=i)}return r.length>0&&n.push(r),n}function shouldSelectImageOnUpArrow({isOnFirstLine:e,imageCount:t,selectedImageIndex:n,historyIndex:r}){return e&&t>0&&-1===n&&-1===r}function nextImageIndex({currentIndex:e,imageCount:t}){return e===t-1?0:e+1}function prevImageIndex({currentIndex:e,imageCount:t}){return 0===e?t-1:e-1}function removeImageAt({images:e,index:t}){const n=e.filter((e,n)=>n!==t);return{remainingImages:n,nextSelectedIndex:n.length>0?n.length-1:-1}}function ImageLabel({index:e,isSelected:t,filePath:n,showSpaceBefore:r}){const o=`[Image #${e+1}]`,s=n?createOSC8Link(`file://${n}`,o,!1):o;return J.createElement(se,null,r?" ":"",t?J.createElement(se,{inverse:!0},o):s)}function ImageRowsDisplay({detectedImages:e,selectedImageIndex:t,imageTempPaths:n,termWidth:r,inHistory:o}){if(0===e.length)return null;const s=getImageHintText({selectedIndex:t,imageCount:e.length,inHistory:o}),i=Math.max(1,r-(s.length+2)),a=buildImageRows({imageCount:e.length,rowWidth:i});return J.createElement(oe,{flexDirection:"column",width:"100%",alignItems:"flex-end"},a.map((e,r)=>J.createElement(oe,{key:r,flexDirection:"row"},J.createElement(oe,{flexShrink:0,marginRight:1},0===r&&J.createElement(se,{color:Xn.DIM},s)),J.createElement(oe,{flexDirection:"row"},e.map((e,r)=>J.createElement(ImageLabel,{key:e,index:e,isSelected:e===t,filePath:n[e],showSpaceBefore:r>0}))))))}tn(),kr(),tn(),__name(getImageHintText,"getImageHintText"),__name(buildImageRows,"buildImageRows"),__name(shouldSelectImageOnUpArrow,"shouldSelectImageOnUpArrow"),__name(nextImageIndex,"nextImageIndex"),__name(prevImageIndex,"prevImageIndex"),__name(removeImageAt,"removeImageAt"),Hr(),__name(ImageLabel,"ImageLabel"),__name(ImageRowsDisplay,"ImageRowsDisplay"),tn();var A_=__name((e={})=>{const{enabled:t=!0,paused:n=!1}=e,[r,o]=Z(null),[s,i]=Z(!1),a=ee(!1),l=ee(null),u=ee(n),[d,m]=Z(!1),[g,h]=Z("connected"),f=ee(null),y=ee(null),w=re((e,t)=>{y.current&&(clearTimeout(y.current),y.current=null),h(e),m(!0),void 0!==t&&(y.current=setTimeout(()=>{m(!1)},t))},[]),S=re(()=>{y.current&&(clearTimeout(y.current),y.current=null)},[]),E=re(async(e=!1)=>{if(!a.current){a.current=!0;try{let t=l.current,n=t?.isConnected??!1;if(!n){t?.disconnect(),t=new rC,l.current=t;const r=e?200:500;n=await t.connect(r)}const r=f.current;if(null===r?n&&w("connected",3e3):r!==n&&(n?w("connected",2e3):w("disconnected",5e3)),f.current=n,i(n),n&&t){const n=e?500:1e3,r=await t.getContext(n);null!==r||t.isConnected||(t.disconnect(),l.current=null),o(r)}else o(null)}catch{!0===f.current&&w("disconnected",5e3),f.current=!1,i(!1),o(null),l.current?.disconnect(),l.current=null}finally{a.current=!1}}},[w]);te(()=>{const e=u.current;u.current=n,e&&!n&&t&&null!==VE()&&E(!1)},[n,t,E]),te(()=>{if(!t)return;if(null===VE())return;let e=null,n=!1,r=0;function schedule(t){n||(e=setTimeout(()=>{tick(!1)},t))}async function tick(e){if(u.current)return void schedule(500);if(await E(e),n)return;if(l.current?.isConnected)return r=0,void schedule(500);r+=1;const t=Math.min(r,6);schedule(Math.min(3e4,500*2**t)+250*Math.random())}return __name(schedule,"schedule"),__name(tick,"tick"),tick(!0),()=>{n=!0,e&&clearTimeout(e),S(),l.current?.disconnect(),l.current=null}},[t,E,S]);const C={visible:d,message:"connected"===g?`IDE ${Pe.tick}`:"run /ide",type:g};return{context:r,connected:s,refresh:E,connectionIndicator:C}},"useVSCodeContext");tn();var I_=__name(e=>{if(!e.activeFile&&!e.selection)return"";const t=["<ide-context>"];if(e.activeFile){const{relativePath:n,language:r,cursor:o}=e.activeFile;t.push(`File: ${n} (${r}, line ${o.line})`)}if(e.selection){const{text:n,startLine:r,endLine:o}=e.selection,s=e.activeFile?.language??"";t.push(`Selected lines ${r}-${o}:`),t.push(`\`\`\`${s}`);const i=n.replace(/```/g,"` ` `").replace(/<\/ide-context>/gi,"&lt;/ide-context&gt;");t.push(i),t.push("```")}return t.push("</ide-context>"),t.join("\n")+"\n"},"formatContextForPrompt");tn();var N_=__name((e,t)=>!(!e||!t?.selection&&!t?.activeFile?.relativePath),"hasIDEContext"),R_=__name((e,t,n)=>{const r=e?t?.selection:null;if(r)return`${r.lineCount} lines selected`;const o=e?t?.activeFile:null;if(o?.relativePath){const e=o.relativePath.split("/").pop()||"",t=n<80?15:n<120?25:40;return`In ${e.length>t?e.slice(0,t-1)+"…":e}`}return"? for shortcuts"},"getIndicatorText"),M_=["","","[118;5u"];function removeAltPCharacter(e){return e.includes("π")?e.replace(/π/g,""):null}function isPrecededByWhitespace(e){return!e||" "===e||"\n"===e||"\t"===e}__name(removeAltPCharacter,"removeAltPCharacter"),__name(isPrecededByWhitespace,"isPrecededByWhitespace");var L_=__name(()=>J.createElement(oe,{flexDirection:"column",paddingLeft:1},J.createElement(se,{color:Xn.DIM,bold:!0},"Available Shortcuts:"),J.createElement(oe,{columnGap:4},J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.DIM},"! for bash mode"),J.createElement(se,{color:Xn.DIM},"/ for commands"),J.createElement(se,{color:Xn.DIM},"@ for file paths"),J.createElement(se,{color:Xn.DIM},"shift + tab to toggle auto-accept")),J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.DIM},"double tap esc to clear input"),J.createElement(se,{color:Xn.DIM},"ctrl + j / shift + ⏎ for newline"),J.createElement(se,{color:Xn.DIM},"ctrl + g to open in editor"),J.createElement(se,{color:Xn.DIM},"ctrl + z to suspend")))),"ShortcutMenu"),$_=__name(({input:e,onSubmit:t,setInput:n,showCursor:r=!0,placeholder:o="Enter your input…",showFileList:i,setShowFileList:a,fileSearchQuery:l,setFileSearchQuery:u,onCommand:d,contextUsage:m,tasteLearning:g=!1,tasteUsage:h=!1,shareInfo:f,showShareNotification:y,unshareNotificationMessage:w,tasteNotificationMessage:S,creditWarning:E,updateStatus:C,updateFailedInfo:v,currentProvider:k,showProviderInfo:T,permissionMode:_="standard",onToggleAutoAccept:x,hintMessage:P,historyManager:A,pendingExitKey:I=null,onOverlayVisibilityChange:N,onDoubleEscapeEmpty:R,onAltP:M,isProcessing:L=!1,ideContextEnabled:$=!0})=>{const[D,O]=Z(0),[F,q]=Z(!1),[j,B]=Z(!1),[U,z]=Z(!1),[H,W]=Z(!1),[G,V]=Z(""),[Q,K]=Z(!1),Y=ee(0),X=ee(0),[ie,ce]=Z([]),[ue,de]=Z([]),[me,pe]=Z(-1),[ge,he]=Z(""),fe=ee(!1),ye=ee(!1),we=ee(void 0),[Se,be]=Z(-1),[Ee,Ce]=Z(""),ve=ee(0),{isEditorOpen:ke,editorError:Te,handleOpenInEditor:_e,clearEditorError:xe}=useExternalEditor({input:e,setInput:n,setInputKey:O,onEditorClose:__name(()=>{fe.current=!1},"onEditorClose")}),{handlePaste:Ae,resetPasteState:Ie,isPasting:Ne}=useBracketedPaste({input:e,detectedContent:ie,setInput:n,setDetectedImages:de,setDetectedContent:ce,incrementInputKey:__name(()=>O(e=>e+1),"incrementInputKey")}),{context:Re,connected:Me,refresh:Le,connectionIndicator:$e}=A_({enabled:$,paused:L}),{stdout:De}=ae(),Oe=De?.columns??80,{pr:Fe}=h_();te(()=>{const e=i||H||Q;N?.(e)},[i,H,Q,N]);const qe=re(()=>{de([]),pe(-1)},[]),je=re(()=>{n(""),B(!1),W(!1),V(""),K(!1),ce([]),qe(),he(""),Ie(),be(-1),Ce(""),O(e=>e+1)},[n,Ie,qe]),Be=re(()=>{fe.current=!0;const{text:t,cursor:r}=insertTextAt(e,ve.current,"\n");n(t),we.current=r,O(e=>e+1),setTimeout(()=>{fe.current=!1},0)},[e,n]);le(async(t,r)=>{if(-1!==me&&r.leftArrow)return void pe(prevImageIndex({currentIndex:me,imageCount:ue.length}));if(-1!==me&&r.rightArrow)return void pe(nextImageIndex({currentIndex:me,imageCount:ue.length}));if(r.upArrow){if(i||H||Q)return;const t=e.indexOf("\n"),r=-1===t||ve.current<=t;if(shouldSelectImageOnUpArrow({isOnFirstLine:r,imageCount:ue.length,selectedImageIndex:me,historyIndex:Se}))return void pe(ue.length-1);if(-1!==me&&pe(-1),0!==e.length&&-1===Se&&!r)return;const o=A?.count()??0;if(0===o)return;-1===Se&&Ce(e);const s=Math.min(Se+1,o-1);return void(s!==Se&&(be(s),n(A?.getAt(s)||""),O(e=>e+1)))}if(r.downArrow){if(i||H||Q)return;if(-1===Se)return;const t=e.lastIndexOf("\n");if(!(-1===t||ve.current>t))return;const r=Se-1;return be(r),n(-1===r?Ee:A?.getAt(r)||""),void O(e=>e+1)}if(""===t||r.ctrl&&"c"===t)return void qe();if(isCtrlKey({inputChar:t,key:r,letter:"g",ctrlCode:7}))return fe.current=!0,void _e();if(getIsExpandToolShortcut(r,t))return fe.current=!0,n(e),O(e=>e+1),void setTimeout(()=>{fe.current=!1},0);if(isNewlineShortcutKey({inputChar:t,key:r,isPasting:Ne()}))return ye.current=!0,Be(),void setTimeout(()=>{ye.current=!1},0);if(r.meta&&r.backspace)return void je();if(r.meta&&"w"===t)return fe.current=!0,void je();const o=r.ctrl&&"v"===t||M_.includes(t),s=r.meta&&"v"===t;if(o||s){if(o&&"darwin"===process.platform){const t=e;fe.current=!0;const r=await detectClipboardImage();return r&&(de(e=>[...e,r]),n(t),O(e=>e+1)),void(fe.current=!1)}}else if(!r.ctrl&&!r.meta||"u"!==t){if(r.ctrl&&"z"===t?.toLowerCase())return z(!0),void setTimeout(()=>{process.kill(process.pid,"SIGTSTP")},100);if(-1!==me&&(r.delete||r.backspace)){const{remainingImages:e,nextSelectedIndex:t}=removeImageAt({images:ue,index:me});return de([...e]),void pe(t)}if(r.escape){if(-1!==me)return void pe(-1);if(H)return;if(Q)return K(!1),n(ge),void O(e=>e+1);const t=Date.now();return t-Y.current<500?(e.length>0?je():R?.(),Y.current=0,X.current=0):(Y.current=t,F||j||(X.current=t)),q(!1),void B(!1)}F&&(r.backspace||r.delete)&&0===e.length&&q(!1)}});const Ue=re(async t=>{if(ke)return;const r=removeAltPCharacter(t);if(null!==r)return n(r),void M?.();const o=processBracketedPaste(t);if((o.isPasteStart||o.isPasteEnd||Ne())&&await Ae(t))return;if(fe.current)return void(fe.current=!1);-1!==Se&&be(-1);const s=1===t.length,l=t.slice(-1);if(s){if("?"===l&&!F)return q(!0),n(""),void O(e=>e+1);if("!"===l&&!j)return q(!1),B(!0),n(""),void O(e=>e+1)}if("/"!==l||H||"/"!==t||(W(!0),V("")),H&&!t.startsWith("/")&&(W(!1),V("")),H&&t.startsWith("/")){const e=t.substring(1);e.includes(" ")?(W(!1),V("")):V(e)}"@"!==l||i||isPrecededByWhitespace(t.length>1?t[t.length-2]:"")&&(a(!0),u(""));const d=t.lastIndexOf("@");if(t.length<e.length&&-1!==d&&" "===e.charAt(e.length-1)&&" "!==t.charAt(t.length-1)){const e=t.substring(d+1),n=!e.includes(" "),r=d>0?t[d-1]:"";n&&isPrecededByWhitespace(r)&&(a(!0),u(e))}if(i)if(t.length<e.length){const e=t.lastIndexOf("@");if(-1===e)a(!1),u("");else{const n=t.substring(e+1);u(n)}}else{const e=t.lastIndexOf("@");if(-1!==e){const n=t.substring(e+1),r=n.indexOf(" ");if(-1!==r){const e=n.substring(0,r);u(e),a(!1)}else u(n)}}F&&(t!==e||t.length<e.length)&&q(!1),Te&&xe(),0===t.length&&(B(!1),W(!1),V(""),K(!1),ce([]),u(""),he(""),Ie()),n(t)},[F,e,n,i,a,H,j,ue,Se,Ae,Ie,M,Te,xe,ke]),ze=re(async()=>{if(Le(),X.current=0,F)return void q(!1);let n=e.trim();if(!j&&n.startsWith("/")&&d&&"handled"===(await d(n)).status)return A?.add(n),B(!1),W(!1),V(""),qe(),ce([]),be(-1),void Ce("");be(-1),Ce("");let r=[];const o=ue.length>0,s=ie.length>0;if(!j&&o&&(r=[...ue]),!j&&s){let e=n;ie.forEach((t,n)=>{const r=`[Text#${n+1}]`;e.includes(r)&&(e=e.replace(r,t))}),n=e}n.length>0&&A?.add(n);const i=Re?.selection?{lines:Re.selection.lineCount,file:Re.activeFile?.relativePath?.split("/").pop()??Re.activeFile?.path?.split("/").pop()??"unknown",ide:Qk[VE()??""]??"IDE"}:void 0;t({input:n,role:j?"bash":"user",images:r,ideContext:Re?I_(Re):void 0,ideHint:i}),B(!1),W(!1),V(""),qe(),ce([])},[t,d,F,e,j,ue,ie,A,Le,qe]),He=re(t=>{const r=s(process.cwd(),t);let o;if(i&&""!==l){const t=e.lastIndexOf("@");o=-1!==t?e.substring(0,t+1)+r+" ":r+" "}else o=`${e}${r} `;n(o),a(!1),u(""),O(e=>e+1)},[n,a,e,i,l,u]),We=re(()=>{a(!1),u("")},[a,u]),Ge=re(t=>{if("/resume"===t)A?.add(t),be(-1),Ce(""),he(e),W(!1),V(""),K(!0),n(""),O(e=>e+1);else{const e=Object.values(Tk).includes(t),r=_k.has(t);W(!1),V(""),e&&r?(A?.add(t),be(-1),Ce(""),n(""),O(e=>e+1),d&&d(t)):(n(t+" "),O(e=>e+1))}},[d,n,e,A]),Ve=re(e=>{W(!1),V(""),n(e+" "),O(e=>e+1)},[n]),Qe=re(()=>{W(!1),V(""),n(""),be(-1),Ce(""),O(e=>e+1)},[n]),Ke=re(e=>{K(!1),n(""),he(""),be(-1),Ce(""),O(e=>e+1),d&&d(`/resume:${e}`)},[d,n]),Ye=re(()=>{K(!1),n(ge),be(-1),Ce(""),O(e=>e+1)},[ge,n]),Je=re(e=>{ve.current=e,we.current=void 0},[]),Xe=ne(()=>{const t=Fe&&("OPEN"===Fe.state||"MERGED"===Fe.state);return"auto-accept"===_||"plan"===_||Me||t?!F&&!Q:!F&&0===e.length&&!j&&!Q},[F,e,j,Q,_,Me,Fe]),Ze=ee(new Map),et=ne(()=>ue.map((e,t)=>{if(Ze.current.has(e))return Ze.current.get(e)??null;const n=saveTempImage(e,t+1);return Ze.current.set(e,n),n}),[ue]),tt=__name(()=>F||i||H||Q||U?0:Xe||I||j?3:4,"getBottomMargin");return J.createElement(oe,{width:"100%",flexDirection:"column",marginBottom:tt()},!Q&&J.createElement(oe,{flexDirection:"column",width:"100%"},J.createElement(ImageRowsDisplay,{detectedImages:ue,selectedImageIndex:me,imageTempPaths:et,termWidth:Oe,inHistory:-1!==Se}),J.createElement(se,{color:j?Xn.GREEN:Xn.GRAY},Pe.line.repeat(Oe)),J.createElement(TextInput,{key:D,value:e,placeholder:ke?"Save and close the editor to continue...":o,onChange:Ue,onSubmit:()=>{if(!ye.current)return Date.now()-X.current<100?(X.current=0,void Be()):void(i||H||Q||ke||ze());ye.current=!1},showCursor:!ke&&r&&-1===me,onCursorChange:Je,initialCursor:we.current,prefix:`${j?"!":Pe.pointer} `,prefixColor:j?Xn.GREEN:Xn.WHITE}),J.createElement(se,{color:j?Xn.GREEN:Xn.GRAY},Pe.line.repeat(Oe))),F&&J.createElement(L_,null),U&&J.createElement(oe,{paddingTop:1},J.createElement(se,{color:Xn.YELLOW},"Command Code has been suspended. Run `fg` to bring\n\t\t\t\t\t\tCommand Code back.")),i&&J.createElement(f_,{onSelectFile:He,onClose:We,searchQuery:l}),H&&J.createElement(Pk,{onSelectCommand:Ge,onInsertCommand:Ve,onClose:Qe,searchQuery:G}),Q&&J.createElement(P_,{onSelectSession:Ke,onClose:Ye}),!H&&(Xe||I)&&J.createElement(C_,{termWidth:Oe,indicatorText:R_(Me,Re,Oe),isIDEIndicator:N_(Me,Re),permissionMode:_,prInfo:Fe,tasteLearning:g,contextUsage:m,connectionIndicator:$e,pendingExitKey:I,updateStatus:C,updateFailedInfo:v,currentProvider:k,showProviderInfo:T,isBashMode:j,shareInfo:f,showShareNotification:y,unshareNotificationMessage:w,tasteNotificationMessage:S,creditWarning:E}),Te&&J.createElement(oe,{paddingLeft:1,flexDirection:"column"},J.createElement(se,{color:Xn.YELLOW},Te)))},"InputBox");tn(),Mo(),kr();var D_=__name(({messages:e})=>0===e.length?null:J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(oe,{marginBottom:0},J.createElement(se,{color:nr,inverse:!0},` Queued (${e.length}) `)),e.map((e,t)=>J.createElement(oe,{key:t},J.createElement(se,{color:Xn.DIM},Pe.pointerSmall," "),J.createElement(se,{color:Xn.DIM},truncateString({text:e.displayMessage??e.input,maxChars:80}))))),"QueuedMessages"),O_=J.memo(({queuedMessages:e,isProcessing:t,executionState:n,status:r,input:o,setInput:s,onSubmit:i,showFileList:a,setShowFileList:l,fileSearchQuery:u,setFileSearchQuery:d,onCommand:m,outputTokens:g=0,contextUsage:h,tasteLearning:f,tasteUsage:y,shareInfo:w,showShareNotification:S,unshareNotificationMessage:E,tasteNotificationMessage:C,updateStatus:v,updateFailedInfo:k,creditWarning:T,currentProvider:_,showProviderInfo:x,permissionMode:P,onToggleAutoAccept:A,hintMessage:I,historyManager:N,pendingExitKey:R,onResetPendingExitKey:M,onDoubleEscapeEmpty:L,retryAttempt:$,onAltP:D})=>{const[O,F]=Z(0),q=ee(o);return te(()=>{R&&o!==q.current&&o.length>0&&M?.(),q.current=o},[o,R,M]),te(()=>{if(!t)return void F(0);const e=setInterval(()=>{F(e=>e+1e3)},1e3);return()=>{clearInterval(e)}},[t]),J.createElement(oe,{flexDirection:"column"},J.createElement(D_,{messages:e}),J.createElement(oe,{flexDirection:"row",justifyContent:"space-between"},J.createElement(oe,{flexDirection:"column"},(t||n.isExecuting)&&null===$&&J.createElement(r_,{tokens:g,timeElapsed:O,status:n.isExecuting?`Executing: ${n.currentCommand}`:r}),I&&J.createElement(oe,{marginLeft:1},J.createElement(se,{color:Xn.DIM}," ","⎿"," ","Tip: ",I)))),J.createElement($_,{input:o,setInput:s,onSubmit:i,placeholder:"Ask your question...",showFileList:a,setShowFileList:l,fileSearchQuery:u,setFileSearchQuery:d,onCommand:m,contextUsage:h,tasteLearning:f,tasteUsage:y,shareInfo:w,showShareNotification:S,unshareNotificationMessage:E,tasteNotificationMessage:C,updateStatus:v,updateFailedInfo:k,creditWarning:T,currentProvider:_,showProviderInfo:x,permissionMode:P,onToggleAutoAccept:A,hintMessage:I,historyManager:N,pendingExitKey:!R||t||n.isExecuting?null:R,onDoubleEscapeEmpty:L,onAltP:D,isProcessing:t}))});tn(),JS(),nb(),jr(),Vr();var F_=__name(({onComplete:e,onCancel:t})=>{const[n,r]=Z(!1),[o,s]=Z(""),{authState:i,statusMessage:a,browserUrl:l,apiKeyInput:u,setApiKeyInput:d,handleApiKeySubmit:m,cancel:g}=useAuthFlow({onSuccess:__name((t,n)=>{const o=t.userName&&"API Key"!==t.userName&&"Manual API Key"!==t.userName?t.userName:"";s(o),isInternalTeamFlagEnforced()?r(!0):e(!0,o?`Logged in as ${o}`:"Logged in successfully")},"onSuccess"),onFailure:__name((t,n)=>{e(!1,n)},"onFailure"),onCancel:__name(()=>{t()},"onCancel")});return le((t,r)=>{if(r.ctrl&&"c"===t){if(n)return void e(!0,o?`Logged in as ${o}. Note: Anthropic authentication skipped.`:"Logged in successfully. Note: Anthropic authentication skipped.");g()}}),n?J.createElement(Or,{onSuccess:()=>{e(!0,o?`Logged in as ${o} with Anthropic`:"Logged in successfully with Anthropic")},onCancel:()=>{e(!0,o?`Logged in as ${o}. Note: Anthropic authentication skipped.`:"Logged in successfully. Note: Anthropic authentication skipped.")},onFailure:t=>{e(!0,o?`Logged in as ${o}. Anthropic auth failed: ${t}`:`Logged in successfully. Anthropic auth failed: ${t}`)}}):J.createElement(ZS,{authState:i,statusMessage:a,browserUrl:l,apiKeyInput:u,setApiKeyInput:d,handleApiKeySubmit:m})},"LoginOverlay");async function discoverOAuthMetadata(e){const t=new g(e),n=`${t.protocol}//${t.host}`;try{const e=`${n}/.well-known/oauth-authorization-server`,t=await fetchWithTimeout(e,{method:"GET",headers:{Accept:"application/json"}});if(t.ok){const e=await t.json();if(e.authorization_endpoint&&e.token_endpoint)return{authorizationEndpoint:e.authorization_endpoint,tokenEndpoint:e.token_endpoint,registrationEndpoint:e.registration_endpoint,scopes:e.scopes_supported}}}catch(e){dlog("[MCP] OAuth discovery endpoint not available",e)}try{const e=`${n}/.well-known/openid-configuration`,t=await fetchWithTimeout(e,{method:"GET",headers:{Accept:"application/json"}});if(t.ok){const e=await t.json();if(e.authorization_endpoint&&e.token_endpoint)return{authorizationEndpoint:e.authorization_endpoint,tokenEndpoint:e.token_endpoint,registrationEndpoint:e.registration_endpoint,scopes:e.scopes_supported}}}catch(e){dlog("[MCP] OIDC discovery not available",e)}return null}async function checkServerAuthRequirements(e){try{const t=await fetchWithTimeout(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",method:"initialize",id:0,params:{protocolVersion:Cw,capabilities:{},clientInfo:vw}})});return 401===t.status||403===t.status?{requiresAuth:!0,metadata:await discoverOAuthMetadata(e)||void 0}:{requiresAuth:!1}}catch(e){return{requiresAuth:!1,error:`Server unreachable: ${e instanceof Error?e.message:String(e)}`}}}async function registerOAuthClient({registrationEndpoint:e,clientName:t,redirectUris:n}){try{const r=await fetchWithTimeout(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_name:t,redirect_uris:n,token_endpoint_auth_method:"none",grant_types:["authorization_code","refresh_token"],response_types:["code"]})});if(r.ok){const e=await r.json();return{clientId:e.client_id,clientSecret:e.client_secret}}}catch(e){dlog("[MCP] OAuth client registration failed",e)}return null}tn(),tn(),Lw(),xw(),Fw(),$w(),qw(),Qw(),Kw(),Yw(),tn(),Kw(),Yw(),Mw(),Vw(),tn(),Uw(),xw(),Bn(),__name(discoverOAuthMetadata,"discoverOAuthMetadata"),__name(checkServerAuthRequirements,"checkServerAuthRequirements"),__name(registerOAuthClient,"registerOAuthClient"),kr();var q_=__name(({onClose:e})=>{const[t,n]=Z([]),[r,o]=Z(!0),[s,i]=Z(0),[a,l]=Z("list"),[u,d]=Z(null),m=re(async()=>{o(!0);try{const e=await listMcpServers(),t=getMcpConnectionManager().getConnectedServers(),r=await Promise.all(e.map(async e=>{const n=t.find(t=>t.name===e.name);let r,o,s="disconnected";return!1===e.config.enabled?s="disabled":n&&"connected"===n.status?(s="connected",r=n.tools.length):n&&"error"===n.status?(s="error",o=n.error):e.config.oauth&&(s=await hasTokens(e.name)?"authenticated":"requires_auth"),{name:e.name,config:e.config,scope:e.scope,status:s,toolCount:r,error:o}}));n(r)}catch{}finally{o(!1)}},[]);te(()=>{m()},[m]);const g=ne(()=>{const e=[];for(const n of["local","project","user"])e.push(...t.filter(e=>e.scope===n));return e},[t]),h=g[s]??null;le((t,n)=>{if(n.ctrl&&"c"===t)e();else if(n.escape)"actions"===a||"confirm-remove"===a?(l("list"),d(null)):e();else if("list"===a){if(n.upArrow&&(i(e=>Math.max(0,e-1)),d(null)),n.downArrow){if(0===g.length)return;const e=Math.max(0,g.length-1);i(t=>Math.min(e,t+1)),d(null)}n.return&&h&&(l("actions"),d(null))}});const f=__name(e=>{switch(e){case"connected":return J.createElement(se,{color:Xn.GREEN},Pe.tick);case"authenticated":return J.createElement(se,{color:Xn.CYAN},Pe.tick);case"requires_auth":return J.createElement(se,{color:Xn.YELLOW},Pe.warning);case"error":return J.createElement(se,{color:Xn.RED},Pe.cross);default:return J.createElement(se,{color:Xn.GRAY},Pe.circle)}},"getStatusIcon"),y=__name(e=>{switch(e.status){case"connected":return"connected"+(void 0!==e.toolCount?` · ${e.toolCount} tools`:"");case"authenticated":return"authenticated · not connected";case"requires_auth":return"requires authentication";case"error":return e.error||"error";case"disabled":return"disabled";default:return"not connected"}},"getStatusText"),w=__name(e=>{switch(e){case"local":return"Local MCPs";case"project":return"Project MCPs";case"user":return"User MCPs"}},"getScopeLabel"),S=__name(e=>{switch(e){case"local":return"~/.commandcode/projects/*/mcp.json";case"project":return".mcp.json";case"user":return"~/.commandcode/mcp.json"}},"getScopePath"),E=__name(async e=>{if(h)if("back"!==e.value)if("connected"!==e.value)if("authenticated"!==e.value)if("connect"!==e.value)if("auth"!==e.value)if("remove"!==e.value)if("disable"!==e.value)if("enable"!==e.value);else{d({text:`Enabling ${h.name}...`,color:Xn.CYAN,loading:!0});try{if(!await updateMcpServerStatus({name:h.name,enabled:!0,scope:h.scope}))return void d({text:`${Pe.cross} Failed to enable ${h.name}, server may no longer exist in ${h.scope} scope`,color:Xn.YELLOW});await m(),d({text:`${Pe.tick} Enabled ${h.name}`,color:Xn.GREEN})}catch(e){d({text:`${Pe.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Xn.RED})}}else{d({text:`Disabling ${h.name}...`,color:Xn.CYAN,loading:!0});try{const e=getMcpConnectionManager();if(!await updateMcpServerStatus({name:h.name,enabled:!1,scope:h.scope}))return void d({text:`${Pe.cross} Failed to disable ${h.name}, server may no longer exist in ${h.scope} scope`,color:Xn.YELLOW});await e.disconnectServer(h.name),await m(),d({text:`${Pe.tick} Disabled ${h.name}`,color:Xn.GREEN})}catch(e){d({text:`${Pe.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Xn.RED})}}else l("confirm-remove");else{if(!h.config.oauth)return void d({text:"No OAuth configured for this server",color:Xn.YELLOW});d({text:`Authenticating ${h.name}...`,color:Xn.CYAN,loading:!0});try{const e={authorizationUrl:h.config.oauth.authorizationUrl,tokenUrl:h.config.oauth.tokenUrl,clientId:h.config.oauth.clientId,clientSecret:h.config.oauth.clientSecret,scopes:h.config.oauth.scopes},t=await performOAuthFlow(h.name,e,{onStatus:__name(()=>{},"onStatus")});if(t.success){d({text:`${Pe.tick} Authenticated with ${h.name}`,color:Xn.GREEN});try{const e=getMcpConnectionManager();await e.ensureServerConnection(h.name)}catch{}await m()}else d({text:`${Pe.cross} Auth failed: ${t.error}`,color:Xn.RED})}catch(e){d({text:`${Pe.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Xn.RED})}}else{d({text:`Connecting ${h.name}...`,color:Xn.CYAN,loading:!0});try{const e=getMcpConnectionManager();await e.ensureServerConnection(h.name),d({text:`${Pe.tick} Connected to ${h.name}`,color:Xn.GREEN}),await m()}catch(e){d({text:`${Pe.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Xn.RED})}}else d({text:"Already authenticated",color:Xn.GREEN});else d({text:"Already connected",color:Xn.GREEN});else l("list")},"handleActionSelect"),C=__name(async e=>{if(h)if("yes"===e.value)try{const e=getMcpConnectionManager();"connected"===h.status&&await e.disconnectServer(h.name),await removeMcpServer({name:h.name,scope:h.scope}),l("list"),await m(),i(e=>Math.min(e,Math.max(0,g.length-2)))}catch(e){d({text:`${Pe.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Xn.RED}),l("actions")}else l("actions")},"handleRemoveConfirm");if(r)return J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Zn,bold:!0},"Manage MCP servers"),J.createElement(se,{color:Xn.DIM},"Loading..."));if("confirm-remove"===a&&h)return J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.RED,bold:!0},"Remove ",h.name,"?"),J.createElement(se,{color:Xn.DIM},"This will remove the server from ",h.scope," config."),J.createElement(oe,{marginTop:1},J.createElement(at,{items:[{label:"Yes, remove",value:"yes"},{label:"Cancel",value:"no"}],onSelect:C,indicatorComponent:({isSelected:e})=>J.createElement(se,{color:Xn.WHITE},e?">":" "),itemComponent:({isSelected:e,label:t})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY}," ",t)})),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"↑↓ navigate · Enter to select · Esc to cancel")));if("actions"===a&&h){const e=[],t="disabled"===h.status,n="connected"===h.status,r="authenticated"===h.status||n;return t&&e.push({label:"Enable",value:"enable"}),!t&&n&&e.push({label:"Connected",value:"connected"}),t||n||e.push({label:"Connect",value:"connect"}),!t&&h.config.oauth&&r&&e.push({label:"Authenticated",value:"authenticated"}),t||!h.config.oauth||r||e.push({label:"Authenticate",value:"auth"}),t||e.push({label:"Disable",value:"disable"}),e.push({label:"Remove",value:"remove"}),e.push({label:"Back",value:"back"}),J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Zn,bold:!0},h.name),J.createElement(oe,null,f(h.status),J.createElement(se,{color:Xn.DIM}," ",y(h))),J.createElement(oe,{marginTop:1},J.createElement(at,{items:e,onSelect:E,indicatorComponent:({isSelected:e})=>J.createElement(se,{color:Xn.WHITE},e?">":" "),itemComponent:({isSelected:e,label:t})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY}," ",t)})),u&&J.createElement(oe,{marginTop:1},u.loading&&J.createElement(se,{color:u.color},J.createElement(Oe,{type:"dots"})," "),J.createElement(se,{color:u.color},u.text)),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"↑↓ navigate · Enter to select · Esc to go back")))}let v=null;return J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Zn,bold:!0},"Manage MCP servers"),J.createElement(se,{color:Xn.DIM},t.length," ",1===t.length?"server":"servers"),0===t.length?J.createElement(oe,{marginTop:1,flexDirection:"column"},J.createElement(se,{color:Xn.DIM},"No MCP servers configured."),J.createElement(se,{color:Xn.DIM},'Use "cmd mcp add" to add a server.'),J.createElement(se,{color:Xn.DIM},"Docs: https://commandcode.ai/docs/mcp")):J.createElement(oe,{marginTop:1,flexDirection:"column"},g.map((e,t)=>{const n=e.scope!==v;v=e.scope;const r=t===s;return J.createElement(J.Fragment,{key:e.name},n&&J.createElement(oe,{marginTop:0===t?0:1},J.createElement(se,{bold:!0},w(e.scope)),J.createElement(se,{color:Xn.DIM}," (",S(e.scope),")")),J.createElement(oe,{paddingLeft:1},J.createElement(se,{color:r?Xn.WHITE:Xn.GRAY},r?"› ":" "),J.createElement(se,{color:r?Xn.WHITE:void 0,bold:r},e.name),J.createElement(se,{color:Xn.DIM}," · "),f(e.status),J.createElement(se,{color:"connected"===e.status?Xn.GREEN:"authenticated"===e.status?Xn.CYAN:"requires_auth"===e.status?Xn.YELLOW:Xn.GRAY}," ",y(e))))})),u&&J.createElement(oe,{marginTop:1},u.loading&&J.createElement(se,{color:u.color},J.createElement(Oe,{type:"dots"})," "),J.createElement(se,{color:u.color},u.text)),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"↑↓ navigate · Enter to select · Esc to close")))},"McpManager");tn(),sn(),Dn(),kr();var j_=__name(({onClose:e})=>{const[t,n]=Z([]),[r,o]=Z(0),[s,i]=Z(!0),[a,l]=Z(null);te(()=>{__name(async()=>{try{const e=await discoverMemoryFiles(process.cwd());n(e),i(!1)}catch(e){l(e instanceof Error?e.message:"Failed to discover memory files"),i(!1)}},"loadMemoryFiles")()},[]);const u=__name(async t=>{try{await openInEditor(t.path),e()}catch(t){console.error("Error opening memory file. Please ensure you have an editor set up."),e()}},"handleOpenInEditor"),d=t.filter(e=>"project"===e.type||"user"===e.type);if(le((t,n)=>{n.escape?e():n.upArrow?o(e=>Math.max(0,e-1)):n.downArrow?o(e=>Math.min(d.length-1,e+1)):(n.return&&d[r]&&u(d[r]),"1"===t&&d[0]&&u(d[0]),"2"===t&&d[1]&&u(d[1]))}),s)return J.createElement(oe,{paddingLeft:1,paddingTop:1},J.createElement(se,{color:Xn.DIM},"Loading memory files..."));if(a)return J.createElement(oe,{paddingLeft:1,paddingTop:1},J.createElement(se,{color:Xn.RED},Pe.cross," ",a));const m=d.map((e,t)=>{const n=t+1;let r="",o="";return"project"===e.type?(r=`${n}. Project memory`,o=e.exists?"Checked in at ./AGENTS.md":"Not found at ./AGENTS.md"):"user"===e.type&&(r=`${n}. User memory`,o=e.exists?"Saved in ~/.commandcode/AGENTS.md":"Not found in ~/.commandcode/AGENTS.md"),{label:r,value:e.path,description:o}});return J.createElement(oe,{flexDirection:"column",width:"100%",borderStyle:"single",borderColor:Xn.GRAY,paddingTop:1,paddingBottom:1,paddingLeft:2,paddingRight:2},J.createElement(oe,null,J.createElement(se,{color:Xn.WHITE,bold:!0},"Select memory to edit:")),J.createElement(oe,{columnGap:4,marginTop:1},J.createElement(oe,{flexDirection:"column"},m.map((e,t)=>J.createElement(se,{key:t,color:r===t?Xn.WHITE:Xn.DIM},r===t?`${Pn} `:" ",e.label))),J.createElement(oe,{flexDirection:"column"},m.map((e,t)=>J.createElement(se,{key:t,color:r===t?Xn.WHITE:Xn.DIM},e.description)))))},"MemorySelector");tn(),sn(),Hh(),MS(),oo(),Vr(),kr(),tn(),kr();var B_=pt()?"⠶":"#";function AssistantMessage({content:e}){return J.createElement(oe,null,J.createElement(se,{color:mr},B_),J.createElement(oe,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},J.createElement(Markdown,null,e)))}function BashMessage({command:e,output:t,isPending:n=!1,hasError:r=!1}){let o=Xn.GREEN,s=Pe.tick,i="default",a=t||"(No output)";n&&(o=Xn.YELLOW,s=Pe.arrowRight,i=Xn.YELLOW,a="Executing…"),r&&(o=Xn.RED,s=Pe.cross,i=Xn.RED);const l=ne(()=>buildTreeConnectors(a),[a]);return J.createElement(oe,null,J.createElement(se,{color:o},s),J.createElement(oe,{flexDirection:"column",marginLeft:1},J.createElement(oe,null,J.createElement(se,{color:Xn.GRAY},"$ "),J.createElement(se,{color:o,bold:!0},e)),J.createElement(oe,{columnGap:1,marginLeft:1},J.createElement(se,{color:br},l),J.createElement(se,{color:i,wrap:"wrap"},a))))}function CommandResultMessage({message:e,details:t,hasError:n=!1}){const r=n?Xn.YELLOW:void 0,o=ne(()=>buildTreeConnectors(e),[e]);return J.createElement(oe,{flexDirection:"column",marginBottom:0,marginTop:-1},J.createElement(oe,{columnGap:1},J.createElement(se,{color:br},o),J.createElement(oe,{flexGrow:1,flexShrink:1,minWidth:0},J.createElement(se,{color:r},e))),t&&J.createElement(oe,{marginLeft:3},J.createElement(se,{color:Xn.DIM},"See ",t)))}function ErrorMessage({content:e}){const t=e.includes("Interrupted by user");return J.createElement(oe,null,J.createElement(se,{color:Xn.RED},t?Pe.pointer:Pe.warning),J.createElement(oe,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},t?J.createElement(se,{color:Xn.RED,wrap:"wrap"},e):J.createElement(Markdown,{color:Xn.RED},e)))}function IDEStatusMessage({status:e,ide:t,details:n}){return J.createElement(oe,{flexDirection:"column"},J.createElement(oe,null,"connected"===e&&J.createElement(se,null,J.createElement(se,{color:Xn.GREEN},Pe.tick),J.createElement(se,null," Connected to "),J.createElement(se,{color:Xn.CYAN},t)),"installed"===e&&J.createElement(se,null,J.createElement(se,{color:Xn.GREEN},Pe.tick),J.createElement(se,null," Installed for "),J.createElement(se,{color:Xn.CYAN},t)),"needs_reload"===e&&J.createElement(se,null,J.createElement(se,{color:Xn.YELLOW},Pe.circle),J.createElement(se,null," "),J.createElement(se,{color:Xn.CYAN},t),J.createElement(se,null," extension needs reload")),"failed"===e&&J.createElement(se,null,J.createElement(se,{color:Xn.RED},Pe.cross),J.createElement(se,null," Install failed")),"not_in_ide"===e&&J.createElement(se,null,J.createElement(se,{color:Xn.YELLOW},Pe.circle),J.createElement(se,null," Not in IDE"))),n?.map((e,t)=>J.createElement(se,{key:t,color:Xn.DIM}," ",e)))}function AutoCompactMessage({content:e}){return J.createElement(oe,{flexGrow:1,flexShrink:1,minWidth:0},J.createElement(se,{color:Xn.DIM},Pe.bullet," ",e))}function TasteSkipMessage(){return J.createElement(oe,null,J.createElement(oe,{flexShrink:0},J.createElement(se,{backgroundColor:er.BADGE_BG,color:er.BADGE_FG,bold:!0},Jv)),J.createElement(se,{color:Xn.DIM}," Skipped. Run "),J.createElement(se,{color:yr.CODE},"/learn-taste"),J.createElement(se,{color:Xn.DIM}," or "),J.createElement(se,{color:yr.CODE},"cmd learn-taste"),J.createElement(se,{color:Xn.DIM}," anytime."))}function HookWarningMessage({content:e}){return J.createElement(oe,null,J.createElement(se,{color:Xn.YELLOW},Pe.warning),J.createElement(oe,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},J.createElement(se,{color:Xn.YELLOW},e)))}function InfoMessage({content:e,metadata:t}){return t?.isTasteSkip?J.createElement(TasteSkipMessage,null):t?.isAutoCompact?J.createElement(AutoCompactMessage,{content:e}):t?.isHookWarning?J.createElement(HookWarningMessage,{content:e}):J.createElement(oe,{flexGrow:1,flexShrink:1,minWidth:0},J.createElement(se,{color:Xn.DIM},Pe.bullet," ",e))}__name(AssistantMessage,"AssistantMessage"),tn(),kr(),__name(BashMessage,"BashMessage"),tn(),kr(),__name(CommandResultMessage,"CommandResultMessage"),tn(),kr(),__name(ErrorMessage,"ErrorMessage"),tn(),kr(),__name(IDEStatusMessage,"IDEStatusMessage"),tn(),kr(),__name(AutoCompactMessage,"AutoCompactMessage"),__name(TasteSkipMessage,"TasteSkipMessage"),__name(HookWarningMessage,"HookWarningMessage"),__name(InfoMessage,"InfoMessage"),tn(),tn(),sn();kr(),tn(),oo();var U_="cmd";function getBinNames(){const e=getPackageJson();return e.bin&&"object"==typeof e.bin?Object.keys(e.bin):e.bin&&"string"==typeof e.bin?[e.name]:[U_]}function getInvokedCommandName(){try{const e=getBinNames(),n=process.argv[1];if(!n)return e[0]||U_;const r=t.basename(n).replace(/\.(m?[jt]s|cjs)$/,"");return e.includes(r)?r:e[0]||U_}catch{return U_}}function HelpMessage(){const e=getInvokedCommandName(),t=ne(()=>uC.filter(e=>!("/provider"===e.key&&!isInternalTeamFlagEnforced())),[]);return J.createElement(oe,{flexDirection:"column",paddingY:1},J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(oe,null,J.createElement(se,{bold:!0},"Command Code"),J.createElement(se,{color:Xn.GRAY}," v","0.22.8")),J.createElement(se,{color:Xn.GRAY},sC)),J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(se,{bold:!0},"Usage"),J.createElement(oe,{paddingLeft:2},J.createElement(se,null,e," <command> [options]"))),J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(se,{bold:!0},"Options"),J.createElement(oe,{flexDirection:"column",paddingLeft:2},cC.map(t=>J.createElement(oe,{key:t.key},J.createElement(se,null,t.key.replace(/^cmd/,e).padEnd(iC)),J.createElement(se,{color:Xn.GRAY},t.description))))),J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(se,{bold:!0},"Commands"),J.createElement(oe,{flexDirection:"column",paddingLeft:2},dC.map(t=>J.createElement(oe,{key:t.key},J.createElement(se,null,t.key.replace(/^cmd/,e).padEnd(iC)),J.createElement(se,{color:Xn.GRAY},t.description))))),J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(se,{bold:!0},"Slash Commands"),J.createElement(oe,{flexDirection:"column",paddingLeft:2},t.map(e=>J.createElement(oe,{key:e.key},J.createElement(se,null,e.key.padEnd(iC)),J.createElement(se,{color:Xn.GRAY},e.description))))),J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(se,{bold:!0},"Keyboard Shortcuts"),J.createElement(oe,{flexDirection:"column",paddingLeft:2},lC.map(e=>J.createElement(oe,{key:e.key},J.createElement(se,null,e.key.padEnd(iC)),J.createElement(se,{color:Xn.GRAY},e.description))))),J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(se,{bold:!0},"Examples"),J.createElement(oe,{flexDirection:"column",paddingLeft:2},pC.map(t=>J.createElement(oe,{key:t.key},J.createElement(se,null,t.key.replace(/^cmd/,e).padEnd(iC)),J.createElement(se,{color:Xn.GRAY},t.description))))),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.CYAN},Pe.pointer),J.createElement(se,{color:Xn.GRAY}," ",gC.replace(/cmd/,e))),J.createElement(oe,{flexDirection:"column"},J.createElement(se,{bold:!0},"Links"),J.createElement(oe,{flexDirection:"column",paddingLeft:2},mC.map(e=>J.createElement(oe,{key:e.key},J.createElement(se,null,e.key.padEnd(iC)),J.createElement(se,{color:Xn.CYAN},e.description))))))}function SystemMessage({content:e}){return e.includes("KEYBOARD SHORTCUTS")&&e.includes("COMMANDS")?J.createElement(HelpMessage,null):J.createElement(oe,{flexDirection:"column"},J.createElement(se,{wrap:"wrap"},J.createElement(Markdown,null,e)))}__name(getBinNames,"getBinNames"),__name(getInvokedCommandName,"getInvokedCommandName"),Vr(),__name(HelpMessage,"HelpMessage"),__name(SystemMessage,"SystemMessage"),tn(),Dn(),Hr(),kr();var z_={"Interrupted by user":"Interrupted by user","Insufficient credits":_n};function UserMessage({content:e,images:t,imageCount:n=0,ideHint:r}){const o="Interrupted by user"===e,s="Insufficient credits"===e,i=e.startsWith("Error:"),a=o||s||i,l=a&&z_[e]||e,u=null!=t?t.length:n,d=ee(null);null===d.current&&t&&t.length>0&&(d.current=t.map((e,t)=>saveTempImage(e,t+1)));const m=d.current??[];return J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{backgroundColor:a?void 0:dr.BG,paddingRight:1},J.createElement(se,{color:a?Xn.RED:dr.POINTER,bold:!a},Pe.pointer),J.createElement(oe,{marginLeft:1},J.createElement(se,{color:a?Xn.RED:Xn.WHITE,wrap:"wrap"},l))),u>0&&J.createElement(oe,{marginLeft:1},J.createElement(se,{color:Xn.DIM},"⎿"," ",Array.from({length:u},(e,t)=>{const n=m[t],r=`[Image #${t+1}]`;return null!=n?createOSC8Link(`file://${n}`,r,!1):r}).join(" "))),r&&!a&&J.createElement(oe,{marginLeft:2},J.createElement(se,{color:br},Qv),J.createElement(se,{color:Xn.DIM}," ","Selected ",r.lines," ",1===r.lines?"line":"lines"," from ",r.file," in ",r.ide)))}function renderFeedEntry(e,t){if("user"===e.role){const t=Array.isArray(e.metadata?.images)?e.metadata.images:void 0,n=e.metadata?.ideHint;return J.createElement(UserMessage,{content:e.input,images:t,ideHint:n})}return"assistant"===e.role?J.createElement(AssistantMessage,{content:e.input}):"tool"===e.role?J.createElement(ToolMessage,{name:xS(e.name||""),input:e.input,output:e.output||"",isPending:kS(e),hasError:vS(e),metadata:e.metadata,expandedOutput:t}):"bash"===e.role?J.createElement(BashMessage,{command:e.command||"",output:e.output||"",isPending:kS(e),hasError:vS(e)}):"system"===e.role?J.createElement(SystemMessage,{content:e.input}):"info"===e.role?J.createElement(InfoMessage,{content:e.input,metadata:e.metadata}):"error"===e.role?J.createElement(ErrorMessage,{content:e.input}):"command-result"===e.role?J.createElement(CommandResultMessage,{message:e.input,details:e.details,hasError:e.hasError??!1}):"ide-status"===e.role?J.createElement(IDEStatusMessage,{status:e.status,ide:e.ide,details:e.details}):null}function getModelShortName(e){const t=findModelById(e);return t?t.name.toLowerCase().replaceAll(" ","-"):e}function getProviderShortName(e){return e?Qt[e]?.shortLabel??e.slice(0,4):""}function TranscriptDivider({count:e,width:t}){const n=` ${e} hidden messages [ctrl+e to expand more] `,r=Math.max(0,Math.floor((t-n.length)/2)),o="─".repeat(r);return J.createElement(oe,{marginBottom:1},J.createElement(se,{color:ur},o),J.createElement(BracketedText,{text:n,color:ur}),J.createElement(se,{color:ur},o))}__name(UserMessage,"UserMessage"),__name(renderFeedEntry,"renderFeedEntry"),__name(getModelShortName,"getModelShortName"),__name(getProviderShortName,"getProviderShortName"),__name(TranscriptDivider,"TranscriptDivider");var H_=J.memo(({feed:e,showHeader:t=!1,staticKey:n,expandedToolOutput:r=!1,currentModel:o,currentProvider:s,hiddenCount:i=0})=>{const a=i>0?{role:"transcript-divider",count:i}:null,l=[...t?["header"]:[],...a?[a]:[],...e],u=useTerminalWidth(),d=ne(()=>CT(u),[u]),m=ne(()=>xT(u),[u]),g=ne(()=>getPackageJson().version||"0.0.0",[]),h=ne(()=>getGitHeaderInfo(),[]),f=ne(()=>{const e=process.cwd(),t=process.env.HOME??process.env.USERPROFILE??"";return e.replace(t,"~")},[]),y=o?getModelShortName(o):"sonnet-4.6",w="taste-1",S=isInternalTeamFlagEnforced()&&!process.env.CMD_DEMO,E=S?" · co":"",C=S&&s?` · ${getProviderShortName(s)}`:"";return J.createElement(ie,{items:l,key:n,style:{width:"100%"}},e=>{if("object"==typeof e&&"transcript-divider"===e.role)return J.createElement(TranscriptDivider,{key:"transcript-divider",count:e.count,width:u});if("header"===e)return"compact"===m?J.createElement(oe,{key:"header",marginBottom:1,flexDirection:"row"},J.createElement(oe,{width:TT,flexShrink:0},J.createElement(PT,null,kT)),J.createElement(oe,{flexDirection:"column",marginLeft:2},J.createElement(oe,null,J.createElement(se,{bold:!0},"Command Code"),J.createElement(se,{color:ur}," ","v",g)),J.createElement(se,{color:ur},"models: ",y," · ",w,E),J.createElement(se,{color:ur},f,h&&h.isLocal&&h.branch&&` (${h.branch})`))):J.createElement(oe,{key:"header",marginBottom:1,flexDirection:"column"},J.createElement(PT,null,d.trimEnd()),J.createElement(oe,{flexDirection:"column",marginTop:1},J.createElement(oe,null,J.createElement(se,{color:ur},"# "),J.createElement(se,{bold:!0},"Command Code"),J.createElement(se,{color:ur}," v",g)),J.createElement(se,{color:ur},"# models: ",y," · ",w,C,E),J.createElement(oe,null,J.createElement(se,{color:ur},"# ",f,h&&h.isLocal&&h.branch&&J.createElement(se,{color:ur}," ","(branch:"," ",h.branch,")")))));const t=e,n=renderFeedEntry(t,r);return J.createElement(oe,{key:t.id,paddingBottom:1,width:"90%"},n)})});tn(),MS(),Qr(),kr();var W_=X(__name(function LiveAgentStatusInner2({entry:e}){const t=xS(e.name||"Agent"),n=e.input||"",r=n.split(/[.\n]/)[0],o=r?r+(n.includes(".")||n.includes("\n")?".":""):n,s=e.metadata?.tokensUsed||0,i=e.metadata?.elapsedSeconds||0,a=e.metadata?.recentTools||[],[l,u]=Z(".");return te(()=>{const e=setInterval(()=>{u(e=>"..."===e?".":e+".")},500);return()=>clearInterval(e)},[]),J.createElement(oe,{flexDirection:"column",marginBottom:1,width:"90%"},J.createElement(oe,null,J.createElement(se,{backgroundColor:ar.BG,color:ar.FG,bold:!0},` ${t} `),o&&J.createElement(se,null," ","(",o,")")),J.createElement(oe,{columnGap:1,marginLeft:1},J.createElement(se,null,"⎿"," "),J.createElement(se,{color:Xn.GRAY},"Running (",formatTime2(i)," | ",formatTokens(s),")",l)),a.length>0&&J.createElement(oe,{flexDirection:"column",marginLeft:1},a.map((e,t)=>{const n=xS(e.name);return J.createElement(oe,{key:t,columnGap:1},J.createElement(se,{color:Xn.GRAY},"⎿"),J.createElement(se,{color:Xn.GRAY}," ",n),e.input&&J.createElement(se,{color:Xn.GRAY},"(",e.input,")"))})))},"LiveAgentStatusInner")),G_=X(__name(function LiveAgentStatus2({entry:e}){return"tool"!==e.role?null:J.createElement(W_,{entry:e})},"LiveAgentStatus"));function fuzzyMatch(e,t){let n=0;for(const r of e)if(r===t[n]&&(n++,n===t.length))return!0;return!1}function fuzzyScore(e,t){let n=0;for(const r of e)fuzzyMatch(r.text.toLowerCase(),t)&&(n+=r.weight);return n}function fuzzyFilter(e,t,n){if(!t.trim())return e;const r=t.toLowerCase().split("");return e.map(e=>({item:e,score:fuzzyScore(n(e),r)})).filter(({score:e})=>e>0).sort((e,t)=>t.score-e.score).map(({item:e})=>e)}function useListNavigation({items:e,onSelect:t,onCancel:n,validate:r,initialIndex:o=0,searchQuery:s,onSearchChange:i}){const[a,l]=Z(o),[u,d]=Z(null);te(()=>{s||l(o)},[o,s]);const m=e.length-1,g=__name(e=>{i(e),l(0)},"updateSearch");return le((o,i)=>{if(i.escape&&s)g("");else if(i.escape)n();else if(i.backspace||i.delete)g(s.slice(0,-1));else if(0!==e.length){if(i.upArrow)return d(null),void l(e=>e>0?e-1:m);if(i.downArrow)return d(null),void l(e=>e<m?e+1:0);if(i.return){const n=e[a];if(!n)return;if(r){const e=r(n);if(e)return void d(e)}return void t(n)}!i.ctrl&&!i.meta&&!i.tab&&o&&1===o.length&&o>=" "&&g(s+o)}}),{cursor:a,error:u}}tn(),sn(),tn(),__name(fuzzyMatch,"fuzzyMatch"),__name(fuzzyScore,"fuzzyScore"),__name(fuzzyFilter,"fuzzyFilter"),Fr(),Qr(),Vr(),tn(),__name(useListNavigation,"useListNavigation"),tn(),kr();var V_=__name(({query:e,resultCount:t,placeholder:n="Type to search..."})=>J.createElement(oe,{width:"100%"},J.createElement(se,{color:Xn.GRAY},Pe.pointerSmall," "),J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY},e||n),e&&void 0!==t&&J.createElement(se,{dimColor:!0}," (",t," found)")),"SearchInput");tn(),sn(),kr();var Q_=__name(({model:e,providerId:t,isHighlighted:n,isCurrent:r,showProviderLabel:o})=>{const s=Qt[t],i=o??s?.showProviderLabelInSelector??!1,a=Vt[e.provider],l=e.id===Gt?`${e.label} (default)`:e.label;return J.createElement(oe,null,J.createElement(se,{color:n?Xn.CYAN:Xn.GRAY},n?`${Pe.pointer} `:" "),J.createElement(se,{color:n?Xn.CYAN:r?Xn.GREEN:Xn.WHITE},l.padEnd(32)),i&&J.createElement(se,{color:Xn.DIM},a),e.description&&J.createElement(se,{color:Xn.DIM},i?" · ":"",e.description),r&&J.createElement(se,{color:Xn.GREEN}," ",Pe.tick))},"ModelRow");kr();var K_=__name(e=>[{text:e.name,weight:100},{text:e.label,weight:50},{text:e.provider,weight:25},{text:e.description||"",weight:10}],"MODEL_SEARCH_FIELDS");function searchGroups(e,t){if(!t.trim())return e;const n=[];for(const r of e){const e=fuzzyFilter(r.models,t,K_);e.length>0&&n.push({...r,models:e})}return n}function flattenGroups(e){const t=[];for(const n of e)for(const e of n.models)t.push({providerId:n.providerId,model:e});return t}function groupByModelProvider(e,t){const n=new Map;for(const t of e){const e=Vt[t.provider]??t.provider,r=n.get(e)??[];r.push(t),n.set(e,r)}const r=[];for(const e of Object.values(Vt))n.has(e)&&!r.includes(e)&&r.push(e);return r.map(e=>({providerId:t,label:e,models:n.get(e)}))}__name(searchGroups,"searchGroups"),__name(flattenGroups,"flattenGroups"),__name(groupByModelProvider,"groupByModelProvider");var Y_=__name(({onSelect:e,onCancel:t,currentModel:n,currentProvider:r})=>{const[o,s]=Z(""),[i,a]=Z(null),[l,u]=Z(()=>new Set),d=ne(()=>isInternalTeamFlagEnforced(),[]),m=ne(()=>d?Kt:groupByModelProvider(Yt.flatMap(e=>e.models),Qt["command-code"].id),[d]),g=ne(()=>searchGroups(m,o),[m,o]),h=ne(()=>flattenGroups(g),[g]),f=d?Qt.anthropic.id:Qt["command-code"].id,y=r??f,w=n?Math.max(0,h.findIndex(e=>e.model.id===n&&e.providerId===y)):0,{cursor:S,error:E}=useListNavigation({items:h,onSelect:__name(t=>e(t.model.id,t.providerId),"onSelect"),onCancel:t,initialIndex:w,searchQuery:o,onSearchChange:s,validate:__name(e=>{if(l.has(e.providerId))return`Run /provider to authenticate with ${getProviderConfig(e.providerId)?.displayName??e.providerId} first`;if(!i||d)return null;const t=Qt[i]?.supportedModelProviders;return t&&!t.includes(e.model.provider)?`${Qt[i]?.label??i} does not support ${e.model.provider} models. Switch provider via /provider.`:null},"validate")});te(()=>{(async()=>{await isOAuthEnforced()&&a(await getConfiguredProvider())})()},[]),te(()=>{(async()=>{const e=new Set(m.map(e=>e.providerId)),t=new Set;for(const n of e){const e=getProviderConfig(n);e?.requiresAuth&&e.checkAuth&&(await e.checkAuth()||t.add(n))}u(t)})()},[m]);let C=0;return J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(oe,null,J.createElement(se,{color:Zn,bold:!0},"Select model")),J.createElement(oe,{marginBottom:1},J.createElement(se,{dimColor:!0},d?"Select a model and provider. Applies to this session and future sessions.":"Switch between Command Code models. Applies to this session and future sessions.")),J.createElement(oe,{marginBottom:2,flexDirection:"column",width:"100%"},J.createElement(V_,{query:o,resultCount:o?h.length:void 0,placeholder:"Type to search models..."})),0===h.length?J.createElement(oe,{marginY:1},J.createElement(se,{color:Xn.GRAY},'No models match "',o,'"')):J.createElement(oe,{flexDirection:"column"},g.map((e,t)=>{const r=C;return C+=e.models.length,J.createElement(oe,{key:`${e.providerId}-${e.label}`,flexDirection:"column",marginTop:t>0?1:0},d?J.createElement(se,{bold:!0,color:Zn},e.label):J.createElement(se,{bold:!0,dimColor:!0},e.label),e.models.map((t,o)=>J.createElement(Q_,{key:`${e.providerId}-${e.label}-${t.id}`,model:t,providerId:e.providerId,isHighlighted:r+o===S,isCurrent:t.id===n&&e.providerId===y,showProviderLabel:!!d&&void 0})))})),E&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.RED},E)),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"type to search . up/down navigate . Enter to select"),o?J.createElement(se,{color:Xn.DIM}," . Esc to clear"):J.createElement(se,{color:Xn.DIM}," . Esc to cancel")))},"ModelSelector");tn(),Vr(),kr();var J_=__name(({onSelect:e,onCancel:t,currentProvider:n})=>{const r=getProviderOptions(),o=__name(t=>{e(t.value)},"handleSelect");le((e,n)=>{n.escape&&t()});const s=n?r.findIndex(e=>e.value===n):0,i=n&&-1===s;return J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(oe,{marginBottom:1,flexDirection:"row",justifyContent:"space-between"},J.createElement(oe,null,J.createElement(se,{bold:!0},"Select AI Provider")),n&&J.createElement(oe,{flexDirection:"row"},J.createElement(se,{color:Xn.DIM},"Current: "),J.createElement(se,{color:Xn.GREEN},getProviderDisplayName(n)),i&&J.createElement(se,{color:Xn.YELLOW}," [OAuth enforced]"))),J.createElement(oe,{marginBottom:0},J.createElement(se,{color:Xn.DIM},"Available Providers:")),J.createElement(at,{items:r,onSelect:o,initialIndex:s>=0?s:0,indicatorComponent:({isSelected:e})=>J.createElement(se,{color:e?Xn.CYAN:Xn.GRAY,bold:e},e?Pe.triangleRightSmall:" "),itemComponent:({isSelected:e,label:t})=>J.createElement(se,{color:e?Xn.CYAN:Xn.GRAY,bold:e},` ${t}`)}),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press ESC to cancel")))},"ProviderSelector");function RetryMessage({attempt:e}){const[t,n]=Z(0);if(te(()=>{if(null===e)return;const t=setInterval(()=>{n(e=>(e+1)%4)},500);return()=>clearInterval(t)},[e]),null===e)return null;const r=".".repeat(t).padEnd(3," ");return J.createElement(oe,{marginBottom:1},J.createElement(se,{color:fr,dimColor:!0},"Connection Issue. Retrying (attempt ",e,")",r))}tn(),kr(),__name(RetryMessage,"RetryMessage"),tn(),Mo(),Dn(),kr();var X_=[{mode:"both",label:"Both",description:"Restore conversation and code (recommended)"},{mode:"conversation",label:"Conversation only",description:"Rewind conversation, keep current code"},{mode:"files",label:"Code only",description:"Restore code, keep conversation"}],Z_=__name(({checkpoints:e,onSelect:t,onCancel:n})=>{const r=ne(()=>[...e].sort((e,t)=>new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime()),[e]),[o,s]=Z(Math.max(0,r.length-1)),[i,a]=Z(Math.max(0,r.length-8)),[l,u]=Z("checkpoint"),[d,m]=Z(null),[g,h]=Z(0),f=ne(()=>{if(!d)return!0;const e=r.findIndex(e=>e.messageId===d.messageId);if(-1===e)return!0;for(let t=e;t<r.length;t++)if(r[t].filesModified.length>0)return!0;return!1},[d,r]),y=ne(()=>f?X_:X_.filter(e=>"conversation"===e.mode),[f]);if(te(()=>{if(r.length>0){const e=r.length-1;s(e),a(Math.max(0,r.length-8))}},[r.length,8]),le((e,f)=>{f.escape?"mode"===l?(u("checkpoint"),m(null),h(0)):n():"checkpoint"===l?f.upArrow?s(e=>{const t=Math.max(0,e-1);return t<i&&a(t),t}):f.downArrow?s(e=>{const t=Math.min(r.length-1,e+1);return t>=i+8&&a(t-8+1),t}):f.return&&r.length>0&&(m(r[o]),u("mode"),h(0)):"mode"===l&&(f.upArrow?h(e=>Math.max(0,e-1)):f.downArrow?h(e=>Math.min(y.length-1,e+1)):f.return&&d&&y[g]&&t({messageId:d.messageId,mode:y[g].mode}))}),0===r.length)return J.createElement(oe,{flexDirection:"column",paddingLeft:2,paddingTop:1},J.createElement(se,{color:Zn,bold:!0},"Rewind"),J.createElement(se,{color:Xn.DIM},"No checkpoints available. Start a conversation to create checkpoints."),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press "),J.createElement(se,{color:Xn.DIM,bold:!0},"Esc"),J.createElement(se,{color:Xn.DIM}," to close")));if("mode"===l&&d)return J.createElement(oe,{flexDirection:"column",paddingLeft:2,paddingTop:1},J.createElement(se,{color:Zn,bold:!0},"Rewind"),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"Restore to: "),J.createElement(se,{color:Xn.WHITE},truncateString({text:d.userPrompt||"checkpoint",maxChars:50}))),J.createElement(oe,{flexDirection:"column"},y.map((e,t)=>{const n=g===t,r=t===y.length-1;return J.createElement(oe,{key:e.mode,flexDirection:"column"},J.createElement(oe,{flexDirection:"row"},J.createElement(se,{color:n?Zn:void 0},n?`${Pn} `:" "),J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:n?Zn:Xn.WHITE},e.label),J.createElement(se,{color:Xn.DIM},e.description))),!r&&J.createElement(se,null," "))})),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press "),J.createElement(se,{color:Xn.DIM,bold:!0},"Enter"),J.createElement(se,{color:Xn.DIM}," to confirm, "),J.createElement(se,{color:Xn.DIM,bold:!0},"Esc"),J.createElement(se,{color:Xn.DIM}," to go back")));const w=r.slice(i,i+8);return J.createElement(oe,{flexDirection:"column",paddingLeft:2,paddingTop:1},J.createElement(se,{color:Zn,bold:!0},"Rewind"),J.createElement(se,{color:Xn.DIM},"Select a checkpoint to restore your session"),r.length>8&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Showing ",i+1,"-",Math.min(i+8,r.length)," ","of ",r.length)),J.createElement(oe,{marginTop:1}),J.createElement(oe,{flexDirection:"column"},w.map((e,t)=>{const n=i+t,s=o===n,a=e.filesModified.length,l=t===w.length-1,u=n===r.length-1;return J.createElement(oe,{key:e.messageId,flexDirection:"column"},J.createElement(oe,{flexDirection:"row"},J.createElement(se,{color:s?Zn:void 0},s?`${Pn} `:" "),J.createElement(oe,{flexDirection:"column"},J.createElement(oe,null,J.createElement(se,{color:s?Zn:Xn.WHITE},truncateString({text:e.userPrompt||"(no prompt)",maxChars:60})),J.createElement(se,{color:Xn.DIM}," • "),J.createElement(se,{color:Xn.DIM},getRelativeTimeString({timestamp:e.timestamp}),u&&" (latest)")),J.createElement(se,{color:Xn.DIM},a>0?`${a} file${a>1?"s":""} changed`:"No code changes"))),!l&&J.createElement(se,null," "))})),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press "),J.createElement(se,{color:Xn.DIM,bold:!0},"Enter"),J.createElement(se,{color:Xn.DIM}," to select, "),J.createElement(se,{color:Xn.DIM,bold:!0},"Esc"),J.createElement(se,{color:Xn.DIM}," to cancel")))},"RewindSelector");tn(),Bn(),tn(),tn();var ex=__name(e=>{const[t,n]=Z(e),[r,o]=Z(null);return te(()=>{const t=__name(()=>{n(e.map(e=>({...e,active:!1,complete:!1,items:[],insights:[],message:""}))),o(null)},"handleReset"),r=__name(e=>{"error"!==e.type?n(t=>{if("step_start"===e.type){const n=t.findIndex(t=>t.id===e.step);return n<0?t:t.map((t,r)=>r<n?{...t,active:!1,complete:!0}:r===n?{...t,active:!0,message:e.message||"",...e.label&&{label:e.label},..."complete"===e.step&&{complete:!0},...void 0!==e.learningCount&&void 0!==e.categories&&void 0!==e.storage&&t.summary&&{summary:{learningCount:e.learningCount,categories:e.categories,storage:e.storage}}}:t)}if("progress"===e.type){const n=t.findIndex(e=>e.active);return n<0?t:t.map((t,r)=>r===n?{...t,items:[...t.items,e.message]}:t)}if("insight"===e.type){const n=t.findIndex(e=>"learning"===e.id);return n<0?t:t.map((t,r)=>r===n?{...t,insights:[...t.insights,e.message]}:t)}return t}):o(e.message)},"handleNewEvent");return Av.on("reset",t),Av.on("new-event",r),()=>{Av.off("reset",t),Av.off("new-event",r)}},[e]),{steps:t,importError:r,setImportError:o}},"useProgressEvents");async function createRequestClient(){const e=getApiBaseUrl(),t=new Jy({baseUrl:e}),n=await getConfiguredProvider(),r=await isOAuthEnforced();let o,s;try{const e=await getOAuthCredentials({provider:n});o=e.token,s=e.oauthProvider,validateOAuthToken({token:o,provider:n})}catch(e){dlog("Failed to get or validate OAuth token:",e instanceof Error?e.message:String(e))}const i={[Pt.PROJECT_SLUG]:_C.getCurrentProjectDirName(),[Pt.INTERNAL_TEAM_FLAG_HEADER]:r.toString()};return o&&(i[Pt.OAUTH_TOKEN]=`Bearer ${o}`,s&&(i[Pt.OAUTH_PROVIDER]=s)),{request:t,headers:i}}function splitPromptsIntoBatches(e){const t=[];let n=[],r=0;for(const o of e){const e=estimateTokens(o);e>2e3?(n.length>0&&(t.push(n),n=[],r=0),t.push([o])):r+e>2e3?(n.length>0&&t.push(n),n=[o],r=e):(n.push(o),r+=e)}return n.length>0&&t.push(n),t}tn(),tn(),gw(),Tw(),Bn(),tn(),sn(),Bn(),tn(),tn(),sn(),gw(),Tw(),Bn(),Fr(),Qr(),__name(createRequestClient,"createRequestClient"),tn(),__name(splitPromptsIntoBatches,"splitPromptsIntoBatches"),__name(function calculateObservationsPerBatch(e){return 4},"calculateObservationsPerBatch"),tn(),tn(),Bn(),kn(),tn();var tx="claude-haiku-4-5-20251001";function buildObserverPrompt(e,t){return`Produce ${t} varied observations for these prompts:\n\n${e.map((e,t)=>`${t+1}. ${e}`).join("\n")}\n\nVaried observations:`}function createInsightEmitter(){let e="",t=0;const n=__name(()=>{if(e.includes("\n")){const t=e.split("\n");for(let e=0;e<t.length-1;e++){const n=t[e].trim();n&&(dlog(`[ObserverAPI] emitting insight: ${n}`),Av.addEvent({type:"insight",message:n}))}e=t[t.length-1]}},"emitCompletedLines");return{addText:__name(r=>{t++,dlog(`[ObserverAPI] text chunk ${t}: "${r.substring(0,50)}..."`),e+=r,n()},"addText"),emitRemaining:__name(()=>{e.trim()&&(dlog(`[ObserverAPI] emitting final insight: ${e.trim()}`),Av.addEvent({type:"insight",message:e.trim()}))},"emitRemaining"),getChunkCount:__name(()=>t,"getChunkCount")}}async function callObserverAPI(e,t,n){dlog(`[ObserverAPI] calling ${At.ALPHA.GENERATE} with model: ${tx}`);const r={config:getEnvironmentContext(),memory:"",taste:"",skills:"",params:{tools:[],messages:[{role:"user",content:n}],model:tx,system:"You scan prompts and produce casual observations like a dev friend glancing at someone's work.\n\nPLAIN TEXT ONLY. No markdown, no formatting.\n\nBe natural and VARIED. Don't repeat the same sentence starters.\n\nGood (notice the variety):\npnpm over npm, nice\ndebugging that auth flow\nreact + typescript stack\ncircular deps came up\ntui flicker stuff\nah the classic memory leak\nsession persistence wip\nfighting with imports again\nhaiku model issues huh\n\nBad (too repetitive - NEVER do this):\nI see you prefer pnpm\nI see debugging auth\nI see react stack\nI see circular deps\noh, TUI issues\noh, memory leak\n\nRules:\n- plain text, lowercase is fine\n- vary your sentence starts - mix it up\n- max 6 words per observation\n- one observation per line\n- sound human, not robotic\n- output only the observations, no preamble",max_tokens:200,temperature:.7,stream:!0},threadId:Te()},o=await e.post({endpoint:At.ALPHA.GENERATE,body:r,headers:t,stream:!0});dlog("[ObserverAPI] got response stream");const s=createInsightEmitter();await consumeSSEStream(o,{onText:__name(e=>{s.addText(e)},"onText")}),dlog(`[ObserverAPI] stream complete, ${s.getChunkCount()} chunks received`),s.emitRemaining(),dlog("[ObserverAPI] done")}async function processBatch(e,t,n,r,o){let s=0;for(const e of n)s+=estimateTokens(e);dlog(`[Observer] batch ${r}/${o}: ${n.length} prompts`);const i=buildObserverPrompt(n,4);await callObserverAPI(e,t,i)}async function observeSessionPrompts(e){if(Av.observerHasRun)return;Av.markObserverRun();const{prompts:t}=e;try{const{request:e,headers:n}=await createRequestClient(),r={...n,[Pt.SESSION_ID]:`observer-${Te()}`},o=splitPromptsIntoBatches(t);dlog(`[Observer] ${t.length} prompts → ${o.length} batches`);const s=Math.min(o.length,6);for(let t=0;t<s;t++){if(Av.learningComplete){dlog(`[Observer] stopped at batch ${t} (learning complete)`);break}const n=o[t];try{await processBatch(e,r,n,t+1,o.length)}catch{}}dlog("[Observer] done")}catch(e){dlog(`[Observer] failed (non-critical): ${e instanceof Error?e.message:String(e)}`),Av.addEvent({type:"progress",message:"Continuing without live observations..."})}}sn(),__name(buildObserverPrompt,"buildObserverPrompt"),__name(createInsightEmitter,"createInsightEmitter"),__name(callObserverAPI,"callObserverAPI"),__name(processBatch,"processBatch"),__name(observeSessionPrompts,"observeSessionPrompts");var nx=class{static{__name(this,"SessionImporter")}static async findClaudeCodeSessions(t=0){const n=[];try{const r=e.join(y.homedir(),".claude","projects");await F.access(r);const o=process.cwd().replace(/\//g,"-");dlog(`[Import] scanning project: ${o}`);const s=(await F.readdir(r)).filter(e=>e===o);for(const o of s){const s=e.join(r,o);try{if(!(await F.stat(s)).isDirectory())continue;const r=(await F.readdir(s)).filter(e=>e.endsWith(".jsonl")&&!e.includes(".checkpoints"));dlog(`[Import] found ${r.length} sessions`);for(const o of r){const r=e.join(s,o),i=await F.stat(r),a=o.replace(".jsonl","");if(n.push({id:a,filePath:r,createdAt:i.birthtime,lastModified:i.mtime,messageCount:0,agent:"claude-code"}),t>0&&n.length>=t)break}if(t>0&&n.length>=t)break}catch{continue}}}catch{dlog("[Import] no claude sessions dir")}return n}static async findCodexSessions(e=0,t){try{Av.addEvent({type:"progress",message:"Scanning Codex sessions..."});const n=await findCodexSessions(process.cwd(),e=>{t?.(e),"reading"===e.phase&&Av.addEvent({type:"progress",message:`Scanning Codex: ${e.processedFiles}/${e.totalFiles} files (${e.matchedSessions} matched)`})},e);return dlog(`[Import] found ${n.length} Codex sessions`),n}catch(e){return dlog("[Import] no codex sessions",e),[]}}static async findCursorSessions(e=0){try{Av.addEvent({type:"progress",message:"Scanning Cursor sessions..."});const t=await findCursorSessions(process.cwd(),e);return dlog(`[Import] found ${t.length} Cursor sessions`),t}catch(e){return dlog("[Import] no cursor sessions",e),[]}}static async extractUserPrompts(e){const t=[];try{const n=(await F.readFile(e,"utf-8")).trim().split("\n");for(const e of n)if(e.trim())try{const n=JSON.parse(e);if("user"===n.type&&n.message){const e=n.message;let r="";e.content&&"string"==typeof e.content&&(r=e.content),r.trim()&&t.push(r.trim())}}catch{continue}t.length>0&&dlog(`[Import] extracted ${t.length} prompts from session`)}catch(t){dlog(`[Import] failed: ${e}`,t)}return t}static splitPromptsIntoBatches(e,t=15e4){const n=[];let r=[],o=0;for(const s of e){const e=estimateTokens(s);if(e>t){r.length>0&&(n.push(r),r=[],o=0);const e=this.splitLargePrompt(s,t);for(const t of e)n.push([t])}else o+e<=t?(r.push(s),o+=e):(r.length>0&&n.push(r),r=[s],o=e)}return r.length>0&&n.push(r),n}static splitLargePrompt(e,t){const n=[],r=e.split("\n");let o="",s=0;for(const e of r){const r=estimateTokens(e);s+r<=t?(o+=(o?"\n":"")+e,s+=r):(o&&n.push(o),o=e,s=r)}return o&&n.push(o),n}static async importAndLearn(){const e=[],t=[],n=[],r=[],o=[];try{Av.addEvent({type:"step_start",step:"importing",label:"Started Learning Taste",message:"Scanning for coding sessions..."});const s=await loadProjectSettings(),i=s.tasteOnboarding?.learnedSessions||{},a=i["claude-code"]?.length||0,l=i.codex?.length||0,u=i.cursor?.length||0;dlog(`[Import] loaded settings: claude-code=${a} learned, codex=${l} learned, cursor=${u} learned`);const d=await findNewSessions(i),m=d["claude-code"]||[],g=d.codex||[],h=d.cursor||[],f=m.length+g.length+h.length;if(dlog(`[Import] findNewSessions returned: claude-code=${m.length} new, codex=${g.length} new, cursor=${h.length} new`),0===f){const e=await this.findClaudeCodeSessions(),t=await findCodexSessions(process.cwd()),n=await findCursorSessions(process.cwd()),r=e.length+t.length+n.length,o=[{name:"Claude Code",count:e.length},{name:"Codex",count:t.length},{name:"Cursor",count:n.length}].filter(e=>e.count>0).sort((e,t)=>t.count-e.count).map(e=>`${e.count} ${e.name}`);Av.addEvent({type:"step_start",step:"complete",label:"Taste Already Learned",message:r>0?`From ${o.join(" + ")} sessions`:"No sessions found for this project"});const s=[];return e.length>0&&s.push({agent:"claude-code",sessionIds:e.map(e=>e.id),displayName:"Claude Code"}),t.length>0&&s.push({agent:"codex",sessionIds:t.map(e=>e.id),displayName:"Codex"}),n.length>0&&s.push({agent:"cursor",sessionIds:n.map(e=>e.id),displayName:"Cursor"}),{success:!1,totalPrompts:0,preferencesLearned:0,errors:[],totalSessions:r,learnedSessions:a+l+u,agentSessions:s,status:"already-learned"}}if(m.length>0){const e=(await this.findClaudeCodeSessions()).filter(e=>m.includes(e.id));n.push(...e)}if(g.length>0){const e=(await this.findCodexSessions()).filter(e=>g.includes(e.id));r.push(...e)}if(h.length>0){const e=(await this.findCursorSessions()).filter(e=>h.includes(e.id));o.push(...e)}const y=n.length+r.length+o.length;dlog(`[Import] total sessions: ${y} (claude-code: ${n.length}, codex: ${r.length}, cursor: ${o.length})`),Av.addEvent({type:"step_start",step:"batching",label:"Organizing your sessions",message:""});const w=[{name:"Claude Code",sessions:n,extractPrompts:this.extractUserPrompts},{name:"Codex",sessions:r,extractPrompts:extractCodexPrompts},{name:"Cursor",sessions:o,extractPrompts:extractCursorPrompts}].filter(e=>e.sessions.length>0).sort((e,t)=>t.sessions.length-e.sessions.length);for(const n of w){Av.addEvent({type:"progress",message:`${n.name}: ${n.sessions.length} sessions`});for(const r of n.sessions)try{const e=await n.extractPrompts(r.filePath);e.length>0&&t.push(...e)}catch(t){e.push(`${n.name} import failed: ${t instanceof Error?t.message:String(t)}`)}}if(0===t.length)return{success:!1,totalPrompts:0,preferencesLearned:0,errors:["No prompts found in sessions"]};const S=this.splitPromptsIntoBatches(t);dlog(`[Import] batched: ${t.length} prompts → ${S.length} batches`);const E=observeSessionPrompts({prompts:t}).catch(e=>{dlog(`[Import] observer error: ${e instanceof Error?e.message:String(e)}`)});Av.addEvent({type:"step_start",step:"learning",label:"Learning your coding taste",message:`Processing ${S.length} batch${1===S.length?"":"es"}`});try{const s=getApiBaseUrl(),i=new Jy({baseUrl:s});let a=!0;for(let e=0;e<S.length;e++){const t=S[e],n=e+1,r=S.length;r>1&&Av.addEvent({type:"progress",message:`Processing batch ${n}/${r}...`});const o=this.formatBatchLearning(t),s=new Nv({request:i,sessionId:crypto.randomUUID(),projectRoot:process.cwd()}),l=[{role:"user",content:o}];dlog(`[Import] batch ${n}/${r}: ${t.length} prompts`),(await s.checkAndProcess({messages:l})).success||(a=!1,dlog(`[Import] batch ${n}/${r} failed`))}if(dlog(`[Import] all batches complete, success: ${a}`),Av.markLearningComplete(),await E,a){if(n.length>0){const e=n.map(e=>e.id);await markSessionsAsLearned("claude-code",e),dlog(`[Import] marked ${e.length} claude-code sessions as learned`)}if(r.length>0){const e=r.map(e=>e.id);await markSessionsAsLearned("codex",e),dlog(`[Import] marked ${e.length} codex sessions as learned`)}if(o.length>0){const e=o.map(e=>e.id);await markSessionsAsLearned("cursor",e),dlog(`[Import] marked ${e.length} cursor sessions as learned`)}}else dlog("[Import] NOT marking sessions as learned due to batch failures");const l=await this.extractLearningSummary(),u=[];if(n.length>0&&u.push(`Claude Code (${n.length})`),r.length>0&&u.push(`Codex (${r.length})`),o.length>0&&u.push(`Cursor (${o.length})`),!a){const s=Av.getEvents().some(e=>"error"===e.type&&e.message?.toLowerCase().includes("insufficient credits")),i="Learning failed - sessions not marked as learned";return e.push(i),s||Av.addEvent({type:"error",message:i}),{success:!1,totalPrompts:t.length,preferencesLearned:l.totalLearnings,errors:e,totalSessions:y,agentSessions:[...n.length>0?[{agent:"claude-code",sessionIds:n.map(e=>e.id),displayName:"Claude Code"}]:[],...r.length>0?[{agent:"codex",sessionIds:r.map(e=>e.id),displayName:"Codex"}]:[],...o.length>0?[{agent:"cursor",sessionIds:o.map(e=>e.id),displayName:"Cursor"}]:[]]}}return Av.addEvent({type:"step_start",step:"complete",label:"Learning Complete",message:`Learned from ${u.join(" + ")}`,learningCount:l.totalLearnings,categories:l.categories,storage:".commandcode/taste/taste.md"}),{success:!0,totalPrompts:t.length,preferencesLearned:l.totalLearnings,errors:e,totalSessions:y,agentSessions:[...n.length>0?[{agent:"claude-code",sessionIds:n.map(e=>e.id),displayName:"Claude Code"}]:[],...r.length>0?[{agent:"codex",sessionIds:r.map(e=>e.id),displayName:"Codex"}]:[],...o.length>0?[{agent:"cursor",sessionIds:o.map(e=>e.id),displayName:"Cursor"}]:[]]}}catch(n){const r=`Learning agent failed: ${n instanceof Error?n.message:String(n)}`;return e.push(r),Av.addEvent({type:"error",message:r}),{success:!1,totalPrompts:t.length,preferencesLearned:0,errors:e}}}catch(t){const n=t instanceof Error?t.message:String(t);return e.push(n),{success:!1,totalPrompts:0,preferencesLearned:0,errors:e}}}static async extractLearningSummary(){try{const t=e.join(process.cwd(),".commandcode","taste","taste.md"),n=await F.readFile(t,"utf-8"),r=n.match(/^- .+Confidence:/gm),o=r?r.length:0;return{totalLearnings:o,categories:n.split("\n").filter(e=>e.startsWith("# ")).map(e=>e.replace(/^# /,"").trim()).filter(e=>e&&!e.toLowerCase().startsWith("taste"))}}catch{return{totalLearnings:0,categories:[]}}}static formatBatchLearning(e){return e.map((e,t)=>`${t+1}. ${e}`).join("\n\n")}},rx=__name(e=>new Promise((t,n)=>setTimeout(()=>n(new Error("Learning timed out. Try again with /learn-taste")),e)),"createTimeout"),ox=__name(e=>{const[t,n]=Z({isImporting:!0,waitingForInput:!1,alreadyLearned:!1,learnedSessionCount:0,totalSessionCount:0,agentSessions:[],error:null});return te(()=>{Av.reset(),Av.markImportStarted(),(async()=>{try{const t=await Promise.race([nx.importAndLearn(),rx(12e4)]);if(t.success)return void n(e=>({...e,isImporting:!1,waitingForInput:!0}));if("already-learned"===t.status)return void n(e=>({...e,isImporting:!1,alreadyLearned:!0,learnedSessionCount:t.learnedSessions||0,totalSessionCount:t.totalSessions||0,agentSessions:t.agentSessions||[],waitingForInput:!0}));const r=t.errors.join("\n");n(e=>({...e,isImporting:!1,waitingForInput:!0,error:r})),e&&e(r)}catch(t){const r=t instanceof Error?t.message:String(t);n(e=>({...e,isImporting:!1,waitingForInput:!0,error:r})),e&&e(r)}})()},[e]),t},"useImportProcess");tn();var sx=__name(({onEscape:e,onEnter:t,enabled:n=!0})=>{le((r,o)=>{n&&(o.escape&&e(),(o.return||"\n"===r)&&t())})},"useKeyboardInput");tn(),Bn();var ix=__name(({autoLearn:e,onShouldSkip:t})=>{const[n,r]=Z(null),[o,s]=Z(null),i=ee(!1);return te(()=>{if(i.current)return;let n=null;return(async()=>{try{i.current=!0,dlog("[Hook:Conditions] loading...");const n=await checkOnboardingConditions();r(n),n.shouldTrigger||e?dlog(`[Hook:Conditions] result: ${n.reason}, sessions: ${n.sessionCount}`):(dlog("[Hook:Conditions] no trigger, skipping"),t())}catch(e){const r=e instanceof Error?e.message:String(e);dlog("[Hook:Conditions] error",r),s(r),n=setTimeout(()=>t(),2e3)}})(),()=>{n&&clearTimeout(n)}},[e,t]),{conditions:n,error:o,isLoading:!n&&!o}},"useOnboardingConditions");async function completeOnboarding(e){try{await markOnboardingCompleted(),dlog("[Helper] onboarding marked complete")}catch(e){dlog(`[Helper] complete error: ${e instanceof Error?e.message:String(e)}`)}finally{Av.reset(),e()}}async function skipOnboarding(e){try{await markOnboardingSkipped(),dlog("[Helper] onboarding marked skipped")}catch(e){dlog(`[Helper] skip error: ${e instanceof Error?e.message:String(e)}`)}finally{Av.reset(),e()}}tn(),Bn(),tn(),Bn(),__name(completeOnboarding,"completeOnboarding"),__name(skipOnboarding,"skipOnboarding");var ax=__name(({onStepChange:e,onError:t,onCompleteCallback:n})=>{const r=ee(n),o=re(()=>{dlog("[Handler] import started → learning"),e("learning")},[e]),s=re(async()=>{dlog("[Handler] import complete → done"),e("done"),await completeOnboarding(()=>r.current())},[e]),i=re(e=>{dlog(`[Handler] import error: ${e}`),t(e)},[t]),a=re(async()=>{dlog("[Handler] error dismissed by user → done"),e("done"),await skipOnboarding(()=>r.current({skipped:!0}))},[e]),l=re(async()=>{dlog("[Handler] skipped → done"),e("done"),await skipOnboarding(()=>r.current({skipped:!0}))},[e]);return n!==r.current&&(r.current=n),{handleImportStart:o,handleImportComplete:s,handleImportError:i,handleErrorDismiss:a,handleSkip:l}},"useOnboardingHandlers");tn(),Bn();var lx=__name(({conditions:e,autoLearn:t})=>{const[n,r]=Z("checking"),o=ee(!1);return te(()=>{if(e&&!o.current){if(o.current=!0,t)return dlog("[Flow] autoLearn → learning"),void r("learning");dlog(`[Flow] → asking (${e.reason})`),r("asking")}},[e,t]),te(()=>{dlog(`[Flow] step: ${n}`)},[n]),{step:n,setStep:r}},"useOnboardingFlow");tn(),tn(),kr();var cx=__name(({error:e})=>J.createElement(oe,{padding:1},J.createElement(oe,{flexDirection:"column",borderColor:Xn.RED,padding:1},J.createElement(oe,{marginBottom:1},J.createElement(se,null,"Error initializing onboarding: ",e)),J.createElement(oe,null,J.createElement(se,null,"Continuing without onboarding...")))),"OnboardingError");tn(),tn(),sn(),kr();var ux=__name(()=>`(run /${jt.LEARN_TASTE} anytime)`,"getSkipHint"),dx=__name(()=>J.createElement(se,null,"Skip for now"," ",J.createElement(se,{color:Xn.DIM},ux())),"SkipOptionText"),mx=__name(({sessionCount:e,agentSessions:t,onImport:n,onSkip:r})=>{const[o,s]=Z(1);return le((e,t)=>{t.escape?r():t.upArrow||t.downArrow?s(e=>1===e?2:1):"1"!==e?"2"!==e?t.return&&(1===o?n():r()):r():n()}),J.createElement(oe,{flexDirection:"column",borderStyle:"single",borderColor:er.TEXT,paddingX:1,paddingY:0},J.createElement(se,{color:er.TEXT,bold:!0},"Build Your Coding Taste"),J.createElement(oe,{marginTop:1,flexDirection:"column"},J.createElement(se,null,"Found"," ",1===e?"one session":`${e} sessions`," ","from"," ",t.map(e=>e.displayName).join(", ")," ","for this project."),J.createElement(oe,{marginTop:1},J.createElement(se,null,"Want me to analyze"," ",1===e?"that session":"those sessions"," ","and build your coding taste profile?"))),J.createElement(oe,{marginTop:1,flexDirection:"column"},J.createElement(oe,null,J.createElement(se,{color:1===o?er.TEXT:Xn.GRAY},1===o?Pe.pointer:" "," 1. Yes, learn from my sessions (recommended)")),J.createElement(oe,null,J.createElement(se,{color:2===o?er.TEXT:Xn.GRAY},2===o?Pe.pointer:" "," 2."," ",J.createElement(dx,null)))),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Use arrow keys or numbers to select, Enter to confirm")))},"ImportChoice");tn(),tn(),kr();var px=__name(({error:e})=>J.createElement(oe,{flexDirection:"column",borderStyle:"single",borderColor:Xn.RED,paddingX:2,paddingY:1,marginBottom:2},J.createElement(se,{color:Xn.RED,bold:!0},"Oops, something went wrong:"),J.createElement(oe,{marginTop:1},J.createElement(se,null,e))),"ErrorSection");tn(),tn(),kr(),tn(),tn(),tn(),kr(),tn(),kr();var gx=__name(()=>J.createElement(se,{backgroundColor:er.BADGE_BG,color:er.BADGE_FG},Jv),"TasteBadge");tn(),kr(),tn();var hx=["percolating","excavating","deciphering","triangulating","osmosing","metabolizing","grokking","spelunking","interpolating","marinating","crystallizing","synthesizing","calibrating","fermenting","coalescing","transmuting","simmering","distilling","ruminating","perusing","assimilating","untangling","decoding","absorbing","harmonizing","digesting","contemplating","extrapolating","materializing","finalizing"],fx="⎿",yx=__name(()=>{const[e,t]=Z(()=>Math.floor(Math.random()*hx.length));return te(()=>{const e=setInterval(()=>{t(Math.floor(Math.random()*hx.length))},2e3);return()=>clearInterval(e)},[]),J.createElement(se,{color:Xn.YELLOW},hx[e],"...")},"PulsingText");tn(),kr();var wx=[Pe.bullet,Pe.squareSmallFilled,Pe.lozenge,Pe.star,Pe.triangleRight,Pe.triangleUp,Pe.circleFilled,Pe.pointer],Sx=__name(e=>String(e).padStart(3," "),"padNum"),bx=__name(e=>wx[e%wx.length],"getSymbol"),Ex=__name((e,t,n,r)=>r?`${e} observations (↑↓ scroll)`:`↑${Sx(t)} ↓${Sx(n)} (↑↓ scroll)`,"buildStatusLine"),Cx=__name(({insights:e})=>{const[t,n]=Z(0),[r,o]=Z(!0),s=e.length,i=s>10,a=Math.max(0,s-10);if(te(()=>{r&&i&&n(a)},[s,r,i,a]),le((e,t)=>{if(i)return t.upArrow?(o(!1),void n(e=>Math.max(0,e-1))):void(t.downArrow&&n(e=>{const t=Math.min(a,e+1);return t===a&&o(!0),t}))}),0===s)return null;const l=e.slice(t,t+10),u=t,d=s-t-10;return J.createElement(oe,{flexDirection:"column",marginLeft:4,marginBottom:0},i&&J.createElement(se,{color:Xn.DIM},Ex(s,u,d,r)),l.map((e,n)=>{const r=t+n;return J.createElement(oe,{key:r,marginBottom:0},J.createElement(se,{color:Xn.DIM},bx(r)," ",e))}))},"ScrollableInsights");tn(),kr();var vx=__name(()=>{const[e,t]=Z(!0);return te(()=>{const e=setInterval(()=>{t(e=>!e)},500);return()=>clearInterval(e)},[]),J.createElement(se,{color:Xn.YELLOW},e?Pe.circleFilled:Pe.circle)},"PulsingDot"),kx=__name(({label:e,message:t,active:n,complete:r,items:o,insights:s,isIntro:i,isAllComplete:a,summary:l})=>{if(i)return J.createElement(oe,{flexDirection:"column",marginBottom:0},J.createElement(gx,null),J.createElement(oe,{marginTop:0},J.createElement(se,{color:Xn.DIM},fx),J.createElement(oe,{marginLeft:2},a?J.createElement(se,{color:er.TEXT},"learned your coding taste"):J.createElement(yx,null))));const u=__name(()=>r?J.createElement(se,{color:sr.BG},Pe.square):n?J.createElement(vx,null):J.createElement(se,{color:Xn.DIM},Pe.circle),"getStatusIcon"),d=o.length>0||s.length>0||t||l&&l.learningCount>0;return!r||n||d?J.createElement(oe,{flexDirection:"column",marginBottom:0},(n||r)&&J.createElement(oe,{marginBottom:0},J.createElement(oe,{marginRight:1},u()),J.createElement(se,{color:r?Xn.WHITE:n?Xn.YELLOW:Xn.DIM},e)),r&&t&&(!l||0===l.learningCount)&&J.createElement(oe,{marginLeft:3,marginBottom:0},J.createElement(se,{color:Xn.DIM},t)),o.length>0&&J.createElement(oe,{flexDirection:"column",marginLeft:1,marginBottom:0},o.map((e,t)=>J.createElement(se,{key:t,color:Xn.DIM},`${Pe.bullet} ${e}`))),s.length>0&&J.createElement(Cx,{insights:s}),r&&l&&l.learningCount>0&&J.createElement(oe,{flexDirection:"column",marginLeft:1,marginBottom:0},J.createElement(oe,{marginBottom:1,flexDirection:"row"},J.createElement(se,null,fx),J.createElement(oe,{marginLeft:2},J.createElement(se,{color:er.TEXT},"Learned ",l.learningCount," preference",1===l.learningCount?"":"s",l.categories.length>0?` across ${l.categories.length} ${1===l.categories.length?"category":"categories"}`:""))),J.createElement(oe,{flexDirection:"column",marginLeft:1},J.createElement(se,{color:Xn.DIM},Pe.pointerSmall," Stored in"," ",l.storage),J.createElement(se,{color:Xn.DIM},"Command Code automatically uses & updates taste files.")))):null},"StepItem"),Tx=__name(({steps:e})=>{const t=e.find(e=>"complete"===e.id)?.complete??!1;return J.createElement(oe,{flexDirection:"column",marginBottom:1},e.map((e,n)=>J.createElement(oe,{key:e.id,marginLeft:0===n?0:3},J.createElement(kx,{label:e.label,message:e.message,active:e.active,complete:e.complete,items:e.items,insights:e.insights,summary:e.summary,isIntro:0===n,isAllComplete:t}))))},"StepsSection"),_x=__name(({steps:e})=>J.createElement(Tx,{steps:e}),"ProgressSection");tn(),kr();var xx=__name(({isImporting:e=!1,waitingForInput:t=!1})=>J.createElement(J.Fragment,null,e&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"ESC to cancel")),t&&J.createElement(oe,{marginTop:1},J.createElement(se,{bold:!0},"Press ENTER to continue"))),"HelpTextSection");tn();var Px=[{id:"importing",label:"Initializing Taste Profile",message:"",active:!1,complete:!1,items:[],insights:[]},{id:"batching",label:"Organizing your sessions",message:"",active:!1,complete:!1,items:[],insights:[]},{id:"learning",label:"Learning your coding taste",message:"",active:!1,complete:!1,items:[],insights:[]},{id:"complete",label:"Learned your coding taste!",message:"",active:!1,complete:!1,items:[],insights:[],summary:{learningCount:0,categories:[],storage:".commandcode/taste/taste.md"}}],Ax=__name(({onComplete:e,onError:t,onErrorDismiss:n})=>{const{steps:r,importError:o}=ex(Px),{isImporting:s,waitingForInput:i,error:a}=ox(t);return sx({onEscape:__name(()=>{i&&((a||o)&&n?n():e())},"onEscape"),onEnter:__name(()=>{i&&((a||o)&&n?n():e())},"onEnter"),enabled:s||i}),J.createElement(oe,{flexDirection:"column",padding:1},o&&J.createElement(px,{error:o}),!o&&J.createElement(_x,{steps:r}),J.createElement(xx,{isImporting:s,waitingForInput:i}))},"ImportProgress"),Ix=__name(({step:e,conditions:t,onImportStart:n,onImportComplete:r,onImportError:o,onErrorDismiss:s,onSkip:i})=>"asking"===e?t&&"has_sessions"===t.reason?J.createElement(mx,{sessionCount:t.sessionCount,agentSessions:t.agentSessions,onImport:n,onSkip:i}):null:"learning"===e?J.createElement(Ax,{onComplete:r,onError:o,onErrorDismiss:s}):null,"OnboardingStepRenderer"),Nx=__name(({onComplete:e,autoLearn:t=!1})=>{te(()=>(dlog("[UI:Onboarding] mounted"),()=>{dlog("[UI:Onboarding] unmounted")}),[]);const{conditions:n,error:r,isLoading:o}=ix({autoLearn:t,onShouldSkip:e}),{step:s,setStep:i}=lx({conditions:n,autoLearn:t}),{handleImportStart:a,handleImportComplete:l,handleImportError:u,handleErrorDismiss:d,handleSkip:m}=ax({onStepChange:__name(e=>{i(e)},"onStepChange"),onError:__name(()=>{},"onError"),onCompleteCallback:e});return dlog(`[UI:Onboarding] render: ${s}${n?.reason?` (${n.reason})`:""}${r?" ERROR":""}`),o?null:r?J.createElement(cx,{error:r}):"done"===s?null:J.createElement(Ix,{step:s,conditions:n,onImportStart:a,onImportComplete:l,onImportError:u,onErrorDismiss:d,onSkip:m})},"TasteOnboarding");function getEntryCharCount(e){return("input"in e?e.input??"":"").length+("output"in e?e.output??"":"").length+("command"in e?e.command??"":"").length}function getBudgetedFeed(e,t){if(0===e.length)return[];const n=[...e].reverse();let r=t;const o=[];for(const e of n)if(o.unshift(e),r-=getEntryCharCount(e),r<=0)break;return o}__name(getEntryCharCount,"getEntryCharCount"),__name(getBudgetedFeed,"getBudgetedFeed");var Rx=X(__name(function MainView2({feed:e,liveEntries:t,queuedMessages:n,isCmdCodeBusy:r,staticKey:o,transcriptMode:s,tasteOnboardingEntryId:i,autoLearnTaste:a,retryAttempt:l,input:u,setInput:d,fileSearchQuery:m,setFileSearchQuery:g,showFileList:h,setShowFileList:f,showProviderSelector:y,showModelSelector:w,showMemorySelector:S,showMcpManager:E,showAgentsConfig:C,showRewindSelector:v,showLoginOverlay:k,showUsageOverlay:T,showAddDirModal:_,showCompactModeSelector:x,authComponentInfo:P,status:A,currentProvider:I,currentModel:N,showProviderNotification:R,shareInfo:M,showShareNotification:L,unshareNotificationMessage:$,updateStatus:D,updateFailedInfo:O,creditWarning:F,permissionMode:q,hintMessage:j,pendingExitKey:B,tasteLearningEnabled:U,interactionTokens:z,contextUsage:H,historyManagerRef:W,executionState:G,contextEngineRef:V,onSubmit:Q,onCommand:K,onToggleAutoAccept:Y,onResetPendingExitKey:X,onDoubleEscapeEmpty:Z,onTasteOnboardingComplete:ee,permissionPanel:te,questionPanel:ie,onRewindSelect:ae,onRewindCancel:le,onLoginComplete:ce,onLoginCancel:ue,setShowProviderSelector:de,setShowModelSelector:me,setShowMemorySelector:pe,setShowMcpManager:ge,setShowAgentsConfig:he,setShowAddDirModal:fe,setShowUsageOverlay:ye,handleProviderSelect:we,handleProviderCancel:Se,handleModelSelect:be,handleModelCancel:Ee,handleCompactModeSelect:Ce,handleCompactModeCancel:ve,handleAuthSuccess:ke,handleAuthCancel:Te}){const _e=ne(()=>e.filter(e=>"taste-onboarding"!==e.role),[e]),xe=useTerminalWidth(),Pe=ne(()=>"off"===s?_e:getBudgetedFeed(_e,"limited"===s?15e3:5e4),[_e,s]),Ae=ne(()=>"off"===s?0:Math.max(0,_e.length-Pe.length),[_e.length,Pe.length,s]),Ie=ne(()=>0===Ae?Pe:Pe.filter(e=>"user"!==e.role),[Pe,Ae]),Ne=re(()=>he(!1),[he]),Re=re(()=>pe(!1),[pe]),Me=re(()=>ge(!1),[ge]),Le=re(()=>fe(!1),[fe]),$e=re(()=>me(!0),[me]),De=!("off"!==s||te||ie||y||w||P||S||E||C||v||k||T||_||x||i);return J.createElement(oe,{flexDirection:"column",width:"100%"},J.createElement(H_,{staticKey:o,feed:Ie,showHeader:!0,expandedToolOutput:"off"!==s,currentModel:N,currentProvider:I,hiddenCount:Ae}),i&&J.createElement(Nx,{onComplete:ee,autoLearn:a}),t.map(e=>e.metadata?.isAgent?J.createElement(G_,{key:e.id,entry:e}):J.createElement(oe,{key:e.id,marginBottom:1,width:"90%"},renderFeedEntry(e,"off"!==s))),J.createElement(RetryMessage,{attempt:l}),ie,te,"off"!==s&&J.createElement(oe,{flexDirection:"column",marginTop:1},J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"─".repeat(xe))),J.createElement(oe,{paddingRight:1},J.createElement(se,{backgroundColor:sr.BG,color:sr.FG,bold:!0},`${Yv}DETAILED TRANSCRIPT${Yv}`),J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,{bold:!0},"ctrl+o"),J.createElement(se,{color:Xn.DIM}," to toggle"),J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,{bold:!0},"ctrl+e"),J.createElement(se,{color:Xn.DIM}," ","to"," ","limited"===s?"show all":"collapse"))),De&&J.createElement(O_,{queuedMessages:n,isProcessing:r,executionState:G,status:A,input:u,setInput:d,onSubmit:Q,showFileList:h,setShowFileList:f,fileSearchQuery:m,setFileSearchQuery:g,onCommand:K,outputTokens:z,contextUsage:H,tasteLearning:U,shareInfo:M,showShareNotification:L,unshareNotificationMessage:$,updateStatus:D,updateFailedInfo:O,creditWarning:F,currentProvider:I,showProviderInfo:R,permissionMode:q,onToggleAutoAccept:Y,hintMessage:j,historyManager:W.current,pendingExitKey:B,onResetPendingExitKey:X,onDoubleEscapeEmpty:Z,retryAttempt:l,onAltP:$e}),y&&J.createElement(oe,{marginY:1},J.createElement(J_,{onSelect:we,onCancel:Se,currentProvider:I})),w&&J.createElement(oe,{marginY:1},J.createElement(Y_,{onSelect:be,onCancel:Ee,currentModel:N,currentProvider:I})),x&&J.createElement(oe,{marginY:1},J.createElement(c_,{onSelect:Ce,onCancel:ve})),C&&J.createElement(oe,{marginY:1},J.createElement(a_,{onCancel:Ne})),S&&J.createElement(oe,{marginY:1},J.createElement(j_,{onClose:Re})),E&&J.createElement(oe,{marginY:1},J.createElement(q_,{onClose:Me})),v&&V.current&&J.createElement(oe,{marginY:1},J.createElement(Z_,{checkpoints:V.current.listCheckpoints(),onSelect:ae,onCancel:le})),P&&J.createElement(oe,{marginY:1},J.createElement(P.Component,{onSuccess:ke,onCancel:Te})),k&&J.createElement(oe,{marginY:1},J.createElement(F_,{onComplete:ce,onCancel:ue})),_&&J.createElement(oe,{marginY:1},J.createElement(WT,{onClose:Le})))},"MainView"));function renderView({feedState:e,sessionState:t,statusState:n,authState:r,uiOverlays:o,onboarding:s,exitState:i,pendingOps:a,permissionState:l,contextEngineRef:u,historyManagerRef:d,executionState:m,actionCallbacks:g,onSubmit:h,onCommand:f,input:y,setInput:w,fileSearchQuery:S,setFileSearchQuery:E,updateFailedInfo:C,creditWarning:v,handleTrust:k,handleNoTrust:T,handleToggleAutoAccept:_,handleDoubleEscapeEmpty:x,handleTasteOnboardingComplete:P,loadTasteStatus:A}){if(i.shouldExit)return null;if(s.checkingProject)return null;if(s.showTrustPrompt)return J.createElement(nT,{staticKey:o.staticKey,onTrust:k,onExit:T});if(o.showSessionSelector)return J.createElement(oT,{onSelectSession:g.onSelectSession,onNewSession:g.onNewSession});if(!s.projectTrusted)return null;const I=a.pendingQuestion?J.createElement(QuestionView,{pendingQuestion:a.pendingQuestion,permissionMode:l.permissionMode,setPermissionMode:l.setPermissionMode,setPendingQuestion:a.setPendingQuestion,setStatus:n.setStatus,setStaticKey:o.setStaticKey}):null,N=a.pendingPermission?J.createElement(hT,{pendingPermission:a.pendingPermission,permissionMode:l.permissionMode,setPendingPermission:a.setPendingPermission,setStatus:n.setStatus,respondToPrompt:l.respondToPrompt,showHintMessage:n.showHintMessage,handleToggleAutoAccept:_}):null;return o.showLearningFeed?J.createElement(LearningView,{setShowLearningFeed:o.setShowLearningFeed,setStaticKey:o.setStaticKey,onExit:()=>i.setShouldExit(!0)}):o.showTasteConfig?J.createElement(TasteConfigView,{staticKey:o.staticKey,setShowTasteConfig:o.setShowTasteConfig,loadTasteStatus:A}):o.showSkillsConfig?J.createElement(SkillsConfigView,{staticKey:o.staticKey,setShowSkillsConfig:o.setShowSkillsConfig}):o.showUsageOverlay?J.createElement(UsageView,{staticKey:o.staticKey,setShowUsageOverlay:o.setShowUsageOverlay}):o.showContextView?J.createElement(ContextConfigView,{staticKey:o.staticKey,contextEngineRef:u,setShowContextView:o.setShowContextView,setInput:w}):o.showStatusView?J.createElement(StatusConfigView,{staticKey:o.staticKey,setShowStatusView:o.setShowStatusView,setInput:w}):J.createElement(Rx,{feed:e.feed,liveEntries:e.liveEntries,queuedMessages:e.queuedMessages,isCmdCodeBusy:e.isCmdCodeBusy,staticKey:o.staticKey,transcriptMode:o.transcriptMode,tasteOnboardingEntryId:s.tasteOnboardingEntryId,autoLearnTaste:s.autoLearnTaste,retryAttempt:n.retryAttempt,input:y,setInput:w,fileSearchQuery:S,setFileSearchQuery:E,showFileList:o.showFileList,setShowFileList:o.setShowFileList,showProviderSelector:o.showProviderSelector,showModelSelector:o.showModelSelector,showMemorySelector:o.showMemorySelector,showMcpManager:o.showMcpManager,showAgentsConfig:o.showAgentsConfig,showRewindSelector:o.showRewindSelector,showLoginOverlay:o.showLoginOverlay,showUsageOverlay:o.showUsageOverlay,setShowUsageOverlay:o.setShowUsageOverlay,showAddDirModal:o.showAddDirModal,showCompactModeSelector:o.showCompactModeSelector,authComponentInfo:r.authComponentInfo,status:n.status,currentProvider:r.currentProvider,currentModel:r.currentModel,showProviderNotification:r.showProviderNotification,shareInfo:n.shareInfo,showShareNotification:n.showShareNotification,unshareNotificationMessage:n.unshareNotificationMessage,updateStatus:n.updateStatus,updateFailedInfo:C,creditWarning:v,permissionMode:l.permissionMode,hintMessage:n.hintMessage,pendingExitKey:i.pendingExitKey,tasteLearningEnabled:n.tasteLearningEnabled,interactionTokens:n.interactionTokens,contextUsage:n.contextUsage,historyManagerRef:d,executionState:m,contextEngineRef:u,onSubmit:h,onCommand:f,onToggleAutoAccept:_,onResetPendingExitKey:i.resetPendingExitKey,onDoubleEscapeEmpty:x,onTasteOnboardingComplete:P,permissionPanel:N,questionPanel:I,onRewindSelect:g.onRewindSelect,onRewindCancel:g.onRewindCancel,onLoginComplete:g.onLoginComplete,onLoginCancel:g.onLoginCancel,setShowProviderSelector:o.setShowProviderSelector,setShowModelSelector:o.setShowModelSelector,setShowMemorySelector:o.setShowMemorySelector,setShowMcpManager:o.setShowMcpManager,setShowAgentsConfig:o.setShowAgentsConfig,setShowRewindSelector:o.setShowRewindSelector,setShowLoginOverlay:o.setShowLoginOverlay,setShowAddDirModal:o.setShowAddDirModal,handleProviderSelect:g.handleProviderSelect,handleProviderCancel:g.handleProviderCancel,handleModelSelect:g.handleModelSelect,handleModelCancel:g.handleModelCancel,handleCompactModeSelect:g.handleCompactModeSelect,handleCompactModeCancel:g.handleCompactModeCancel,handleAuthSuccess:g.handleAuthSuccess,handleAuthCancel:g.handleAuthCancel})}__name(renderView,"renderView");var Mx=__name(({resume:e=!1,resumeSessionId:t,continue:n=!1,trust:r=!1,dangerouslySkipPermissions:o=!1,updateStatus:s,updateFailedInfo:i,initialPrompt:a,skipOnboarding:l=!1,initialPermissionMode:u,sessionTitleHolder:d})=>{const{exit:m}=ue(),{stdout:g}=ae(),[h,f]=Z(""),[y,w]=Z(""),S=ee(!1),E=ee(!1),C=ee(null),v=ee(null),k=useUiOverlays(),T=useFeed(),_=useSession(),x=useStatus(s),P=useAuth(),A=usePendingOps(),I=useOnboarding(),N=useExit(),{executeBash:R,executionState:M}=ZC(),L=usePermissionMode({initialPermissionMode:u,dangerouslySkipPermissions:o,setPendingPermission:A.setPendingPermission,setStatus:x.setStatus,contextEngineRef:v}),{createContextEngineCallbacks:$}=useContextEngine({sessionId:_.sessionId,sessionLoaded:_.sessionLoaded,showSessionSelector:k.showSessionSelector,projectTrusted:I.projectTrusted,setFeed:T.setFeed,setLiveEntries:T.setLiveEntries,setQueuedMessages:T.setQueuedMessages,queuedMessagesRef:T.queuedMessagesRef,setStatus:x.setStatus,pinnedStatusRef:x.pinnedStatusRef,setRetryAttempt:x.setRetryAttempt,setInteractionTokens:x.setInteractionTokens,setContextUsage:x.setContextUsage,setCurrentProvider:P.setCurrentProvider,shareInfoRef:x.shareInfoRef,permissionsService:L.permissionsService,permissionModeRef:L.permissionModeRef,setPendingQuestion:A.setPendingQuestion,contextEngineRef:v}),{onCommand:D}=useCommandCtx({feedState:T,sessionState:_,statusState:x,authState:P,uiOverlays:k,onboarding:I,exitState:N,permissionState:L,contextEngineRef:v,isSubmittingRef:S,executeBash:R,createContextEngineCallbacks:$,setInput:f}),{loadTasteStatus:O,loadCurrentProvider:F,onSubmit:q}=useStartup({resume:e,resumeSessionId:t,continueLatest:n,trust:r,initialPrompt:a,stdout:g,feedState:T,sessionState:_,statusState:x,authState:P,onboarding:I,uiOverlays:k,permissionState:L,contextEngineRef:v,isSubmittingRef:S,initialPromptSubmittedRef:E,historyManagerRef:C,executeBash:R,createContextEngineCallbacks:$,setInput:f,onCommand:D});useLifecycle({exit:m,feedState:T,exitState:N,statusState:x,authState:P,onboarding:I,uiOverlays:k,skipOnboarding:l,contextEngineRef:v,sessionTitleHolder:d});const{handleToggleAutoAccept:j,handleDoubleEscapeEmpty:B,handleTasteOnboardingComplete:U,handleTrust:z,handleNoTrust:H}=useHandlers({resume:e,feedState:T,onboarding:I,uiOverlays:k,exitState:N,pendingOps:A,permissionState:L,statusState:x,authState:P,contextEngineRef:v,loadTasteStatus:O,loadCurrentProvider:F,setInput:__name(e=>f(e),"setInput")}),W=useMainActionCallbacks({feedState:T,sessionState:_,statusState:x,authState:P,uiOverlays:k,permissionState:L,contextEngineRef:v,createContextEngineCallbacks:$,setInput:f}),{creditWarning:G}=useCreditWarning({interactionTokens:x.interactionTokens});return renderView({feedState:T,sessionState:_,statusState:x,authState:P,uiOverlays:k,onboarding:I,exitState:N,pendingOps:A,permissionState:L,contextEngineRef:v,historyManagerRef:C,executionState:M,actionCallbacks:W,onSubmit:q,onCommand:D,input:h,setInput:f,fileSearchQuery:y,setFileSearchQuery:w,updateFailedInfo:i,creditWarning:G,handleTrust:z,handleNoTrust:H,handleToggleAutoAccept:j,handleDoubleEscapeEmpty:B,handleTasteOnboardingComplete:U,loadTasteStatus:O})},"InteractiveCLI");$r(),Jn(),kr();var Lx=__name(e=>e.replace(/\x1B\[[0-9;]*[A-Za-z]/g,"").replace(/[\x00-\x1F\x7F]/g," ").trim(),"sanitizeTitleForOutput"),$x=me.hex(Xn.DIM),Dx=__name(e=>{const t=getInvokedCommandName(),n=Je([e]);return`${$x("To continue this session, run:")}\n${$x(`${t} --resume ${n}`)}\n`},"formatResumeHint"),Ox=__name(e=>e?{isValid:!0}:{isValid:!1,errorMessage:["Error: Interactive mode requires a TTY terminal.","Please run this command directly in your terminal, not through a pipe or redirect."].join("\n")},"validateTtyEnvironment"),Fx=__name(e=>Boolean(e.resume||e.continue),"shouldValidateSessions"),qx=__name(({isInitialized:e,sessionCount:t})=>e&&0===t?{canProceed:!1,exitCode:0,message:"No conversations found to resume."}:{canProceed:!0},"validateSessionAvailability"),jx=__name(({options:e,resumeSessionId:t,sessionTitleHolder:n})=>{let r;return e.permissionMode?r=e.permissionMode:e.plan&&(r="plan"),{resume:"boolean"==typeof e.resume?e.resume:void 0,resumeSessionId:t,continue:e.continue,trust:e.trust,dangerouslySkipPermissions:e.dangerouslySkipPermissions,initialPrompt:e.initialPrompt,skipOnboarding:e.skipOnboarding,initialPermissionMode:r,sessionTitleHolder:n}},"buildInteractiveCLIProps"),Bx=__name(()=>({stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1}),"getInkRenderOptions"),Ux=__name(()=>{enableBracketedPasteMode(),process.on("exit",()=>{disableBracketedPasteMode()})},"setupBracketedPasteMode"),zx=__name(()=>{Ux()},"initializeTerminal"),Hx=__name(async(e={})=>{const t=Ox(process.stdin.isTTY);let n;if(t.isValid||(console.error(t.errorMessage),process.exit(1)),zx(),"string"==typeof e.resume){const t=e.resume;await _C.isProjectInitialized()||(console.error("Project not initialized. Run cmd to start a conversation first."),process.exit(1));const r=await _C.findSessionByName(t);r||(console.error(`No session named "${t}" found.`),process.exit(1)),n=r.id}if(Fx(e)&&!n){const e=await _C.isProjectInitialized(),t=e?await _C.listSessions():[],n=qx({isInitialized:e,sessionCount:t.length});n.canProceed||(console.log(n.message),process.exit(n.exitCode))}startEarlyInputCapture();const r={},o=jx({options:e,resumeSessionId:n,sessionTitleHolder:r}),s=Bx(),i=ce(J.createElement(Mx,{...o}),s);registerInkControl({clear:i.clear,stdout:process.stdout,instance:await resolveInkInstance(process.stdout)}),await i.waitUntilExit();const a=await(r.loadTitle?.());if(a){const e=Lx(a);e&&process.stdout.write(Dx(e))}},"interactiveMode");dn(),tn(),sn(),xb(),wb();var Wx=__name(async()=>{try{return await runLogin(),!!await getAuthKey()||(console.error(`${Pe.cross} Authentication failed. Please try again with: cmd login`),!1)}catch(e){return isUserCancellation(e)||(console.error(`${Pe.cross} Login failed: ${getErrorMessage2(e)}`),console.error("Please try again with: cmd login")),!1}},"attemptLogin");async function ensureAuthenticated(){try{return!!await getAuthKey()||Wx()}catch(e){return console.error("Error checking authentication:",e),!1}}__name(ensureAuthenticated,"ensureAuthenticated");var Gx=__name(e=>e&&!e.startsWith("-")?e:void 0,"parsePrompt"),Vx=__name(async()=>{await ensureAuthenticated()||process.exit(1)},"requireAuth"),Qx=__name(e=>{const t={};return e.trust&&(t.trust=!0),e.dangerouslySkipPermissions&&(t.dangerouslySkipPermissions=!0,t.trust=!0),e.skipOnboarding&&(t.skipOnboarding=!0),e.plan&&(t.plan=!0),e.permissionMode&&(t.permissionMode=e.permissionMode),t},"buildRuntimeOptions"),Kx=__name(({options:e,runtimeOptions:t,initialPrompt:n})=>e.resume?{resume:e.resume,...t}:e.continue?{continue:!0,...t}:{...t,initialPrompt:n},"getInteractiveConfig"),Yx=__name((e,t)=>"string"==typeof e.print&&e.print.trim()?e.print:t&&!t.startsWith("-")?t:"","extractPrintQuery");async function interactiveModeAction(e,t){if(t.addDir&&t.addDir.length>0)for(const e of t.addDir)addDirectory(e);if(void 0!==t.print){const n=Yx(t,e);return void await printMode({query:n,dangerouslySkipPermissions:t.dangerouslySkipPermissions,maxTurns:t.maxTurns,verbose:t.verbose,model:t.model,benchmarkOutput:t.benchmarkOutput})}const n=Gx(e);await Vx();const r=Qx(t),o=Kx({options:t,runtimeOptions:r,initialPrompt:n});await Hx(o)}__name(interactiveModeAction,"interactiveModeAction"),tn(),Bn(),jo(),Fr(),fb(),xb(),globalThis.COMMAND_CODE_CWD=process.cwd();var Jx=__name(()=>process.cwd(),"getCwd"),Xx=__name(()=>process.argv.slice(2),"getArgs"),Zx=__name(e=>e.includes("--local")?"local":e.includes("--staging")?"staging":"production","getEnv"),eP=__name(()=>{const e=Jx(),t=Xx(),n=Zx(t);dlog(`[Startup] cwd: ${e}`),dlog(`[Startup] args: ${t.join(" ")}`),dlog(`[Startup] env: ${n}`),dlog(`[Startup] traceId: ${getTraceId()??"unavailable"}`)},"logStartupInfo");async function preRun(){eP(),process.argv.includes("--ide-setup")&&(formatSetupResult(await runIDESetup()).forEach(e=>console.log(e)),process.exit(0)),await maybeRunPendingUpdate(),await migrateDeprecatedModel(),await getAuthKey()&&detectAndTrackFirstInstall().catch(()=>{}),checkForUpdateAsync(),setTimeout(()=>ensureExtensionInstalled().catch(()=>{}),100)}__name(preRun,"preRun"),tn(),sn(),Bn(),oo(),Vr();var tP=getPackageJson(),nP=__name((e,t=[])=>[...t,e],"collectAddDir");function displayCustomHelp(){const e=tP.version,t=getInvokedCommandName(),n=uC.filter(e=>!("/provider"===e.key&&!isInternalTeamFlagEnforced()));console.log(),console.log(me.bold("Command Code")+me.gray(` v${e}`)),console.log(me.gray(sC)),console.log(),console.log(me.bold("Usage")),console.log(` ${t} <command> [options]`),console.log(),console.log(me.bold("Options"));for(const e of cC){const n=e.key.replace(/^cmd/,t);console.log(" "+n.padEnd(iC)+me.gray(e.description))}console.log(),console.log(me.bold("Commands"));for(const e of dC){const n=e.key.replace(/^cmd/,t);console.log(" "+n.padEnd(iC)+me.gray(e.description))}console.log(),console.log(me.bold("Slash Commands"));for(const e of n)console.log(" "+e.key.padEnd(iC)+me.gray(e.description));console.log(),console.log(me.bold("Keyboard Shortcuts"));for(const e of lC)console.log(" "+e.key.padEnd(iC)+me.gray(e.description));console.log(),console.log(me.bold("Examples"));for(const e of pC){const n=e.key.replace(/^cmd/,t);console.log(" "+n.padEnd(iC)+me.gray(e.description))}console.log(),console.log(me.cyan("❯")+" "+me.gray(gC.replace(/cmd/,t))),console.log(),console.log(me.bold("Links"));for(const e of mC)console.log(" "+e.key.padEnd(iC)+me.cyan(e.description));console.log()}function createProgram(){const e=new _e;return e.name(getInvokedCommandName()).description("Command Code with your coding taste.").version(tP.version,"-v, --version","display the version number").argument("[prompt]","Your prompt to run in interactive mode").option("-r, --resume [name]","Resume a session by name, or pick from history").option("-c, --continue"," Continue the most recent session in the current directory").option("-t, --trust","Trust the project (skip initial trust permission prompt)").addOption(new xe("--dangerously-skip-permissions","Bypass all permission prompts (use with caution)").hideHelp()).addOption(new xe("--yolo","Bypass all permission prompts (alias for --dangerously-skip-permissions)").implies({dangerouslySkipPermissions:!0})).option("--plan","Start in plan mode (read-only exploration and planning)").addOption(new xe("--auto-accept","Start in auto-accept mode").implies({permissionMode:"auto-accept"})).addOption(new xe("--permission-mode <mode>","Set permission mode").choices(["standard","plan","auto-accept"])).option("--skip-onboarding","Skip taste onboarding (for non-interactive/automated runs)").option("-p, --print [query]","Run in non-interactive mode, output response and exit").option("--max-turns <number>","Maximum conversation turns in print mode (default: 10)",e=>{const t=parseInt(e,10);if(isNaN(t)||t<1)throw new Error("--max-turns must be a positive integer");return t}).option("--verbose","Stream tool execution progress to stderr in print mode").option("--ide-setup",aC).option("--add-dir <directory>","Add directory to workspace context",nP,[]).addOption(new xe("--model <model>","Override model for this run").hideHelp()).addOption(new xe("--benchmark-output <path>","Path to write benchmark metrics JSON").hideHelp()).addOption(new xe("--experimental","Enable experimental features").hideHelp()).addOption(new xe(_t).hideHelp()).addOption(new xe(xt).hideHelp()).addOption(new xe("-d, --debug","Enable debug mode").hideHelp()).addOption(new xe("--local","Use local server").hideHelp()).addOption(new xe("--staging","Use staging server").hideHelp()).helpOption("-h, --help","Display help message").allowUnknownOption(),e.configureHelp({formatHelp:__name(()=>(displayCustomHelp(),""),"formatHelp")}),e}function setupCommanderHooks(e){e.hook("preAction",(e,t)=>{dlogSection("cmd");const n=t.name(),r=t.parent?.name();dlog(`[cmd] ${r&&r!==n?"subcommand":"running"}: ${n}`);const o=t.opts(),s=Object.entries(o).filter(([,e])=>void 0!==e&&!1!==e).map(([e,t])=>!0===t?`--${e}`:`--${e}=${t}`).join(" ");s&&dlog(`[cmd] options: ${s}`);const i=t.args;i.length>0&&dlog(`[cmd] arguments: ${i.join(" ")}`)}),e.hook("postAction",()=>{dlogSection("Done")})}function isTTY(){return Boolean(process.stdout.isTTY&&process.stdin.isTTY&&!process.env.CI)}__name(displayCustomHelp,"displayCustomHelp"),__name(createProgram,"createProgram"),__name(setupCommanderHooks,"setupCommanderHooks"),tn(),jo(),mo(),YS(),Pb(),jS(),oo(),xb(),tn(),__name(isTTY,"isTTY");var rP=!1;function setupTelemetry(){initTelemetry()&&(startSession(),trackSystemInfo(),trackCliSessionExistsEvent(),registerCleanupHandlers())}async function trackSystemInfo(){try{const e=process.version,t=y.platform(),n=y.arch();let r,o,s,i;try{const e=await getAuthenticatedEntity();e.success&&(r=e.user?.userName,o=e.user?.id,s=e.org?.login,i=e.org?.id)}catch{}if(!o)try{const e=await loadCredentials();o=e?.userId}catch{}systemInfo({userName:r,userId:o,orgLogin:s,orgId:i,nodeVersion:e,platform:t,arch:n})}catch{}}function registerCleanupHandlers(){process.on("beforeExit",async()=>{await shutdownTelemetry()}),process.on("exit",()=>{shutdownTelemetrySync()}),process.on("SIGINT",handleShutdownSignal),process.on("SIGTERM",handleShutdownSignal)}function handleShutdownSignal(){rP||(rP=!0,shutdownTelemetry().finally(()=>{process.exit(0)}))}async function trackCliSessionExistsEvent(){try{if(!await getAuthKey())return;const e=getSessionId();if(!e)return;const t=getPackageJson().version||"unknown",n=y.platform(),r=y.arch(),o=isTTY()?"interactive":"non-interactive";await trackLifecycleEvent({eventType:"cli_session_exists",metadata:{sessionId:e,cliVersion:t,mode:o,os:`${n}-${r}`}})}catch{}}async function openGitHubIssue(e){const t=buildGitHubIssueUrl(e),n=Ae("Opening GitHub issues...").start();try{await fe(t,{wait:!1,background:!0}),n.succeed(`Opened ${createOSC8Link(t,"GitHub issue")} in your browser`),console.log("")}catch(e){n.fail("Failed to open browser"),console.log(""),console.log(createOSC8Link(t,"Open GitHub issue manually")),console.log("")}}__name(setupTelemetry,"setupTelemetry"),__name(trackSystemInfo,"trackSystemInfo"),__name(registerCleanupHandlers,"registerCleanupHandlers"),__name(handleShutdownSignal,"handleShutdownSignal"),__name(trackCliSessionExistsEvent,"trackCliSessionExistsEvent"),xb(),tn(),Hr(),__name(openGitHubIssue,"openGitHubIssue");var oP=new _e("feedback").description("Open GitHub issues to share feedback or report bugs").argument("[title]","Optional issue title").action(openGitHubIssue);tn();var sP=new _e("help").description("Display help information").allowUnknownOption().allowExcessArguments().action(function(){this.parent?.help()});async function runInfo(e){const{waitUntilExit:t}=ce(J.createElement(qk,{verbose:e.verbose,text:e.text}));await t()}tn(),tn(),__name(runInfo,"runInfo");var iP=new _e("info").description("Display system information").option("--verbose","Show detailed CPU and network information").option("--text","Print plain text without colors").allowUnknownOption().allowExcessArguments().action(async e=>{await runInfo(e)});function runLearnTaste(){const{unmount:e}=ce(J.createElement(Ax,{onComplete:__name(()=>{e(),process.exit(0)},"onComplete"),onErrorDismiss:__name(()=>{e(),process.exit(1)},"onErrorDismiss")}))}tn(),sn(),tn(),__name(runLearnTaste,"runLearnTaste"),Bn(),jo();var aP=new _e(jt.LEARN_TASTE).description("Learn from your previous sessions - updates your taste profile").allowUnknownOption().allowExcessArguments().action(async()=>{try{runLearnTaste()}catch(e){trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"learn_taste_render_failed"}),context:{component:$o.LEARN_TASTE_COMMAND,heading:"Learn taste render failed"}}),dlog(`[/learn-taste] render failed: ${e instanceof Error?e.message:String(e)}`),await shutdownTelemetry(),process.exit(1)}});function addMcpCommand(){const e=new _e("add");return e.description("Add an MCP server").argument("<name>","Server name (unique identifier)").argument("[url]","Server URL (required for http transport)").option("-t, --transport <type>","Transport type (stdio or http)","stdio").addOption(new xe("-s, --scope <scope>","Configuration scope").choices(["local","project","user"]).default("local")).option("-e, --env <KEY=value>","Environment variable (repeatable)",collectKeyValue,{}).option("-H, --header <header>","HTTP header (repeatable, http only)",collectHeaders,{}).allowUnknownOption().allowExcessArguments().action(async(e,t,n,r)=>{const o=getInvokedCommandName();try{let s;/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(e)&&!e.includes("__")||(console.error(me.red(`Error: Invalid server name '${e}'`)),console.error(me.gray("Names must start with a letter or number, contain only letters, numbers, hyphens, and single underscores")),process.exit(1)),"stdio"!==n.transport&&"http"!==n.transport&&(console.error(me.red(`Error: Invalid transport type '${n.transport}'`)),console.error(me.gray("Valid options: stdio, http")),process.exit(1));let i=!1;if("http"===n.transport){t||(console.error(me.red("Error: URL is required for http transport")),console.error(me.gray("Usage: cmd mcp add --transport http <name> <url>")),process.exit(1));try{new URL(t)}catch{console.error(me.red(`Error: Invalid URL '${t}'`)),process.exit(1)}s={transport:"http",enabled:!0,url:t,...Object.keys(n.header).length>0&&{headers:n.header},...Object.keys(n.env).length>0&&{env:n.env}},console.log(me.gray("Checking server authentication requirements..."));const r=await checkServerAuthRequirements(t);if(r.error&&console.log(me.yellow(`Warning: ${r.error}`)),r.requiresAuth&&r.metadata){console.log(me.cyan("Server requires OAuth authentication."));let t,n="command-code";if(r.metadata.registrationEndpoint){console.log(me.gray("Registering OAuth client..."));const e=await registerOAuthClient({registrationEndpoint:r.metadata.registrationEndpoint,clientName:"Command Code CLI",redirectUris:[`http://127.0.0.1:${jw}/callback`]});e&&(n=e.clientId,t=e.clientSecret)}s.oauth={authorizationUrl:r.metadata.authorizationEndpoint,tokenUrl:r.metadata.tokenEndpoint,clientId:n,clientSecret:t,scopes:r.metadata.scopes},console.log(me.gray("A browser window will open for authentication.\n"));const o=await performOAuthFlow(e,{authorizationUrl:r.metadata.authorizationEndpoint,tokenUrl:r.metadata.tokenEndpoint,clientId:n,clientSecret:t,scopes:r.metadata.scopes},{onStatus:__name(e=>{console.log(me.gray(` ${e}`))},"onStatus")});o.success?console.log(me.green("✓ Successfully authenticated")):(i=!0,console.log(me.yellow(`Warning: Authentication failed: ${o.error}`)),console.log(me.gray("You can retry with: cmd mcp auth "+e)),console.log(me.gray("Or authenticate via the /mcp menu in a session")))}}else{const o=r.args,i=process.argv.indexOf("--");let a,l=[];if(-1!==i){const e=process.argv.slice(i+1);0===e.length&&(console.error(me.red("Error: Command is required for stdio transport")),console.error(me.gray("Usage: cmd mcp add --transport stdio <name> -- <command> [args...]")),process.exit(1)),a=e[0],l=e.slice(1)}else if(t){a=t;const n=o.indexOf(e);-1!==n&&o.length>n+2&&(l=o.slice(n+2))}else console.error(me.red("Error: Command is required for stdio transport")),console.error(me.gray("Usage: cmd mcp add --transport stdio <name> -- <command> [args...]")),console.error(me.gray(" or: cmd mcp add <name> <command> [args...]")),process.exit(1);s={transport:"stdio",enabled:!0,command:a,...l.length>0&&{args:l},...Object.keys(n.env).length>0&&{env:n.env}}}await addMcpServer({name:e,serverConfig:s,scope:n.scope});const a="user"===n.scope?"global":"project"===n.scope?"project":"local";if(i?console.log(me.yellow(`✓ Added MCP server '${e}' to ${a} config (authentication pending)`)):console.log(me.green(`✓ Added MCP server '${e}' to ${a} config`)),"http"===s.transport)console.log(me.gray(` URL: ${s.url}`));else{const e=[s.command,...s.args||[]].join(" ");console.log(me.gray(` Command: ${e}`))}console.log(""),console.log(me.cyan("Next steps:")),console.log(me.gray(`Start ${o} and run /mcp to manage configured MCP servers.`))}catch(e){console.error(me.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function collectKeyValue(e,t){const[n,...r]=e.split("=");return n&&0!==r.length||(console.error(me.red(`Error: Invalid format '${e}', expected KEY=value`)),process.exit(1)),t[n]=r.join("="),t}function collectHeaders(e,t){const n=e.indexOf(":");-1===n&&(console.error(me.red(`Error: Invalid header format '${e}', expected 'Header: value'`)),process.exit(1));const r=e.substring(0,n).trim(),o=e.substring(n+1).trim();return r||(console.error(me.red(`Error: Empty header name in '${e}'`)),process.exit(1)),t[r]=o,t}function listMcpCommand(){const e=new _e("list");return e.description("List configured MCP servers").action(async()=>{try{const e=await listMcpServers();if(0===e.length)return console.log(me.yellow("\nNo MCP servers configured\n")),console.log(me.gray("Add a server with:")),console.log(me.gray(" cmd mcp add --transport http <name> <url>")),console.log(me.gray(" cmd mcp add --transport stdio <name> -- <command>")),void console.log(me.gray("\nDocs: https://commandcode.ai/docs/mcp"));console.log(me.hex("#E4CCFF").bold("\nMCP Servers\n"));const t=Math.max(4,...e.map(e=>e.name.length)),n=5,r=7;console.log(me.dim(` ${"NAME".padEnd(t)} ${"TYPE".padEnd(n)} ${"SCOPE".padEnd(r)} AUTH STATUS`));for(const o of e){const e=o.config.enabled?me.green("enabled"):me.gray("disabled");let s;s=o.config.oauth?await hasTokens(o.name)?me.green(Pe.tick):me.red(Pe.cross):o.config.headers||o.config.env?me.green(Pe.tick):me.gray("-"),console.log(` ${me.white(o.name.padEnd(t))} ${me.cyan(o.config.transport.padEnd(n))} ${me.gray(o.scope.padEnd(r))} ${s} ${e}`)}console.log(me.dim(`\nTotal: ${e.length} server${1!==e.length?"s":""}\n`))}catch(e){console.error(me.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function getMcpCommand(){const e=new _e("get");return e.description("Show details for an MCP server").argument("<name>","Server name").action(async e=>{try{const t=await getMcpServer({name:e});t||(console.error(me.red(`Error: MCP server '${e}' not found`)),process.exit(1));const{config:n,scope:r}=t;if(console.log(me.hex("#E4CCFF").bold(`\nMCP Server: ${e}\n`)),console.log(` ${me.dim("Scope:")} ${r}`),console.log(` ${me.dim("Transport:")} ${n.transport}`),console.log(` ${me.dim("Status:")} ${n.enabled?me.green("enabled"):me.gray("disabled")}`),"http"===n.transport){if(console.log(` ${me.dim("URL:")} ${n.url}`),n.headers&&Object.keys(n.headers).length>0){console.log(` ${me.dim("Headers:")}`);for(const[e,t]of Object.entries(n.headers)){const n=e.toLowerCase().includes("auth")||e.toLowerCase().includes("token")||e.toLowerCase().includes("key")?"***":t;console.log(` ${e}: ${n}`)}}}else console.log(` ${me.dim("Command:")} ${n.command}`),n.args&&n.args.length>0&&console.log(` ${me.dim("Args:")} ${n.args.join(" ")}`);if(n.env&&Object.keys(n.env).length>0){console.log(` ${me.dim("Environment:")}`);for(const[e,t]of Object.entries(n.env)){const n=e.toLowerCase().includes("key")||e.toLowerCase().includes("secret")||e.toLowerCase().includes("token")||e.toLowerCase().includes("password")?"***":t;console.log(` ${e}=${n}`)}}console.log("")}catch(e){console.error(me.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function removeMcpCommand(){const e=new _e("remove");return e.description("Remove an MCP server").argument("<name>","Server name").addOption(new xe("-s, --scope <scope>","Scope to remove from (auto-detects if not specified)").choices(["local","project","user"])).action(async(e,t)=>{try{const n=await getMcpServer({name:e});n||(console.error(me.red(`Error: MCP server '${e}' not found`)),process.exit(1));const r=t.scope||n.scope;t.scope&&t.scope!==n.scope&&(console.error(me.red(`Error: Server '${e}' is defined in '${n.scope}' scope, not '${t.scope}'`)),process.exit(1)),await removeMcpServer({name:e,scope:r})||(console.error(me.red(`Error: Failed to remove server '${e}'`)),process.exit(1));const o="user"===r?"global":"project"===r?"project":"local";console.log(me.green(`✓ Removed MCP server '${e}' from ${o} config`))}catch(e){console.error(me.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function addJsonMcpCommand(){const e=new _e("add-json");return e.description("Add an MCP server from JSON configuration").argument("<name>","Server name (unique identifier)").argument("<json>","Server configuration as JSON string").addOption(new xe("-s, --scope <scope>","Configuration scope").choices(["local","project","user"]).default("local")).option("--client-secret <secret>","OAuth client secret (injected into oauth config)").action(async(e,t,n)=>{const r=getInvokedCommandName();try{let o,s;/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(e)&&!e.includes("__")||(console.error(me.red(`Error: Invalid server name '${e}'`)),console.error(me.gray("Names must start with a letter or number, contain only letters, numbers, hyphens, and single underscores")),process.exit(1));try{o=JSON.parse(t)}catch{console.error(me.red("Error: Invalid JSON")),console.error(me.gray("Make sure to quote the JSON string properly")),console.error(me.gray(`Example: ${r} mcp add-json github '{"type":"stdio","command":"npx"}'`)),process.exit(1)}o&&"object"==typeof o&&"type"in o&&!("transport"in o)&&(o.transport=o.type,delete o.type),o?.oauth?.callbackPort&&(s=o.oauth.callbackPort,delete o.oauth.callbackPort),n.clientSecret&&o?.oauth&&(o.oauth.clientSecret=n.clientSecret);const i=Aw.safeParse(o);if(!i.success){console.error(me.red("Error: Invalid server configuration"));for(const e of i.error.issues)console.error(me.gray(` ${e.path.join(".")}: ${e.message}`));process.exit(1)}const a=i.data;let l=!1;if("http"!==a.transport||a.url||(console.error(me.red("Error: URL is required for http type")),process.exit(1)),"stdio"!==a.transport||a.command||(console.error(me.red("Error: Command is required for stdio type")),process.exit(1)),await addMcpServer({name:e,serverConfig:a,scope:n.scope}),a.oauth){console.log(me.cyan("Starting OAuth authentication...")),console.log(me.gray("A browser window will open for authentication.\n"));const t={authorizationUrl:a.oauth.authorizationUrl,tokenUrl:a.oauth.tokenUrl,clientId:a.oauth.clientId,clientSecret:a.oauth.clientSecret,scopes:a.oauth.scopes},n=await performOAuthFlow(e,t,{...s&&{port:s},onStatus:__name(e=>{console.log(me.gray(` ${e}`))},"onStatus")});n.success?console.log(me.green(`\n✓ Successfully authenticated with '${e}'`)):(l=!0,console.error(me.yellow(`\nWarning: Authentication failed: ${n.error}`)),console.error(me.gray(`You can retry with: ${r} mcp auth ${e}`)),console.error(me.gray("Or authenticate via the /mcp menu in a session")))}const u="user"===n.scope?"global":"project"===n.scope?"project":"local";if(l?console.log(me.yellow(`✓ Added MCP server '${e}' to ${u} config (authentication pending)`)):console.log(me.green(`✓ Added MCP server '${e}' to ${u} config`)),"http"===a.transport)console.log(me.gray(` URL: ${a.url}`));else{const e=[a.command,...a.args||[]].join(" ");console.log(me.gray(` Command: ${e}`))}console.log(""),console.log(me.cyan("Next steps:")),console.log(me.gray(`Start ${r} and run /mcp to manage configured MCP servers.`))}catch(e){console.error(me.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function authMcpCommand(){const e=new _e("auth");return e.description("Manage OAuth authentication for MCP servers").argument("[server]","Server name to authenticate").option("--status","Check authentication status").option("--clear","Clear stored authentication").option("--list","List servers with stored authentication").action(async(e,t)=>{const n=getInvokedCommandName();try{if(t.list){const e=await listServersWithTokens();if(0===e.length)return void console.log(me.yellow("No servers with stored authentication."));console.log(me.hex("#E4CCFF").bold("\nAuthenticated MCP Servers\n"));for(const t of e){const e=await getTokens(t),n=!e||isTokenExpired(e)?me.yellow("expired"):me.green("valid");console.log(` ${t}: ${n}`)}return void console.log("")}if(e||(console.error(me.red("Error: Server name is required")),console.error(me.gray(`Usage: ${n} mcp auth <server>`)),console.error(me.gray(` ${n} mcp auth --list`)),process.exit(1)),t.status){if(!await hasTokens(e))return void console.log(me.yellow(`No authentication stored for '${e}'`));const t=await getTokens(e);if(!t)return void console.log(me.yellow(`No authentication stored for '${e}'`));if(isTokenExpired(t))console.log(me.yellow(`Authentication for '${e}' has expired`)),t.refreshToken&&console.log(me.gray(" A refresh token is available for re-authentication"));else{if(console.log(me.green(`Authentication for '${e}' is valid`)),t.expiresAt){const e=Math.round((t.expiresAt-Date.now())/1e3/60);console.log(me.gray(` Expires in ${e} minutes`))}t.scope&&console.log(me.gray(` Scopes: ${t.scope}`))}return}if(t.clear)return void(await deleteTokens(e)?console.log(me.green(`✓ Cleared authentication for '${e}'`)):console.log(me.yellow(`No authentication stored for '${e}'`)));const r=await getMcpServer({name:e});r||(console.error(me.red(`Error: MCP server '${e}' not found`)),console.error(me.gray(`Use "${n} mcp list" to see configured servers`)),process.exit(1)),r.config.oauth||(console.error(me.red(`Error: Server '${e}' does not have OAuth configured`)),console.error(me.gray(`Add OAuth config using "${n} mcp add-json" with oauth field`)),process.exit(1));const o={authorizationUrl:r.config.oauth.authorizationUrl,tokenUrl:r.config.oauth.tokenUrl,clientId:r.config.oauth.clientId,clientSecret:r.config.oauth.clientSecret,scopes:r.config.oauth.scopes};console.log(me.cyan(`Authenticating with '${e}'...`)),console.log(me.gray("A browser window will open for authentication.\n"));const s=await performOAuthFlow(e,o,{onStatus:__name(e=>{console.log(me.gray(` ${e}`))},"onStatus")});if(s.success)return console.log(me.green(`\n✓ Successfully authenticated with '${e}'`)),void console.log(me.gray("Restart the session to connect with the authenticated server."));console.error(me.red(`\nError: Authentication failed: ${s.error}`)),console.log(me.gray(`Try again with "${n} mcp auth ${e}"`)),process.exit(1)}catch(e){console.error(me.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function createMcpCommand(){const e=new _e("mcp");return e.description("Manage MCP (Model Context Protocol) servers").allowUnknownOption().allowExcessArguments(),e.addCommand(addMcpCommand()),e.addCommand(listMcpCommand()),e.addCommand(getMcpCommand()),e.addCommand(removeMcpCommand()),e.addCommand(addJsonMcpCommand()),e.addCommand(authMcpCommand()),e}async function runCommand(e){return new Promise((t,n)=>{const r=D(e.cmd,e.args,{stdio:["ignore","pipe","pipe"],env:process.env});let o="",s="";r.stdout.on("data",e=>{o+=String(e)}),r.stderr.on("data",e=>{s+=String(e)}),r.on("error",n),r.on("close",r=>{0!==r?n(new Error(`${e.cmd} ${e.args.join(" ")} failed${s?`: ${s.trim()}`:""}`)):t({stdout:o,stderr:s})})})}async function detectDefaultBranch(e){try{const{stdout:t}=await runCommand({cmd:"git",args:["-C",e.repoDir,"symbolic-ref","refs/remotes/origin/HEAD","--short"]}),n=t.trim().replace(/^origin\//,"");if(n)return n}catch{}for(const t of["main","master"])try{return await runCommand({cmd:"git",args:["-C",e.repoDir,"rev-parse","--verify",t]}),t}catch{}try{const{stdout:t}=await runCommand({cmd:"git",args:["-C",e.repoDir,"rev-parse","--abbrev-ref","HEAD"]});return t.trim()}catch{return"main"}}async function findGitRoot4(e){try{const{stdout:t}=await runCommand({cmd:"git",args:["-C",e.dir,"rev-parse","--show-toplevel"]});return t.trim()}catch{return null}}async function countLearnings(e){try{return(await F.readFile(e,"utf-8")).split("\n").filter(e=>e.trim().startsWith("- ")&&e.includes("Confidence:")).length}catch{return 0}}async function resolveSource(t){const n=t.source.trim(),r=e.resolve(n);try{if(!(await F.stat(r)).isDirectory())throw new Error(`Source must be a repository directory: ${n}`);return{type:"local",displayName:r,repoDir:r,repoName:e.basename(r),github:await inferGitHubRepo({repoDir:r})}}catch(e){if(e instanceof Error&&e.message.startsWith("Source must be"))throw e}const o=parseGitHubSource({source:n});if(!o){const e=n.startsWith("git@")?" SSH URLs are not supported. Use HTTPS or owner/repo instead.":"";throw new Error(`Unsupported source '${n}'.${e} Use a local path, GitHub HTTPS URL, or owner/repo.`)}const s=String(t.maxCommits??200),i=`https://github.com/${o.owner}/${o.repo}.git`,a=await F.mkdtemp(e.join(y.tmpdir(),"taste-learn-"));try{await runCommand({cmd:"git",args:["clone","--depth",s,"--single-branch",...t.branch?["--branch",t.branch]:[],"--",i,a]})}catch{throw await F.rm(a,{recursive:!0,force:!0}).catch(()=>{}),new Error(`Repository not found: ${o.owner}/${o.repo}. Check the owner and repo name, or verify it's a public repository.`)}return{type:"github",displayName:`${o.owner}/${o.repo}`,repoDir:a,repoName:o.repo,github:o,cleanup:__name(async()=>{await F.rm(a,{recursive:!0,force:!0})},"cleanup")}}function getTastePathForDir(t){return e.join(t.projectRoot,".commandcode","taste")}async function resolveDisplayName(t){if(t.startsWith("/")||t.startsWith(".")){const n=e.resolve(t),r=await findGitRoot4({dir:n});return r?e.basename(r):e.basename(n)}return t}function parseGitHubSource(e){const t=e.source.match(/^([\w.-]+)\/([\w.-]+)$/);if(t)return{owner:t[1],repo:t[2].replace(/\.git$/,"")};try{const t=new URL(e.source);if("github.com"!==t.hostname)return null;const n=t.pathname.split("/").filter(Boolean);return n.length<2?null:{owner:n[0],repo:n[1].replace(/\.git$/,"")}}catch{return null}}async function inferGitHubRepo(e){try{const{stdout:t}=await runCommand({cmd:"git",args:["-C",e.repoDir,"remote","get-url","origin"]});return parseGitHubSource({source:t.trim()})??void 0}catch{return}}async function feedToLearningAgent(e){const t=await getConfiguredProvider(),n=await getOAuthCredentials({provider:t});if(await isOAuthEnforced()&&!n?.token)throw new Error("Authentication required. Run: cmd login");n?.token&&validateOAuthToken({token:n.token,provider:t});const r=getApiBaseUrl(),o=new Jy({baseUrl:r}),s=new Nv({request:o,sessionId:crypto.randomUUID(),projectRoot:e.outputDir}),i=[{role:"user",content:e.compiledContext}];await s.checkAndProcess({messages:i})}function logLearnSummary(e){const{summary:t}=e;console.log(me.cyan("\n ─── Results ───\n")),console.log(` Source: ${t.sourceName}`),console.log(` Signals: ${t.signalCount} extracted`),console.log(` Context: ${t.contextLength} chars compiled`),console.log(` Taste dir: ${t.tasteDir}`),console.log("")}function shouldContinueExtraction(e){return!(e.offset>=e.commitsLength||e.signalCount>=e.signalCap||e.commitsWithDiffs>=50)}async function extractAllSignals(e){e.onProgress?.("Collecting commits");const t=await collectCommits(e);if(0===t.length)return e.onProgress?.("No commits found"),{signals:[],commitCount:0};e.onProgress?.(`Found ${t.length} commits to analyze`);const n=e.maxSignals??50,r=[];let o=0;for(let s=0;shouldContinueExtraction({offset:s,commitsLength:t.length,signalCount:r.length,signalCap:n,commitsWithDiffs:o});s+=10){const i=t.slice(s,s+10);if(0===i.length)break;const a=await runBounded(5,i,async t=>({commit:t,subs:await getSubstitutions(e.repoDir,t.hash)}));for(const{commit:e,subs:t}of a){if(0===t.length)continue;o++;const s=groupCrossFilePatterns(t);for(const t of s.slice(0,5)){if(t.removed.length>200||t.added.length>200)continue;const o=[`Commit: ${e.subject}`];o.push(`File: ${t.file}`),t.context&&o.push(`In: ${t.context}`);const s=buildSnippet(t.codeBefore,t.added,t.codeAfter);if(s&&o.push(s),r.push({text:`${truncate2(t.removed,60)} → ${truncate2(t.added,60)}`,evidence:o,category:inferCategory(t.removed,t.added)}),r.length>=n)break}if(r.length>=n)break}}return e.onProgress?.(`Extracted ${r.length} diff signals from ${o} commits`),{signals:r,commitCount:t.length}}async function collectCommits(e){const t=buildAuthorPattern(e.author,e.authorAliases),n=t?.includes("|")??!1,r=t?[...n?["--extended-regexp"]:[],"--author",t,"--regexp-ignore-case"]:[],o=e.branch?[e.branch]:[],s=e.author?e.maxCommits:3*e.maxCommits,{stdout:i}=await runCommand({cmd:"git",args:["-C",e.repoDir,"log",...o,"--no-merges",...r,"--pretty=format:%H%x1f%aI%x1f%aN%x1f%s%x1e","-n",String(s)]});return i.split("").map(e=>e.trim()).filter(Boolean).map(e=>{const[t="",n="",r="",o=""]=e.split("");return{hash:t.trim(),subject:o.trim(),authorDate:n.trim(),authorName:r.trim()}}).filter(e=>!isDependencyBot(e.authorName,e.subject)).slice(0,e.maxCommits)}async function getSubstitutions(e,t){try{const{stdout:n}=await runCommand({cmd:"git",args:["-C",e,"show","--format=","-U3","--diff-algorithm=histogram","-b","--ignore-blank-lines","-M",t]}),r=[];let o="",s="",i=[],a=[],l=[];const u=2;let d=null;const m=__name(()=>{d&&(r.push({removed:d.removed,added:d.added,file:d.file,context:d.context,codeBefore:d.codeBefore.length>0?d.codeBefore:void 0,codeAfter:d.codeAfter.length>0?d.codeAfter:void 0}),d=null)},"commitPending"),g=__name(()=>{if(i.length>0&&a.length>0){const e=i.join("\n").trim(),t=a.join("\n").trim();e===t||isVersionBump(e,t)||isTrivialChange(e,t)||(m(),d={removed:e,added:t,file:o,context:s||void 0,codeBefore:[...l],codeAfter:[]})}i=[],a=[]},"flush");for(const e of n.split("\n")){if(e.startsWith("diff --git")){g(),m(),o=e.match(/b\/(.+)$/)?.[1]??"",s="",l=[],isNoiseFile(o)&&(o="");continue}if(e.startsWith("@@")){g(),m(),s=e.match(/@@ .+ @@\s*(.+)/)?.[1]?.trim()??"",l=[];continue}if(!o)continue;if(e.startsWith("-")&&!e.startsWith("---")){a.length>0&&g(),i.push(e.slice(1));continue}if(e.startsWith("+")&&!e.startsWith("+++")){a.push(e.slice(1));continue}g();const t=e.startsWith(" ")?e.slice(1):e;if(!t.trim())continue;const n=d;null!==n&&n.codeAfter.length<u&&(n.codeAfter.push(t),n.codeAfter.length>=u&&m()),l.push(t),l.length>u&&l.shift()}return g(),m(),r}catch(e){return process.env.DEBUG&&console.error(`[taste-learn] getSubstitutions failed for ${t}:`,e instanceof Error?e.message:e),[]}}function groupCrossFilePatterns(e){const t=new Map;for(const n of e){const e=`${n.removed.trim()}\0${n.added.trim()}`,r=t.get(e)??[];r.push(n),t.set(e,r)}const n=[];for(const[,e]of t)if(e.length>=2){const t=e.map(e=>e.file).join(", ");n.push({...e[0],file:t,context:`Same change across ${e.length} files`})}else n.push(e[0]);return n}tn(),tn(),__name(addMcpCommand,"addMcpCommand"),__name(collectKeyValue,"collectKeyValue"),__name(collectHeaders,"collectHeaders"),tn(),__name(listMcpCommand,"listMcpCommand"),tn(),__name(getMcpCommand,"getMcpCommand"),tn(),__name(removeMcpCommand,"removeMcpCommand"),tn(),__name(addJsonMcpCommand,"addJsonMcpCommand"),tn(),__name(authMcpCommand,"authMcpCommand"),__name(createMcpCommand,"createMcpCommand"),tn(),sn(),tn(),HS(),tn(),sn(),tn(),__name(runCommand,"runCommand"),tn(),__name(detectDefaultBranch,"detectDefaultBranch"),__name(findGitRoot4,"findGitRoot"),__name(countLearnings,"countLearnings"),__name(resolveSource,"resolveSource"),__name(getTastePathForDir,"getTastePathForDir"),__name(resolveDisplayName,"resolveDisplayName"),__name(parseGitHubSource,"parseGitHubSource"),__name(inferGitHubRepo,"inferGitHubRepo"),tn(),gw(),Tw(),Fr(),Qr(),__name(feedToLearningAgent,"feedToLearningAgent"),__name(logLearnSummary,"logLearnSummary"),tn(),tn(),__name(shouldContinueExtraction,"shouldContinueExtraction"),__name(extractAllSignals,"extractAllSignals"),__name(collectCommits,"collectCommits"),__name(getSubstitutions,"getSubstitutions"),__name(groupCrossFilePatterns,"groupCrossFilePatterns");var lP=5,cP=3;function buildSnippet(e,t,n){const r=e??[],o=n??[],s=t.split("\n").map(e=>e.trimEnd());if(0===s.length&&0===r.length&&0===o.length)return;let i,a=0;s.length>cP?(i=s.slice(0,cP-1),a=s.length-i.length):i=s;const l=i.length+(a>0?1:0),u=Math.max(0,lP-l),d=Math.min(r.length,Math.ceil(u/2)),m=Math.min(o.length,u-d),g=[];for(const e of r.slice(-d))g.push(` ${e.trimEnd()}`);for(const e of i)g.push(`→ ${e}`);a>0&&g.push(`→ ... (+${a} more changed ${1===a?"line":"lines"})`);for(const e of o.slice(0,m))g.push(` ${e.trimEnd()}`);return 0!==g.length?`Snippet:\n${g.join("\n")}`:void 0}__name(buildSnippet,"buildSnippet");var uP=[/package-lock\.json$/,/pnpm-lock\.yaml$/,/yarn\.lock$/,/CHANGELOG\.(md|yml|yaml)$/i,/\.versionbot\//,/\.min\.(js|css)$/,/dist\//,/\.map$/];function isNoiseFile(e){return uP.some(t=>t.test(e))}function isTrivialChange(e,t){return e.trim().length<3&&t.trim().length<3}function isVersionBump(e,t){const n=/^"?version"?\s*:\s*"?\d+\.\d+/;return n.test(e.trim())&&n.test(t.trim())}function inferCategory(e,t){const n=`${e} ${t}`.toLowerCase();return/import|require|from\s+['"]/.test(n)?"imports":/function|=>|async|return/.test(n)?"code-style":/class|interface|type\s+/.test(n)?"types":/test|describe|it\(|expect/.test(n)?"testing":/console|log|debug|error/.test(n)?"logging":/try|catch|throw|Error/.test(n)?"error-handling":"code-style"}function buildAuthorPattern(e,t){return t&&t.length>0?t.map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"):e??void 0}__name(isNoiseFile,"isNoiseFile"),__name(isTrivialChange,"isTrivialChange"),__name(isVersionBump,"isVersionBump"),__name(inferCategory,"inferCategory"),__name(buildAuthorPattern,"buildAuthorPattern");var dP=new Set(["renovate[bot]","renovate","dependabot[bot]","dependabot","greenkeeper[bot]","snyk-bot"]),mP=[/^update .+ digest to /i,/^update .+ action to /i,/^update .+ to v?\d/i,/^update lock file maintenance/i,/^update dependency .+ to /i,/^chore\(deps\)/i,/^bump .+ from .+ to /i,/^lock file maintenance/i];function isDependencyBot(e,t){const n=e.toLowerCase();return!!dP.has(n)||!(!n.includes("[bot]")||!mP.some(e=>e.test(t)))}function truncate2(e,t){const n=e.replace(/\n/g," ").trim();return n.length<=t?n:`${n.slice(0,t-3)}...`}async function runBounded(e,t,n){const r=[];let o=0;const s=__name(async()=>{for(;o<t.length;){const e=o++;r[e]=await n(t[e])}},"next");return await Promise.all(Array.from({length:Math.min(e,t.length)},()=>s())),r}function compileTasteContext(e){const{signals:t,repoName:n,author:r,commitCount:o}=e,s=r?`Target author: ${r}\n`:"",i=[];if(i.push(`# Dynamic Taste Analysis — Code Change Patterns\n\nRepository: ${n}\n${s}Commits analyzed: ${o}\nSignals extracted: ${t.length}\n\nThis analysis was generated by examining actual code changes (diffs, substitutions, refactoring patterns) rather than static file contents. Every signal below comes from real commits.`),t.length>0){const e=["## Correction Diffs — What Wrong→Right Looks Like"];for(const n of t.slice(0,50)){e.push(`\n**${n.text}**`);for(const t of n.evidence)e.push(`- ${t}`)}i.push(e.join("\n"))}const a=r?` for ${r}`:"";return i.push(`## Instructions for Taste Learning\n\nYou are analyzing code change patterns from a real repository${a}. Based on the correction diffs above, generate deeply personal and opinionated coding taste.\n\n**Critical guidelines:**\n\n1. **Be specific, not generic.** Instead of "Use TypeScript", write "Use branded types for IDs and explicit return types on every function. Prefer \`readonly\` arrays and objects by default."\n\n2. **Extract the WHY from patterns.** If you see verbose names being replaced with concise ones, don't just say "use short names" — say "Prefer concise variable names that derive meaning from context rather than encoding type information."\n\n3. **Look for recurring themes.** If multiple substitutions show the same pattern (e.g., nested if→guard clauses), that's a strong taste signal worth capturing.\n\n4. **Make it actionable.** Every taste entry should be specific enough that another developer could follow it and produce code that looks like it belongs in this repository.\n\n5. **Prioritize quality corrections** — these are the purest taste signals (wrong→right pairs with explicit WHY context from commit messages).\n\n6. **Capture anti-patterns too.** If you see code being removed in refactors, note what the developer avoids: "Never nest deeper than 2 levels — flatten with early returns."\n\n7. **Don't repeat generic tool preferences** like "Use pnpm" or "Use TypeScript" unless the substitutions show something specific about HOW they use those tools.\n\n8. **Prioritize opinionated preferences.** The goal is taste that makes someone's code distinctly theirs — not industry best practices.\n\nWrite the taste entries to the taste.md file using the standard format with confidence scores.`),i.join("\n\n")}async function runLearnPipeline(t){const n=__name(()=>({outputDir:"",tasteDir:"",sourceName:t.source,signalCount:0,contextLength:0}),"abortedResult");if(t.needsAuth){Av.addEvent({type:"auth_required",step:"auth",message:"Login to synthesize your taste profile",label:"Signing in"});try{await Av.waitForAuth()}catch{return Av.emitStepStart({step:"complete",label:"Login skipped",message:"Login skipped",learningCount:0,storage:""}),Av.markLearningComplete(),{summary:n()}}}t.isLocalSource||Av.emitStepStart({step:"cloning",label:"Cloning repository",message:`Cloning ${t.source}`});const r=await resolveSource({source:t.source,maxCommits:t.maxCommits});if(t.signal.aborted)return{summary:n(),resolved:r};const o="github"===r.type,s=r.repoName,i=await findGitRoot4({dir:r.repoDir});if(!i)throw new Error(`Not a git repository: ${r.repoDir}. Run inside a git repo or pass the path: npx taste learn /path/to/repo`);const a=o?e.resolve(process.cwd(),s):i;o&&Av.emitStepStart({step:"collecting",label:"Collecting commits",message:`Cloned ${r.displayName} → ${a}`});const l=t.branch??await detectDefaultBranch({repoDir:i});await F.mkdir(a,{recursive:!0}),Av.emitStepStart({step:"collecting",label:"Collecting commits",message:`Fetching up to ${t.maxCommits} commits from ${l}`});const{signals:u,commitCount:d}=await extractAllSignals({repoDir:i,maxCommits:t.maxCommits,maxSignals:t.maxSignals,branch:l,onProgress:__name(e=>{Av.emitProgress({step:"extracting",message:e})},"onProgress")});if(t.signal.aborted)return{summary:n(),resolved:r};if(0===u.length)throw new Error("No signals extracted. Check the repository has commit history.");Av.emitStepStart({step:"extracting",label:"Extracting taste signals",message:`${u.length} before/after code changes extracted`}),Av.emitStepStart({step:"compiling",label:"Compiling taste context",message:`Formatting ${u.length} signals for the learning agent`});const m=compileTasteContext({signals:u,repoName:s,commitCount:d});if(t.signal.aborted)return{summary:n(),resolved:r};Av.emitStepStart({step:"learning",label:"Learning taste",message:"Interpreting code change patterns with AI"}),await feedToLearningAgent({compiledContext:m,outputDir:a});const g=getTastePathForDir({projectRoot:a}),h=e.join(g,"taste.md"),f=await countLearnings(h);return Av.emitStepStart({step:"complete",label:"Taste learned",message:"Taste learned",learningCount:f,storage:h}),Av.markLearningComplete(),{summary:{outputDir:a,tasteDir:g,sourceName:r.displayName,signalCount:u.length,contextLength:m.length},resolved:r}}__name(isDependencyBot,"isDependencyBot"),__name(truncate2,"truncate"),__name(runBounded,"runBounded"),tn(),__name(compileTasteContext,"compileTasteContext"),__name(runLearnPipeline,"runLearnPipeline"),tn(),tn(),tn();var pP=[/MallocStackLogging: can't turn off malloc stack logging because it was not enabled/i];function shouldIgnoreChunk(e){return pP.some(t=>t.test(e))}function chunkToString(e){return"string"==typeof e?e:Buffer.isBuffer(e)?e.toString("utf-8"):""}async function withFilteredStderrNoise(e){const t=process.stderr.write.bind(process.stderr);process.stderr.write=(e,...n)=>{const r=chunkToString(e);return!(!r||!shouldIgnoreChunk(r))||("function"==typeof n[0]?t(e,n[0]):t(e,n[0],n[1]))};try{return await e()}finally{process.stderr.write=t}}function toRepoLearnErrorMessage(e){return e instanceof Error?e.message:String(e)}function isRepoLearnMetricLikeText(e){const t=e.trim().toLowerCase();return/^\d+\s/.test(t)||/^saved\s/.test(t)||/^output\s/.test(t)||/^target\s/.test(t)||/\bcandidates\b/.test(t)||/\bevidence records\b/.test(t)||/\bhistory and review signals\b/.test(t)}function truncateRepoLearnPanelText(e,t=12){return truncateString({text:e,maxChars:Math.min(96,getEffectiveWidth({padding:t}))})}__name(shouldIgnoreChunk,"shouldIgnoreChunk"),__name(chunkToString,"chunkToString"),__name(withFilteredStderrNoise,"withFilteredStderrNoise"),tn(),Mo(),__name(toRepoLearnErrorMessage,"toRepoLearnErrorMessage"),__name(isRepoLearnMetricLikeText,"isRepoLearnMetricLikeText"),__name(truncateRepoLearnPanelText,"truncateRepoLearnPanelText"),tn(),tn();var gP=[{id:"collecting",label:"Collecting commits from repository"},{id:"extracting",label:"Extracting taste signals from diffs"},{id:"compiling",label:"Compiling taste context"},{id:"learning",label:"Learning taste from change patterns"},{id:"complete",label:"Taste learned"}],hP=[{id:"cloning",label:"Cloning repository"},...gP],fP=[Pe.bullet,Pe.squareSmallFilled,Pe.lozenge,Pe.star,Pe.triangleRight,Pe.triangleUp];function createInitialRepoLearnSteps(e){return(e??gP).map(e=>({...e,status:"pending"}))}__name(createInitialRepoLearnSteps,"createInitialRepoLearnSteps"),tn();var yP={learningCount:0,storage:"",topLearnings:[]};function getStepStatus(e,t){return e<t?"complete":e===t?"active":"pending"}function deriveStepStates(e,t){return e.map((e,n)=>({...e,status:getStepStatus(n,t)}))}function parseSummaryMetric(e){if(e.startsWith("Maintainer: "))return{maintainerLabel:e.replace(/^Maintainer:\s+/,"")};const t=e.match(/^(\d+)\s+maintainer-specific preferences$/);if(t)return{maintainerCount:Number(t[1])};const n=e.match(/^(\d+)\s+repository conventions$/);return n?{repoCount:Number(n[1])}:null}__name(getStepStatus,"getStepStatus"),__name(deriveStepStates,"deriveStepStates"),__name(parseSummaryMetric,"parseSummaryMetric");var wP=__name(e=>e.map(e=>({...e,status:"complete"})),"markAllStepsComplete"),SP=__name(e=>e??yP,"withBase");function useRepoLearnState(e){const t=e??gP,[n,r]=Z(()=>createInitialRepoLearnSteps(t)),[o,s]=Z(""),[i,a]=Z([]),[l,u]=Z(null),[d,m]=Z(!1),[g,h]=Z(!1),[f,y]=Z(null),[w,S]=Z(0),E=ee(null),[C,v]=Z(null),k=re(()=>{E.current=Date.now()},[]);return te(()=>{const e=__name(()=>{r(createInitialRepoLearnSteps(t)),s(""),a([]),u(null),h(!1),y(null),S(0),E.current=null,v(null),m(!1)},"handleReset"),n=__name(e=>{if("error"===e.type)return y(e.message),h(!0),r(wP),void s("");if("auth_required"!==e.type){if("step_start"===e.type&&e.step){const n=t.findIndex(t=>t.id===e.step);return n>=0&&r(deriveStepStates(t,n)),s(e.message||e.label||""),void("complete"===e.step&&u(t=>{const n=SP(t);return{...n,learningCount:e.learningCount??n.learningCount,storage:e.storage??n.storage}}))}"progress"!==e.type||"complete"!==e.step?"progress"!==e.type?"insight"===e.type&&(isRepoLearnMetricLikeText(e.message)||("complete"!==e.step?(S(e=>e+1),a(t=>[...t,e.message].slice(-4))):u(t=>{const n=SP(t);return{...n,topLearnings:[...n.topLearnings,e.message].slice(0,3)}}))):s(e.message):u(t=>{const n=SP(t),r=parseSummaryMetric(e.message);return r?{...n,...r}:n})}else m(!0)},"handleEvent"),o=__name(()=>{h(e=>e||(r(wP),!0)),s(""),E.current&&v(Math.round((Date.now()-E.current)/1e3))},"handleComplete");return Av.on("reset",e),Av.on("new-event",n),Av.on("learning-complete",o),()=>{Av.off("reset",e),Av.off("new-event",n),Av.off("learning-complete",o)}},[t]),{steps:n,currentMessage:o,insights:i,insightCount:w,summary:l,done:g,error:f,showLogin:d,setShowLogin:m,elapsedSeconds:C,markStarted:k}}__name(useRepoLearnState,"useRepoLearnState"),tn(),tn(),kr();var bP=__name(({isComplete:e,hasError:t})=>J.createElement(oe,{flexDirection:"column",marginTop:1,marginBottom:0},J.createElement(gx,null),J.createElement(oe,{marginTop:0},J.createElement(se,{color:Xn.DIM},fx),J.createElement(oe,{marginLeft:2},t?J.createElement(se,{color:Xn.DIM},"learning interrupted"):e?J.createElement(se,{color:er.TEXT},"learned your coding taste"):J.createElement(yx,null)))),"RepoLearnTastePill");tn(),kr();var EP=__name(({status:e})=>"active"===e?J.createElement(oe,null,J.createElement(se,{color:Xn.YELLOW},J.createElement(Oe,{type:"dots"})),J.createElement(se,null," ")):"complete"===e?J.createElement(se,{color:sr.BG},Pe.square," "):J.createElement(se,{color:Xn.DIM},Pe.circle," "),"StepStatusIndicator"),CP=__name(({steps:e,currentMessage:t})=>J.createElement(oe,{flexDirection:"column",marginTop:1},e.map(e=>{const n="active"===e.status;return J.createElement(oe,{key:e.id,flexDirection:"column",marginBottom:0,marginLeft:3},J.createElement(oe,null,J.createElement(oe,{marginRight:1},J.createElement(EP,{status:e.status})),J.createElement(se,{bold:n,color:"complete"===e.status?Xn.WHITE:n?Xn.YELLOW:Xn.DIM},e.label)),n&&t?J.createElement(oe,{marginLeft:3},J.createElement(se,{color:Xn.DIM},truncateRepoLearnPanelText(t))):null)})),"RepoLearnStepList");tn(),kr();var vP=__name(({insights:e,insightCount:t})=>0===e.length?null:J.createElement(oe,{flexDirection:"column",marginTop:1,marginLeft:4},J.createElement(se,{color:Xn.CYAN},t>0?`Recent signals · ${t} ${1===t?"preference":"preferences"} learned`:"Recent signals"),e.map((e,t)=>J.createElement(se,{key:`${t}-${e}`,color:Xn.DIM},fP[t%fP.length]," ",truncateRepoLearnPanelText(e,14)))),"RepoLearnRollingInsights");tn(),kr();var kP=__name(({message:e})=>J.createElement(oe,{flexDirection:"column",borderStyle:"single",borderColor:Xn.RED,paddingX:2,paddingY:1,marginTop:1},J.createElement(se,{color:Xn.RED,bold:!0},"Oops, something went wrong:"),J.createElement(oe,{marginTop:1},J.createElement(se,null,e))),"RepoLearnErrorPanel");tn(),kr(),qr();var TP=__name(({summary:e,elapsedSeconds:n})=>{if(!e)return null;const r=t.relative(process.cwd(),e.storage),o=e.learningCount>0;return J.createElement(oe,{flexDirection:"column",marginLeft:3},J.createElement(oe,{marginBottom:1,flexDirection:"row"},J.createElement(se,{color:Xn.DIM},fx),J.createElement(oe,{marginLeft:2},J.createElement(se,{color:er.TEXT},o?`Learned ${e.learningCount} ${1===e.learningCount?"preference":"preferences"}`:"Taste profile initialized",n?` in ${n} ${1===n?"second":"seconds"}`:""))),J.createElement(oe,{flexDirection:"column",marginLeft:1},J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},Pe.pointerSmall," Taste stored in"," "),J.createElement(Dr,{url:`file://${e.storage}`,text:r||".commandcode/taste/taste.md",color:Xn.CYAN})),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},Pe.pointerSmall," Share your coding taste: ",J.createElement(se,{color:Xn.CYAN},"npx taste push --all")))),J.createElement(oe,{marginTop:1,marginLeft:1},J.createElement(se,{color:Xn.DIM},o?"Command Code automatically uses & updates taste files as you code.":"Command Code will learn your preferences as you code.")))},"RepoLearnCompletionSummary");tn(),kr();var _P=__name(({done:e,error:t})=>t?J.createElement(oe,{marginTop:1},J.createElement(se,{bold:!0},"Press ESC to exit")):e?J.createElement(oe,{marginTop:1},J.createElement(se,{bold:!0},"Press ENTER to continue")):J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"ESC to cancel")),"RepoLearnFooter");tn(),kr();var xP=__name(({text:e,repoName:t})=>{const n=useTerminalWidth(),r=ne(()=>CT(n),[n]);return J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(PT,null,r.trimEnd())),e?J.createElement(se,{color:Xn.WHITE},e):J.createElement(J.Fragment,null,J.createElement(se,{color:Xn.WHITE},"Learning your coding taste from ",J.createElement(se,{bold:!0,color:Xn.CYAN},t??"repository")),J.createElement(se,{color:Xn.DIM},"This may take a few minutes depending on repository size")))},"RepoLearnHeader");function StatusPanel({error:e,done:t,summary:n,elapsedSeconds:r,insights:o,insightCount:s}){return e?J.createElement(kP,{message:e}):t?J.createElement(TP,{summary:n,elapsedSeconds:r}):J.createElement(vP,{insights:o,insightCount:s})}function RepoLearnProgressApp({runTask:e,onExit:t,stepOrder:n,headerText:r,repoName:o}){const s=useRepoLearnState(n),i=ee(!1);return te(()=>{i.current||(i.current=!0,s.markStarted(),e().catch(()=>{}))},[e,s.markStarted]),le((e,n)=>{if(s.showLogin)return;const r=n.escape||""===e,o=n.return||"\n"===e||"\r"===e;r?t({published:!1,cancelled:!0}):(s.done||s.error)&&o&&t({published:!1,cancelled:!!s.error})}),s.showLogin?J.createElement(oe,{flexDirection:"column"},J.createElement(xP,{text:r,repoName:o}),J.createElement(F_,{onComplete:(e,t)=>{s.setShowLogin(!1),e?Av.resolveAuth():Av.rejectAuth(t)},onCancel:()=>{s.setShowLogin(!1),Av.rejectAuth("Login cancelled"),t({published:!1,cancelled:!0})}})):J.createElement(oe,{flexDirection:"column"},J.createElement(xP,{text:r,repoName:o}),J.createElement(bP,{isComplete:s.done&&!s.error,hasError:Boolean(s.error)}),J.createElement(CP,{steps:s.steps,currentMessage:s.currentMessage}),J.createElement(StatusPanel,{error:s.error,done:s.done,summary:s.summary,elapsedSeconds:s.elapsedSeconds,insights:s.insights,insightCount:s.insightCount}),J.createElement(_P,{done:s.done,error:s.error}))}async function runRepoLearnProgress(e){return withFilteredStderrNoise(()=>renderProgressUI(e))}function renderProgressUI(e){return new Promise((t,n)=>{Av.reset();const r=new AbortController;let o,s,i=!1,a=!1;const l=__name(async()=>{try{o=await e.runTask(r.signal)}catch(e){r.signal.aborted||(s=e,Av.addEvent({type:"error",message:toRepoLearnErrorMessage(e)}),Av.markLearningComplete())}},"handleRunTask"),u=__name(({published:e,cancelled:l})=>{a||(a=!0,i=e,r.abort(),d.unmount(),Av.reset(),s?n(s):t({result:o,published:i,cancelled:l}))},"handleExit"),d=ce(J.createElement(RepoLearnProgressApp,{stepOrder:e.stepOrder,headerText:e.headerText,repoName:e.repoName,runTask:l,onExit:u}));d.waitUntilExit().catch(e=>{Av.reset(),n(e)})})}__name(StatusPanel,"StatusPanel"),__name(RepoLearnProgressApp,"RepoLearnProgressApp"),__name(runRepoLearnProgress,"runRepoLearnProgress"),__name(renderProgressUI,"renderProgressUI"),xb();var PP=__name(e=>t=>{const n=parseInt(t,10);if(isNaN(n)||n<1)throw new Error(`${e} must be a positive integer`);return n},"parsePositiveInt");function createLearnCommand(){return new _e("learn").description("Learn coding taste from repository change history").argument("[source]","Local path, GitHub URL, or owner/repo (defaults to current directory)").option("--max-commits <number>","Maximum commits to analyze",PP("--max-commits"),200).addOption(new xe("--max-signals <number>","Maximum diff signals to extract").default(50).argParser(PP("--max-signals")).hideHelp()).option("--branch <name>","Branch to analyze (defaults to main/master)").action(async(e,t)=>{try{await learnTaste({source:e??".",maxCommits:t.maxCommits??200,maxSignals:t.maxSignals??50,branch:t.branch})}catch(e){const t=e instanceof Error?e.message:String(e);console.error(`Error: ${t}`),process.exit(1)}})}async function learnTaste(t){const n=await F.stat(e.resolve(t.source)).then(e=>e.isDirectory()).catch(()=>!1),r=isTTY(),o=await resolveDisplayName(t.source),s=!await getAuthKey();if(s&&!r)return console.log(""),console.log(" Login required to learn taste."),console.log(""),console.log(" Run: cmd login"),console.log(` Then: npx taste learn ${t.source}`),void console.log("");let i;const a=__name(()=>{i?.().finally(()=>process.exit(130))},"sigintHandler");process.once("SIGINT",a);let l=!1;try{const e=__name(async e=>{const{summary:r,resolved:o}=await runLearnPipeline({...t,isLocalSource:n,needsAuth:s,signal:e});return i=o?.cleanup,r},"runTask");if(r){const t=n?void 0:[...hP];({cancelled:l}=await runRepoLearnProgress({runTask:e,repoName:o,stepOrder:t}))}else logLearnSummary({summary:await e((new AbortController).signal)})}finally{process.off("SIGINT",a),i&&await i()}r&&!l||process.exit(0),BS(),await Hx({skipOnboarding:!0})}function getTastePath(t){const{target:n}=t;if("local-project"===n)return e.join(process.cwd(),".commandcode","taste");if("local-global"===n)return e.join(y.homedir(),".commandcode","taste");throw new Error(`Remote storage not yet implemented: ${n}`)}function getRootTasteFile(t){const{target:n}=t;return e.join(getTastePath({target:n}),"taste.md")}function getCategoryPath(t){const{target:n,category:r}=t;return e.join(getTastePath({target:n}),r)}function getCategoryTasteFile(t){const{target:n,category:r}=t;return e.join(getCategoryPath({target:n,category:r}),"taste.md")}__name(createLearnCommand,"createLearnCommand"),__name(learnTaste,"learnTaste"),tn(),tn(),tn(),sn(),__name(getTastePath,"getTastePath"),__name(getRootTasteFile,"getRootTasteFile"),__name(getCategoryPath,"getCategoryPath"),__name(getCategoryTasteFile,"getCategoryTasteFile"),tn(),tn();var AP=/confidence:/i;function findLookaheadEnd(e,t){const n=e.slice(t),r=n.findIndex(e=>{const t=e.trim();return t.startsWith("#")||t.startsWith("-")||AP.test(t)});if(-1===r)return{endIdx:e.length,inclusive:!1};const o=n[r].trim();return{endIdx:t+r,inclusive:AP.test(o)&&!o.startsWith("#")&&!o.startsWith("-")}}function joinMultiLineLearning(e,t,n){const{endIdx:r,inclusive:o}=findLookaheadEnd(e,t),s=o?r+1:r;return{combined:[n,...e.slice(t,s).map(e=>e.trim()).filter(e=>e.length>0)].join(" "),nextIdx:s}}function processRawLine(e,t){const n=e[t],r=t+1,o=n.trim();if(!o.startsWith("-"))return{entry:{text:n,originalLineNum:r},nextIdx:t+1};if(AP.test(o))return{entry:{text:n,originalLineNum:r},nextIdx:t+1};const{combined:s,nextIdx:i}=joinMultiLineLearning(e,t+1,n);return{entry:{text:s,originalLineNum:r},nextIdx:i}}function preprocessLines(e){const t=[];let n=0;for(;n<e.length;){const{entry:r,nextIdx:o}=processRawLine(e,n);t.push(r),n=o}return t}function validateLearningLine(e){const{line:t,lineNum:n}=e,r=[],o=t.substring(1).trim();if(!AP.test(o))return r.push({line:n,severity:"error",message:'Learning is missing "Confidence:" field',suggestion:'Format: "- Learning text. Confidence: 0.95" (value between 0.0 and 1.0)'}),r;const s=Array.from(o.matchAll(/confidence:\s*(\S+)/gi)),i=s.length>0?s[s.length-1]:null;if(!i)return r.push({line:n,severity:"error",message:"Confidence field is present but has no value",suggestion:'Add a number after "Confidence:" (e.g., Confidence: 0.95)'}),r;const a=i[1],l=parseFloat(a);if(isNaN(l))return r.push({line:n,severity:"error",message:`Confidence value "${a}" is not a valid number`,suggestion:"Use a decimal number between 0.0 and 1.0 (e.g., 0.95)"}),r;(l<0||l>1)&&r.push({line:n,severity:"error",message:`Confidence value ${l} is out of range`,suggestion:"Confidence must be between 0.0 and 1.0"}),l>=0&&l<=1&&0===l&&r.push({line:n,severity:"warning",message:"Confidence is 0.0 - this learning may not be useful",suggestion:"Consider removing learnings with 0 confidence"});const u=void 0!==i.index?o.substring(0,i.index).trim():o.trim();return u&&0!==u.length?(u.length<3&&r.push({line:n,severity:"warning",message:"Learning text is very short",suggestion:"Provide more descriptive text for clarity"}),r):(r.push({line:n,severity:"error",message:'Learning has no text before "Confidence:"',suggestion:'Add descriptive text (e.g., "Use pnpm for package management")'}),r)}function hasReferenceAfterCategory(e){const{lines:t,categoryLineIndex:n}=e,r=t.slice(n+1,n+4),o=r.findIndex(e=>e.trim().startsWith("# "));return(-1===o?r:r.slice(0,o)).some(e=>e.includes("See [")&&e.includes("taste.md"))}function buildResult(e){const{issues:t,filePath:n}=e,r=t.filter(e=>"error"===e.severity),o=t.filter(e=>"warning"===e.severity),s=0===r.length;if(0===t.length)return{valid:s,issues:[...t],summary:`${Pe.tick} ${n} is valid`};const i=[];r.length>0&&i.push(`${r.length} error${r.length>1?"s":""}`),o.length>0&&i.push(`${o.length} warning${o.length>1?"s":""}`);const a=r.length>0?Pe.cross:Pe.warning;return{valid:s,issues:[...t],summary:`${a} ${n} has ${i.join(", ")}`}}function formatSingleIssue(e,t){const n=[`${e.line?me.dim(` Line ${e.line}: `):" "}${t(e.message)}`];return e.suggestion&&n.push(me.dim(` → ${e.suggestion}`)),n}function formatIssueGroup(e,t,n){return 0===e.length?[]:[n,...e.flatMap(e=>formatSingleIssue(e,t)),""]}function formatValidationIssues(e){const{result:t,verbose:n=!0}=e;if(0===t.issues.length){const e=t.summary.charAt(0),n=t.summary.substring(2);return`${me.green(e)} ${me.dim(n)}`}if(!n)return t.summary;const r=t.issues.filter(e=>"error"===e.severity),o=t.issues.filter(e=>"warning"===e.severity);return[r.length>0?me.red(t.summary):me.yellow(t.summary),"",...formatIssueGroup(r,me.red,me.bold(me.red("Errors:"))),...formatIssueGroup(o,me.yellow,me.bold(me.yellow("Warnings:")))].join("\n").trim()}__name(findLookaheadEnd,"findLookaheadEnd"),__name(joinMultiLineLearning,"joinMultiLineLearning"),__name(processRawLine,"processRawLine"),__name(preprocessLines,"preprocessLines"),__name(validateLearningLine,"validateLearningLine"),__name(hasReferenceAfterCategory,"hasReferenceAfterCategory"),__name(buildResult,"buildResult"),tn(),__name(formatSingleIssue,"formatSingleIssue"),__name(formatIssueGroup,"formatIssueGroup"),__name(formatValidationIssues,"formatValidationIssues");var IP=new Set(["# Taste (Continuously Learned by [CommandCode][cmd])","# Taste (Continuously Learned by CommandCode.ai)","# Taste (Continuously Learned by CommandCode)"]);function warnIfEmptyCategory(e,t){!e.currentCategory||e.learningsInCurrentCategory>0||hasReferenceAfterCategory({lines:t,categoryLineIndex:e.categoryLineNumber-1})||e.issues.push({line:e.categoryLineNumber,severity:"warning",message:`Category '${e.currentCategory}' has no learnings`,suggestion:"Add at least one learning or remove this category"})}function processHeading(e){const{line:t,lineNum:n,state:r,rawLines:o}=e;IP.has(t.trim())||(r.hasAnyCategory=!0,warnIfEmptyCategory(r,o),r.currentCategory=t.trim().substring(2).trim(),r.categoryLineNumber=n,r.learningsInCurrentCategory=0)}function processLearning(e){const{line:t,lineNum:n,state:r}=e;r.currentCategory?(r.learningsInCurrentCategory++,r.issues.push(...validateLearningLine({line:t.trim(),lineNum:n}))):r.issues.push({line:n,severity:"error",message:"Learning found outside of any category",suggestion:'Add a category header (e.g., "# cli") before this learning'})}__name(warnIfEmptyCategory,"warnIfEmptyCategory"),__name(processHeading,"processHeading"),__name(processLearning,"processLearning");var NP=/^see \[[^\]]+\/taste\.md\]\([^\)]+\/taste\.md\)$/i,RP=/^\[cmd\]: https:\/\/commandcode\.ai\/$/i;function processLine(e){const{line:t,lineNum:n,state:r,rawLines:o}=e,s=t.trim();s&&(s.startsWith("# ")?processHeading({line:t,lineNum:n,state:r,rawLines:o}):s.startsWith("-")?processLearning({line:t,lineNum:n,state:r}):NP.test(s)||RP.test(s)||r.issues.push({line:n,severity:"error",message:"Invalid content - must be a category header (# name) or learning (- text)",suggestion:"Remove this line or format it as a category (# name) or learning (- text. Confidence: 0.XX)"}))}function checkFinalCategory(e){const{state:t,rawLines:n}=e;!t.currentCategory||t.learningsInCurrentCategory>0||!t.categoryLineNumber||hasReferenceAfterCategory({lines:n,categoryLineIndex:t.categoryLineNumber-1})||t.issues.push({line:t.categoryLineNumber,severity:"warning",message:`Category '${t.currentCategory}' has no learnings`,suggestion:"Add at least one learning or remove this category"})}function validateTasteFile(e){const{content:t,filePath:n}=e,r=[];if(!t.trim())return r.push({severity:"error",message:"File is empty",suggestion:"Add at least one category with learnings"}),buildResult({issues:r,filePath:n});const o=t.split("\n"),s=preprocessLines(o),i={currentCategory:null,categoryLineNumber:null,learningsInCurrentCategory:0,hasAnyCategory:!1,issues:r};for(const{text:e,originalLineNum:t}of s)processLine({line:e,lineNum:t,state:i,rawLines:o});return checkFinalCategory({state:i,rawLines:o}),buildResult({issues:r,filePath:n})}__name(processLine,"processLine"),__name(checkFinalCategory,"checkFinalCategory"),__name(validateTasteFile,"validateTasteFile");var MP=__name(e=>"local-global"===e?"global":"project","locationLabel"),LP=__name(({file:e,error:t})=>({success:!1,filesLinted:[],errors:[{file:e,error:t}],totalErrors:0,totalWarnings:0}),"failResult");function resolvePackageFile(e,t){const n=getCategoryTasteFile({target:t,category:e});return k(n)?{result:{path:n,displayName:`${e}/taste.md`}}:{error:{file:e,error:`Taste package '${e}' not found in ${MP(t)}`}}}function collectSpecificFiles(e){const{packages:t,target:n}=e,r=t.map(e=>resolvePackageFile(e,n));return{files:r.filter(e=>"result"in e).map(e=>e.result),errors:r.filter(e=>"error"in e).map(e=>e.error)}}async function collectAllFiles(e){const{tastePath:t,target:n}=e,r=[],o=getRootTasteFile({target:n});k(o)&&r.push({path:o,displayName:"taste.md"});const s=(await F.readdir(t,{withFileTypes:!0})).filter(e=>e.isDirectory()).map(e=>({entry:e,categoryFile:getCategoryTasteFile({target:n,category:e.name})})).filter(({categoryFile:e})=>k(e)).map(({entry:e,categoryFile:t})=>({path:t,displayName:`${e.name}/taste.md`}));return r.push(...s),r}async function lintFile(e){let t=await F.readFile(e.path,"utf-8");const n=migrateHeader({content:t});n!==t&&(await F.writeFile(e.path,n,"utf-8"),t=n);const r=validateTasteFile({content:t,filePath:e.displayName}),o=r.issues.filter(e=>"error"===e.severity).length,s=r.issues.filter(e=>"warning"===e.severity).length,i=formatValidationIssues({result:r});return{file:e.displayName,valid:r.valid,errors:o,warnings:s,formatted:i}}async function lintSpecificPackages(e){const{packages:t,target:n}=e,{files:r,errors:o}=collectSpecificFiles({packages:t,target:n});if(0===r.length&&o.length>0)return{success:!1,filesLinted:[],errors:o,totalErrors:0,totalWarnings:0};if(0===r.length)return LP({file:"all",error:`No taste files found in ${MP(n)}`});const s=await Promise.all(r.map(lintFile)),i=s.reduce((e,t)=>e+t.errors,0),a=s.reduce((e,t)=>e+t.warnings,0);return{success:s.every(e=>e.valid)&&0===o.length,filesLinted:s,errors:o,totalErrors:i,totalWarnings:a}}async function lintAllFiles(e){const{tastePath:t,target:n}=e,r=await collectAllFiles({tastePath:t,target:n});if(0===r.length)return LP({file:"all",error:`No taste files found in ${MP(n)}`});const o=await Promise.all(r.map(lintFile)),s=o.reduce((e,t)=>e+t.errors,0),i=o.reduce((e,t)=>e+t.warnings,0);return{success:o.every(e=>e.valid),filesLinted:o,errors:[],totalErrors:s,totalWarnings:i}}async function lint(e){const{packages:t,target:n}=e,r=getTastePath({target:n});return k(r)?t.length>0?lintSpecificPackages({packages:t,target:n}):lintAllFiles({tastePath:r,target:n}):LP({file:"all",error:`No taste directory found in ${MP(n)}`})}function resolveConflictStrategy(e){const t=[e.skip&&"skip",e.merge&&"merge",e.overwrite&&"overwrite"].filter(Boolean);return t.length>1&&exitWithError(`Cannot combine --${t[0]} and --${t[1]}. Choose one conflict strategy.`),t[0]}__name(resolvePackageFile,"resolvePackageFile"),__name(collectSpecificFiles,"collectSpecificFiles"),__name(collectAllFiles,"collectAllFiles"),__name(lintFile,"lintFile"),__name(lintSpecificPackages,"lintSpecificPackages"),__name(lintAllFiles,"lintAllFiles"),__name(lint,"lint"),tn(),jo(),__name(resolveConflictStrategy,"resolveConflictStrategy");var $P=me.bgGreen.black.bold(" TASTE ");function shortenPath(e){const t=process.env.HOME??process.env.USERPROFILE??"";return t&&e.startsWith(t)?`~${e.slice(t.length)}`:e}function exitWithError(e){console.error(`${me.red("Error:")} ${e.replace(/^Error:\s*/i,"")}`),process.exit(1)}function formatUsageLine(e){const t=e.match(/^(\s*(?:Usage:|or:)?\s*)(cmd)(\s+.+?)(\s+\(.*\))?$/);return t?`${me.dim(t[1])}${me.green(t[2])}${me.white(t[3]??"")}${t[4]?me.dim(t[4]):""}`:me.dim(e)}function exitWithUsage({message:e,usage:t}){console.error(`${me.red("Error:")} ${e.replace(/^Error:\s*/i,"")}`);for(const e of t)console.error(formatUsageLine(e));process.exit(1)}function resolveRemoteDefault(e){return e.global||e.remote?e:{...e,remote:!0}}__name(shortenPath,"shortenPath"),__name(exitWithError,"exitWithError"),__name(formatUsageLine,"formatUsageLine"),__name(exitWithUsage,"exitWithUsage"),__name(resolveRemoteDefault,"resolveRemoteDefault");var DP=__name((e,t)=>t,"linkFallback");function getPackageLink({owner:e,packageName:t}){return ht(`commandcode.ai/${e}/${t}`,`https://commandcode.ai/${e}/${t}`,{fallback:DP})}function getProfileLink(e){return ht(`commandcode.ai/${e}`,`https://commandcode.ai/${e}`,{fallback:DP})}function wrapLine(e,t=0){const n=(process.stdout.columns||80)-t;return gt(e,n,{trim:!1})}function formatMergeParts(e){const t=[];return e.added>0&&t.push(`${e.added} ${1===e.added?"learning":"learnings"} added`),e.updated>0&&t.push(`${e.updated} ${1===e.updated?"learning":"learnings"} updated`),e.unchanged>0&&t.push(`${e.unchanged} ${1===e.unchanged?"learning":"learnings"} unchanged`),t}function hasMergeConflictRisk(e){return(e.added>0||e.updated>0)&&e.unchanged>0}function hasMergeConflictRiskInRecord(e){return Object.values(e).some(hasMergeConflictRisk)}function logMergeReviewTip(){console.log(me.yellow("\nTip: Review merged learnings to ensure no conflicting rules."))}function parseOwnerPackage(e){if(!e.includes("/"))return;const[t,n]=e.split("/");return t&&n?{owner:t,packageName:n}:void 0}function handleResultErrors(e){for(const t of e){const e=t.error.replace(/^Taste package(?: '.*?')? /,`Taste package '${t.pkg}' `);console.error(`${me.red("Error:")} ${e}`)}process.exit(1)}function getTimeAgo(e){const t=Date.now()-e.getTime(),n=Math.floor(t/6e4),r=Math.floor(t/36e5),o=Math.floor(t/864e5);return n<1?"just now":n<60?`${n} minute${n>1?"s":""} ago`:r<24?`${r} hour${r>1?"s":""} ago`:`${o} day${o>1?"s":""} ago`}async function flushAndExit(e){await Promise.race([shutdownTelemetry(),new Promise(e=>setTimeout(e,500))]).catch(()=>{}),process.exit(e)}function withErrorHandler(e){return async(...t)=>{try{await e(...t),await flushAndExit(0)}catch(e){const t=e instanceof Error?e.message:String(e);console.error(me.red(`Error: ${t}`)),await flushAndExit(1)}}}function createLintCommand(){return new _e("lint").argument("[package]","Taste package name").option("-g, --global","Validate taste packages from global storage (~/.commandcode)").option("--all","Validate all taste packages").description(`Validate taste package format ${me.dim("(structure, style, etc.)")}`).action(withErrorHandler(async(e,t)=>runLint({packageName:e,options:t})))}function validateLintOptions({packageName:e,options:t}){e||t.all||exitWithUsage({message:"Specify a taste package name or use --all to validate everything",usage:["cmd taste lint <package> validate a taste package","cmd taste lint --all validate all taste packages"]}),e&&t.all&&exitWithError("Use either a package name or --all, not both")}function logLintResults(e){for(const t of e.filesLinted)console.log(t.formatted);e.filesLinted.length>1&&logLintSummary(e),e.success||process.exit(1)}function logLintSummary({filesLinted:e,totalErrors:t,totalWarnings:n}){if(console.log(""),0===t&&0===n)return void console.log(`${me.green(Pe.tick)} All ${me.green(e.length)} taste files are valid`);const r=[];t>0&&r.push(me.red(`${t} error${t>1?"s":""}`)),n>0&&r.push(me.yellow(`${n} warning${n>1?"s":""}`)),console.log(`Summary: ${r.join(", ")} across ${e.length} files`)}async function runLint({packageName:e,options:t}){console.log(""),validateLintOptions({packageName:e,options:t});const n=await lint({packages:e?[e]:[],target:t.global?"local-global":"local-project"});if(n.errors.length>0){for(const e of n.errors)console.error(me.red(`Error: ${e.error}`));process.exit(1)}logLintResults(n)}function parseSection(e){const{section:t,sourcePath:n}=e,r=t.split("\n"),o=r[0].trim(),s=r.map(e=>parseLearning({line:e})).filter(e=>null!==e);return 0===s.length?null:{category:normalizeCategory({category:o}),learnings:s,sourcePath:n}}function parsePackages(e){const{content:t,sourcePath:n}=e;return t.split(/^# /gm).filter(e=>e.trim()).filter(e=>!e.includes("See [")).map(e=>parseSection({section:e,sourcePath:n})).filter(e=>null!==e)}function parseLearning(e){const{line:t}=e,n=t.match(/^-?\s*(.+?)[\.:,]?\s*confidence:\s*(\d*\.?\d+)/i);if(!n)return null;const r=parseFloat(n[2]);return isNaN(r)||r<0||r>1?null:{text:n[1].trim(),confidence:r}}function normalizeCategory(e){const{category:t}=e;return t.toLowerCase().replace(/\s+/g,"-")}function denormalizeCategory(e){const{slug:t}=e;return t.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function formatPackage(e){const{pkg:t}=e;let n=`# ${denormalizeCategory({slug:t.category})}\n`;for(const e of t.learnings)n+=`- ${e.text}. Confidence: ${e.confidence.toFixed(2)}\n`;return n}async function readAndMigrateFile(e){const{filePath:t}=e,n=await F.readFile(t,"utf-8"),r=migrateHeader({content:n});return r===n?n:(await F.writeFile(t,r,"utf-8"),r)}function trimTrailingBlanks(e){const{lines:t,until:n}=e;let r=e.from;for(;r>n&&""===t[r].trim();)r--;return r}function findCategoryRange(e){const{lines:t,pattern:n}=e,r=t.findIndex(e=>n.test(e));if(-1===r)return null;const o=t.findIndex((e,t)=>t>r&&e.startsWith("# "));if(-1===o)return{start:r,end:t.length-1};const s=trimTrailingBlanks({lines:t,from:o-1,until:r});return{start:r,end:s}}function ensureHeader(e){if(!e)return Hb+"\n\n";const t=e.trim();return t.startsWith(Ub)||t.startsWith(Wb)||t.startsWith(Gb)?e:Hb+"\n\n"+e}function ensureTrailingNewlines(e){return e?e.endsWith("\n\n")?e:e.endsWith("\n")?e+"\n":e+"\n\n":e}__name(getPackageLink,"getPackageLink"),__name(getProfileLink,"getProfileLink"),__name(wrapLine,"wrapLine"),__name(formatMergeParts,"formatMergeParts"),__name(hasMergeConflictRisk,"hasMergeConflictRisk"),__name(hasMergeConflictRiskInRecord,"hasMergeConflictRiskInRecord"),__name(logMergeReviewTip,"logMergeReviewTip"),__name(parseOwnerPackage,"parseOwnerPackage"),__name(handleResultErrors,"handleResultErrors"),__name(getTimeAgo,"getTimeAgo"),__name(flushAndExit,"flushAndExit"),__name(withErrorHandler,"withErrorHandler"),__name(createLintCommand,"createLintCommand"),__name(validateLintOptions,"validateLintOptions"),__name(logLintResults,"logLintResults"),__name(logLintSummary,"logLintSummary"),__name(runLint,"runLint"),tn(),ts(),tn(),tn(),tn(),__name(parseSection,"parseSection"),__name(parsePackages,"parsePackages"),__name(parseLearning,"parseLearning"),__name(normalizeCategory,"normalizeCategory"),__name(denormalizeCategory,"denormalizeCategory"),tn(),__name(formatPackage,"formatPackage"),tn(),__name(readAndMigrateFile,"readAndMigrateFile"),__name(trimTrailingBlanks,"trimTrailingBlanks"),__name(findCategoryRange,"findCategoryRange"),__name(ensureHeader,"ensureHeader"),__name(ensureTrailingNewlines,"ensureTrailingNewlines");var OP="local-global";async function loadCategoryPackages(e){if(!e.isDirectory())return[];const t=getCategoryTasteFile({target:OP,category:e.name});return k(t)?parsePackages({content:await readAndMigrateFile({filePath:t}),sourcePath:t}).map(t=>({...t,category:e.name})):[]}async function getPackageInfo(e){try{const t=await F.stat(e.sourcePath);return{category:e.category,learningCount:e.learnings.length,lastUpdated:t.mtime,filePath:e.sourcePath}}catch{return{category:e.category,learningCount:e.learnings.length,lastUpdated:new Date,filePath:e.sourcePath}}}async function getAllPackages(){const e=getTastePath({target:OP});if(!k(e))return[];const t=await F.readdir(e,{withFileTypes:!0});return(await Promise.all(t.map(loadCategoryPackages))).flat()}async function getPackage(e){const{category:t}=e,n=getCategoryTasteFile({target:OP,category:t});return k(n)&&parsePackages({content:await readAndMigrateFile({filePath:n}),sourcePath:n})[0]||null}async function writePackage(t){const{pkg:n}=t,r=getTastePath({target:OP});await F.mkdir(r,{recursive:!0});const o=getCategoryTasteFile({target:OP,category:n.category}),s=e.dirname(o);await F.mkdir(s,{recursive:!0});const i=formatPackage({pkg:n});await F.writeFile(o,i,"utf-8")}async function listPackages(){const e=await getAllPackages();return await Promise.all(e.map(getPackageInfo))}__name(loadCategoryPackages,"loadCategoryPackages"),__name(getPackageInfo,"getPackageInfo"),__name(getAllPackages,"getAllPackages"),__name(getPackage,"getPackage"),__name(writePackage,"writePackage"),__name(listPackages,"listPackages"),tn(),tn();var FP="local-project";async function removeCategoryFromRoot(e){const{category:t,rootFile:n}=e;if(!k(n))return null;const r=migrateHeader({content:await F.readFile(n,"utf-8")}).split("\n"),o=findCategoryRange({lines:r,pattern:new RegExp(`^# ${t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}$`,"i")});if(!o)return null;const s=r.slice(0,o.start),i=o.end<r.length-1?r.slice(o.end+1):[],a={before:s.join("\n").trim(),after:i.join("\n").trim()},l=[...s,...i].join("\n").trim();return""===l&&await F.rm(n,{force:!0}),""!==l&&await F.writeFile(n,l+"\n","utf-8"),a}async function removePackage(t){const{category:n}=t,r=getRootTasteFile({target:FP}),o=await removeCategoryFromRoot({category:n,rootFile:r}),s=getCategoryTasteFile({target:FP,category:n}),i=e.dirname(s);return k(i)&&await F.rm(i,{recursive:!0,force:!0}),o}async function writeToRoot(e){const{pkg:t,rootFile:n,categoryPosition:r}=e,o=formatPackage({pkg:t});if(r){let e=ensureHeader(migrateHeader({content:r.before}));e=ensureTrailingNewlines(e);const t=r.after?"\n\n"+r.after:"";return e+=o.trim()+t,void await F.writeFile(n,e.trim()+"\n","utf-8")}let s="";k(n)&&(s=await F.readFile(n,"utf-8"),s=migrateHeader({content:s})),s=ensureHeader(s),s=ensureTrailingNewlines(s),s+=o,await F.writeFile(n,s.trim()+"\n","utf-8")}async function writeToSubdirectory(t){const{pkg:n,rootFile:r,categoryPosition:o}=t,s=getCategoryTasteFile({target:FP,category:n.category}),i=e.dirname(s);await F.mkdir(i,{recursive:!0});const a=formatPackage({pkg:n});await F.writeFile(s,a,"utf-8");const l=`# ${n.category}\nSee [${n.category}/taste.md](${n.category}/taste.md)\n`;if(o){let e=ensureHeader(migrateHeader({content:o.before}));e=ensureTrailingNewlines(e);const t=o.after?"\n\n"+o.after:"";return e+=l.trim()+t,void await F.writeFile(r,e.trim()+"\n","utf-8")}let u="";k(r)&&(u=await F.readFile(r,"utf-8"),u=migrateHeader({content:u})),u=ensureHeader(u),u=ensureTrailingNewlines(u),u+=l,await F.writeFile(r,u.trim()+"\n","utf-8")}__name(removeCategoryFromRoot,"removeCategoryFromRoot"),__name(removePackage,"removePackage"),__name(writeToRoot,"writeToRoot"),__name(writeToSubdirectory,"writeToSubdirectory");var qP="local-project";async function loadCategoryPackages2(e){if(!e.isDirectory())return[];const t=getCategoryTasteFile({target:qP,category:e.name});return k(t)?parsePackages({content:await readAndMigrateFile({filePath:t}),sourcePath:t}).map(t=>({...t,category:e.name})):[]}async function getAllPackages2(){const e=getTastePath({target:qP});if(!k(e))return[];const t=[],n=getRootTasteFile({target:qP});if(k(n)){const e=parsePackages({content:await readAndMigrateFile({filePath:n}),sourcePath:n});t.push(...e)}const r=await F.readdir(e,{withFileTypes:!0}),o=(await Promise.all(r.map(loadCategoryPackages2))).flat();return t.push(...o),t}async function getPackage2(e){const{category:t}=e;return(await getAllPackages2()).find(e=>e.category===t)||null}async function writePackage2(e){const{pkg:t}=e,n=getTastePath({target:qP});await F.mkdir(n,{recursive:!0});const r=getRootTasteFile({target:qP}),o=await removePackage({category:t.category});t.learnings.length<=5?await writeToRoot({pkg:t,rootFile:r,categoryPosition:o}):await writeToSubdirectory({pkg:t,rootFile:r,categoryPosition:o})}function exists2(){const e=getTastePath({target:qP});return k(e)}async function appendCategoryFile(e,t){const n=getCategoryTasteFile({target:"local-project",category:t.category});if(!k(n))return;const r=await F.readFile(n,"utf-8"),o=new Blob([r],{type:"text/markdown"}),s=new File([o],"taste.md",{type:"text/markdown"});e.append(`files[${t.category}/taste.md]`,s)}async function prepareUploadFormData(t){const{packageName:n,pkg:r,description:o,type:s="category",isPublic:i=!1,overwrite:a=!1}=t,l=new FormData;l.append("name",n),o&&l.append("description",o),l.append("type",s),l.append("isPublic",String(i)),l.append("overwrite",String(a));const u=formatPackage({pkg:r}),d=new Blob([u],{type:"text/markdown"}),m=new File([d],"taste.md",{type:"text/markdown"});if(l.append("files[taste.md]",m),"category"===s)return l;const g=getTastePath({target:"local-project"}),h=e.join(g,r.category);if(!k(h))return l;const f=getCategoryTasteFile({target:"local-project",category:r.category});if(!k(f))return l;const y=await F.readFile(f,"utf-8"),w=new Blob([y],{type:"text/markdown"}),S=new File([w],"taste.md",{type:"text/markdown"});return l.append(`files[${r.category}/taste.md]`,S),l}async function prepareMultiplePackagesUpload(e){const{pkgs:t,projectName:n,description:r,isPublic:o=!1,overwrite:s=!1}=e,i=new FormData;i.append("name",n),r&&i.append("description",r),i.append("type","project"),i.append("isPublic",String(o)),i.append("overwrite",String(s));const a=getRootTasteFile({target:"local-project"});if(k(a)){const e=await F.readFile(a,"utf-8"),t=new Blob([e],{type:"text/markdown"}),n=new File([t],"taste.md",{type:"text/markdown"});i.append("files[taste.md]",n)}const l=t.map(e=>appendCategoryFile(i,e));return await Promise.all(l),i}function parseLearningLine(e){const t=e.match(/^-\s+(.+?)\.\s+Confidence:\s+([\d.]+)/);if(!t)return null;const n=t[1].trim(),r=parseFloat(t[2]);return!n||isNaN(r)?null:{text:n,confidence:r}}function parseTasteContent(e){return e.split("\n").filter(e=>{const t=e.trim();return t&&!t.startsWith("#")&&t.startsWith("-")}).map(e=>parseLearningLine(e.trim())).filter(e=>null!==e)}async function parseApiError(e){const{response:t,fallback:n}=e;try{const e=await t.json();return e.error?.message||e.message||n}catch{return n}}function throwTrackedError(e){const{message:t,label:n,heading:r,status:o,extra:s}=e,i=new Error(t);throw trackError({error:sanitizeErrorForTelemetry({error:i,label:n}),context:{component:$o.TASTE_REMOTE_STORAGE,heading:r,"http.status":o,...s}}),i}async function requireAuthKey(){const e=await getAuthKey();if(!e)throw new Error("No API key found. Please authenticate with: cmd login");return e}async function downloadPackage(e){const{owner:t,packageName:n}=e,r=getApiBaseUrl(),o=await tryPublicDownload({baseUrl:r,owner:t,packageName:n});if(o)return o;const s=await getAuthKey();if(!s)throw new Error("Package not found. If this is a private package, please authenticate with `cmd login`");return tryAuthenticatedDownload({baseUrl:r,owner:t,packageName:n,apiKey:s})}async function tryPublicDownload(e){const{baseUrl:t,owner:n,packageName:r}=e,o=`${t}${At.INTERNAL.PROFILE.PACKAGE_DOWNLOAD.replace(":login",n).replace(":packageName",r)}`;let s;try{s=await fetch(o,{method:"GET"})}catch{return null}if(s.ok){const{data:e}=await s.json();return{type:e.type||"category",files:e.files||[],isPublic:!0}}if(404===s.status)return null;throwTrackedError({message:await parseApiError({response:s,fallback:`Failed to download taste package (${s.status})`}),label:"download_public_error",heading:"Failed to download taste package (public)",status:s.status})}async function tryAuthenticatedDownload(e){const{baseUrl:t,owner:n,packageName:r,apiKey:o}=e,s=`${t}${At.BETA.TASTE.PACKAGES.DOWNLOAD.replace(":namespace",n).replace(":packageName",r)}`,i=await fetch(s,{method:"GET",headers:{Authorization:`Bearer ${o}`}});if(i.ok){const{data:e}=await i.json();return{type:e.type||"category",files:e.files||[],isPublic:e.isPublic??!1}}if(404===i.status)return null;throwTrackedError({message:await parseApiError({response:i,fallback:"Failed to download taste package"}),label:"download_auth_error",heading:"Failed to download taste package (authenticated)",status:i.status})}async function fetchSinglePackage(e){try{return await getPackage3({category:e.name})}catch(t){const n=t instanceof Error?t:new Error(String(t));return trackError({error:sanitizeErrorForTelemetry({error:n,label:"download_package_error"}),context:{component:$o.TASTE_REMOTE_STORAGE,heading:"Failed to download package","package.name":e.name}}),console.warn(`Warning: Failed to download package '${e.name}': ${n.message}`),null}}async function getAllPackages3(){const e=await requireAuthKey(),t=`${getApiBaseUrl()}${At.BETA.TASTE.PACKAGES.LIST}`,n=await fetch(t,{method:"GET",headers:{Authorization:`Bearer ${e}`}});n.ok||throwTrackedError({message:await parseApiError({response:n,fallback:"Failed to list taste packages"}),label:"list_packages_error",heading:"Failed to list taste packages",status:n.status});const{data:r}=await n.json(),o=r.packages||[];if(0===o.length)return[];const s=[];for(let e=0;e<o.length;e+=5){const t=o.slice(e,e+5),n=await Promise.all(t.map(fetchSinglePackage));s.push(...n.filter(e=>null!==e))}return s}async function getPackage3(e){const{category:t}=e;let n;await requireAuthKey();try{n=await getAuthenticatedEntity()}catch(e){const n=e instanceof Error?e:new Error(String(e));throw dlog(`[Auth] getPackage: entity endpoint unavailable — ${n.message}`),trackError({error:sanitizeErrorForTelemetry({error:n,label:"get_entity_error"}),context:{component:$o.TASTE_REMOTE_STORAGE,heading:"getAuthenticatedEntity failed in getPackage"}}),new Error(`Could not resolve your account to fetch '${t}'. Check your connection and try again.`)}if(!n.success||!n.user?.userName)throw new Error("Failed to get authenticated user information");return downloadRemotePackage({owner:n.user.userName,packageName:t})}async function downloadRemotePackage(e){const{owner:t,packageName:n}=e,r=await downloadPackage({owner:t,packageName:n});if(!r)return null;const o=r.files||[];if(0===o.length)return null;const s=o.find(e=>"taste.md"===e.file);if(!s)throw new Error(`No taste.md file found in package '${n}'`);return{category:n,learnings:parseTasteContent(s.content),sourcePath:`remote:${n}`,isPublic:r.isPublic??!1}}async function writePackage3(e){const{pkg:t,owner:n,isPublic:r=!1,overwrite:o=!1}=e,s=await requireAuthKey(),i=await prepareUploadFormData({packageName:t.category,pkg:t,type:"category",isPublic:r,overwrite:o}),a=`${getApiBaseUrl()}${At.BETA.TASTE.PACKAGES.UPLOAD.replace(":namespace",n)}`,l=await fetch(a,{method:"POST",headers:{Authorization:`Bearer ${s}`},body:i});l.ok||throwTrackedError({message:await parseApiError({response:l,fallback:"Failed to upload taste package"}),label:"upload_package_error",heading:"Failed to upload taste package",status:l.status}),await l.json()}async function writePackages(e){const{packages:t,projectName:n,owner:r,isPublic:o=!1,overwrite:s=!1}=e,i=await requireAuthKey(),a=await prepareMultiplePackagesUpload({pkgs:t,projectName:n,isPublic:o,overwrite:s}),l=`${getApiBaseUrl()}${At.BETA.TASTE.PACKAGES.UPLOAD.replace(":namespace",r)}`,u=await fetch(l,{method:"POST",headers:{Authorization:`Bearer ${i}`},body:a});u.ok||throwTrackedError({message:await parseApiError({response:u,fallback:"Failed to upload taste packages"}),label:"upload_packages_error",heading:"Failed to upload taste packages",status:u.status,extra:{"package.count":t.length}}),await u.json()}async function listPackages2(){const e=await requireAuthKey(),t=`${getApiBaseUrl()}${At.BETA.TASTE.PACKAGES.LIST}`,n=await fetch(t,{method:"GET",headers:{Authorization:`Bearer ${e}`}});n.ok||throwTrackedError({message:await parseApiError({response:n,fallback:"Failed to list taste packages"}),label:"list_packages_error",heading:"Failed to list packages",status:n.status});const{data:r}=await n.json();return(r.packages||[]).map(e=>({category:e.name,learningCount:e.learningCount||0,lastUpdated:e.createdAt?new Date(e.createdAt):new Date,filePath:"",isPublic:e.isPublic??!1,starCount:e.starCount??0,downloadCount:e.downloadCount??0,type:e.type??"category"}))}async function list(e){const{location:t}=e;if("local-global"===t)return listPackages();if("remote-project"===t||"remote-user"===t)return listPackages2();if("local-project"===t){const e=getRootTasteFile({target:"local-project"}),t=await getAllPackages2();return Promise.all(t.map(async t=>{let n;if(t.sourcePath!==e)try{n=(await F.stat(t.sourcePath)).mtime}catch{}return{category:t.category,learningCount:t.learnings.length,lastUpdated:n,filePath:t.sourcePath}}))}throw new Error(`Invalid location: ${t}`)}function createListCommand(){return new _e("list").alias("ls").option("-g, --global","List global packages").addOption(new xe("-l, --local","Use local server").hideHelp()).option("--remote","List remote packages").addOption(new xe("--staging","Use staging environment").hideHelp()).description(`List available packages ${me.dim("(project, global, or remote)")}`).action(withErrorHandler(async e=>runList({options:e})))}__name(loadCategoryPackages2,"loadCategoryPackages"),__name(getAllPackages2,"getAllPackages"),__name(getPackage2,"getPackage"),__name(writePackage2,"writePackage"),__name(exists2,"exists"),tn(),Tw(),tn(),__name(appendCategoryFile,"appendCategoryFile"),__name(prepareUploadFormData,"prepareUploadFormData"),__name(prepareMultiplePackagesUpload,"prepareMultiplePackagesUpload"),sn(),tn(),__name(parseLearningLine,"parseLearningLine"),__name(parseTasteContent,"parseTasteContent"),Pb(),jo(),tn(),xb(),jo(),__name(parseApiError,"parseApiError"),__name(throwTrackedError,"throwTrackedError"),__name(requireAuthKey,"requireAuthKey"),tn(),Tw(),xb(),sn(),__name(downloadPackage,"downloadPackage"),__name(tryPublicDownload,"tryPublicDownload"),__name(tryAuthenticatedDownload,"tryAuthenticatedDownload"),Bn(),__name(fetchSinglePackage,"fetchSinglePackage"),__name(getAllPackages3,"getAllPackages"),__name(getPackage3,"getPackage"),__name(downloadRemotePackage,"downloadRemotePackage"),__name(writePackage3,"writePackage"),__name(writePackages,"writePackages"),__name(listPackages2,"listPackages"),__name(list,"list"),__name(createListCommand,"createListCommand");var jP={remote:{location:"remote-project",name:"remote",subtitle:"commandcode.ai account"},global:{location:"local-global",name:"global",subtitle:"~/.commandcode/taste"},project:{location:"local-project",name:"project",subtitle:".commandcode/taste"}};function resolveStorage(e){return e.remote?jP.remote:e.global?jP.global:jP.project}function getPackageDisplayLength(e){let t=e.category.length;return e.isPublic&&(t+=9),e.isPublic&&e.starCount&&(t+=` ${Pe.star}${e.starCount}`.length),e.downloadCount&&(t+=` ${Pe.arrowDown}${e.downloadCount}`.length),t}function formatPackageLine({pkg:e,maxLen:t}){const n=" ".repeat(t-getPackageDisplayLength(e)+2),r=e.lastUpdated?getTimeAgo(e.lastUpdated):null,o=r?`, updated ${r}`:"";return` ${me.white(e.category)}${e.isPublic?me.green(" [public]"):""}${e.isPublic&&e.starCount?me.yellow(` ${Pe.star}${e.starCount}`):""}${e.downloadCount?me.gray(` ${Pe.arrowDown}${e.downloadCount}`):""}${n}${me.dim.gray(`(${e.learningCount} learnings${o})`)}`}function validateListOptions(e){e.global&&e.remote&&exitWithError("Error: Cannot specify both --global and --remote flags")}async function fetchPackages({options:e}){const t=resolveStorage(e),n=e.remote?Ae(`Fetching ${t.name} packages`).start():null,r=await list({location:t.location});return n?.stop(),{packages:r,storage:t}}async function getStorageLabel({options:e,fallback:t}){if(!e.remote)return t;const n=await getUserName();return n?getProfileLink(n):t}function printPackageTable({packages:e,subtitle:t}){console.log(`\n${$P} Packages`),console.log(`${me.gray("⎿")} ${me.dim(t)}\n`);const n=Math.max(...e.map(getPackageDisplayLength));let r=0;for(const t of e)r+=t.learningCount,console.log(formatPackageLine({pkg:t,maxLen:n}));console.log(me.dim(`\nTotal: ${e.length} packages, ${r} learnings\n`))}async function runList({options:e}){console.log(""),validateListOptions(e);const{packages:t,storage:n}=await fetchPackages({options:e});0!==t.length?printPackageTable({packages:t,subtitle:await getStorageLabel({options:e,fallback:n.subtitle})}):console.log(me.yellow(`No taste packages found in ${n.name}`))}async function fetchAllPackages(e){const{target:t}=e;return"local-project"===t?getAllPackages2():"local-global"===t?getAllPackages():getAllPackages3()}function handleOpenError(e){return e instanceof Error&&e.message.includes("$EDITOR environment variable")?{success:!1,error:getEditorSetupInstructions()}:{success:!1,error:e instanceof Error?e.message:String(e)}}async function readCategoryLineNumber(t){const{filePath:n,category:r}=t,o=await F.readFile(n,"utf-8");if("taste.md"===e.basename(n)&&e.basename(e.dirname(n))===r)return 1;const s=o.split("\n").findIndex(e=>e.trim().toLowerCase()===`# ${r.toLowerCase()}`);return s>=0?s+1:1}async function findCategoryLineNumber(e){try{return await readCategoryLineNumber(e)}catch{return 1}}async function openPackage(e){const{packageName:t,target:n}=e,r=(await fetchAllPackages({target:n})).find(e=>e.category===t);if(!r){let e="project";return"local-global"===n&&(e="global"),"remote-project"!==n&&"remote-user"!==n||(e="remote"),{success:!1,error:`Taste package '${t}' not found in ${e}`}}const o=r.sourcePath,s=await findCategoryLineNumber({filePath:o,category:t});return await dt([{file:o,line:s}]),{success:!0,filePath:o,lineNumber:s}}__name(resolveStorage,"resolveStorage"),__name(getPackageDisplayLength,"getPackageDisplayLength"),__name(formatPackageLine,"formatPackageLine"),__name(validateListOptions,"validateListOptions"),__name(fetchPackages,"fetchPackages"),__name(getStorageLabel,"getStorageLabel"),__name(printPackageTable,"printPackageTable"),__name(runList,"runList"),tn(),tn(),__name(fetchAllPackages,"fetchAllPackages"),__name(handleOpenError,"handleOpenError"),__name(readCategoryLineNumber,"readCategoryLineNumber"),__name(findCategoryLineNumber,"findCategoryLineNumber"),__name(openPackage,"openPackage");var BP=new Set(["local-project","local-global","remote-project","remote-user"]);async function open11(e){const{package:t,target:n}=e;if(!BP.has(n))return{success:!1,error:`Invalid target: ${n}`};try{return await openPackage({packageName:t,target:n})}catch(e){return handleOpenError(e)}}function getEditorSetupInstructions(){const e=ft.platform;if("win32"===e)return'Error: No default editor found\n\nTo permanently set your default editor, run one of these commands:\n\nCommand Prompt (as Administrator):\n setx EDITOR "code" # VS Code\n setx EDITOR "notepad" # Notepad\n setx EDITOR "vim" # Vim (if installed via WSL/Git Bash)\n\nPowerShell:\n [Environment]::SetEnvironmentVariable("EDITOR", "code", "User")\n\nThen restart your terminal.';const t="darwin"===e?"~/.zshrc":"~/.bashrc";return`Error: No default editor found\n\nTo permanently set your default editor, run one of these commands:\n echo 'export EDITOR="code"' >> ${t} # VS Code\n echo 'export EDITOR="vim"' >> ${t} # Vim\n echo 'export EDITOR="nano"' >> ${t} # Nano\n echo 'export EDITOR="subl"' >> ${t} # Sublime Text\n\nFor bash users ${"darwin"===e?"(or ~/.bash_profile for bash)":"(or ~/.zshrc for zsh)"}, replace ${t} with the appropriate file.\n\nThen restart your terminal or run: source ${t}`}function createOpenCommand(){return new _e("open").argument("[package]","Taste package name, or owner/package to open in browser").option("-g, --global","Open taste package from global storage (~/.commandcode)").description(`Open a taste package in your editor ${me.dim("(use owner/package to open in browser)")}`).action(withErrorHandler(async(e,t)=>runOpen({packageName:e,options:t})))}function validateOpenOptions(e){e||exitWithUsage({message:"Specify a taste package name to open",usage:["cmd taste open <package> open taste package in editor","cmd taste open <package> -g open global taste package in editor","cmd taste open owner/package open package page in browser"]})}async function runOpen({packageName:e,options:t}){console.log(""),validateOpenOptions(e);const n=parseOwnerPackage(e);n?await openInBrowser(n):await openInEditor3({packageName:e,options:t})}async function openInBrowser(e){const t=`https://commandcode.ai/${e.owner}/${e.packageName}`;await fe(t);const n=getPackageLink({owner:e.owner,packageName:e.packageName});console.log(`${me.green(Pe.tick)} Opened ${n} in browser`)}async function openInEditor3({packageName:e,options:t}){const n=t.global?"local-global":"local-project",r=await open11({package:e,target:n});r.success||exitWithError(r.error??"Unknown error"),console.log(`${me.green(Pe.tick)} Opened ${me.green(`'${e}'`)} taste package from ${t.global?"global":"project"}`)}__name(open11,"open"),__name(getEditorSetupInstructions,"getEditorSetupInstructions"),__name(createOpenCommand,"createOpenCommand"),__name(validateOpenOptions,"validateOpenOptions"),__name(runOpen,"runOpen"),__name(openInBrowser,"openInBrowser"),__name(openInEditor3,"openInEditor"),tn(),tn(),tn(),tn();var UP=null,zP=!1;function setActiveSpinner(e){UP=e}function stopActiveSpinner(e){UP&&(UP.stop(e),UP=null)}function setPrompted(e){zP=e}function wasPrompted(){return zP}function beginPrompt(e,t){stopActiveSpinner(),Fe.intro(me.dim(e)),t&&Fe.log.message(me.dim(t)),setPrompted(!0)}function handleCancel(e){Fe.isCancel(e)&&(Fe.cancel("Operation cancelled"),process.exit(0))}function startStrategySpinner(e){if("skip"===e){const e=Fe.spinner();return e.start("Skipping"),void e.stop("Skipped")}const t="merge"===e?"Merging":"Overwriting",n="merge"===e?"Merged":"Overwritten",r=Fe.spinner();r.start(t),setActiveSpinner({stop:__name(e=>r.stop(e??n),"stop"),cancel:__name(e=>r.cancel(e),"cancel"),error:__name(e=>r.error(e),"error")})}async function promptMergeStrategy(e){const{packageName:t,owner:n,localPkg:r,remoteLearningsCount:o}=e,s="This package already exists locally";if(!process.stdout.isTTY||!process.stdin.isTTY)return stopActiveSpinner(s),setPrompted(!0),Fe.log.warn("Non-interactive terminal detected, using default merge strategy"),"merge";beginPrompt(`Pulling ${me.green(`'${t}'`)} from ${n}`,s),Fe.log.message(`Local: ${r.learnings.length} learnings\nRemote: ${o} learnings ${me.dim(`(from ${n})`)}`);const i=await Fe.select({message:"What would you like to do?",options:[{value:"merge",label:"Merge",hint:"Combine both versions intelligently (default)"},{value:"overwrite",label:"Overwrite",hint:`Replace local with remote (${r.learnings.length} → ${o} learnings)`},{value:"skip",label:"Skip",hint:"Keep local version, ignore remote"}],initialValue:"merge"});handleCancel(i);const a=i;return startStrategySpinner(a),a}async function promptGlobalPushStrategy(e){const{packageName:t,localLearningsCount:n,globalPkg:r}=e,o="This package already exists in global storage";if(!process.stdout.isTTY||!process.stdin.isTTY)return stopActiveSpinner(o),setPrompted(!0),Fe.log.warn("Non-interactive terminal detected, using default merge strategy"),"merge";beginPrompt(`Pushing ${me.green(`'${t}'`)} to global`,o),Fe.log.message(`Local: ${n} learnings\nGlobal: ${r.learnings.length} learnings`);const s=await Fe.select({message:"What would you like to do?",options:[{value:"merge",label:"Merge",hint:"Combine both versions intelligently (default)"},{value:"overwrite",label:"Overwrite",hint:`Replace global with local (${r.learnings.length} → ${n} learnings)`},{value:"skip",label:"Skip",hint:"Keep global version, cancel push"}],initialValue:"merge"});handleCancel(s);const i=s;return startStrategySpinner(i),i}async function promptGlobalPullStrategy(e){const{packageName:t,localPkg:n,globalLearningsCount:r}=e,o="This package already exists locally";if(!process.stdout.isTTY||!process.stdin.isTTY)return stopActiveSpinner(o),setPrompted(!0),Fe.log.warn("Non-interactive terminal detected, using default merge strategy"),"merge";beginPrompt(`Pulling ${me.green(`'${t}'`)} from global`,o),Fe.log.message(`Local: ${n.learnings.length} learnings\nGlobal: ${r} learnings`);const s=await Fe.select({message:"What would you like to do?",options:[{value:"merge",label:"Merge",hint:"Combine both versions intelligently (default)"},{value:"overwrite",label:"Overwrite",hint:`Replace local with global (${n.learnings.length} → ${r} learnings)`},{value:"skip",label:"Skip",hint:"Keep local version, ignore global"}],initialValue:"merge"});handleCancel(s);const i=s;return startStrategySpinner(i),i}async function promptTypeMismatchStrategy(e){const{packageName:t,owner:n,localLearningsCount:r,remoteLearningsCount:o}=e,s=`Pushing local project taste to individual package '${t}'`;if(!process.stdout.isTTY||!process.stdin.isTTY)return stopActiveSpinner(s),setPrompted(!0),Fe.log.warn("Non-interactive terminal detected, skipping push"),"skip";const i=ht(`commandcode.ai/${n}/${t}`,`https://commandcode.ai/${n}/${t}`,{fallback:__name((e,t)=>t,"fallback")});beginPrompt(`Pushing ${me.green(`'${t}'`)} to ${n}`,s),Fe.log.message(`Local: ${t} (${r} learnings)\nRemote: ${t} (${o} learnings) in ${n}`),Fe.log.info(`Current package: ${me.cyan(i)} ${me.dim("(review)")}`);const a=await Fe.select({message:"What would you like to do?",options:[{value:"skip",label:"Skip",hint:"Keep remote version, cancel push"},{value:"overwrite",label:"Overwrite",hint:"Replace individual remote package with local project taste"}],initialValue:"skip"});handleCancel(a);const l=a;return startStrategySpinner(l),l}async function promptSameTypeStrategy(e){const{packageName:t,owner:n,localLearningsCount:r,remoteLearningsCount:o}=e,s=`This package already exists in ${n}`;if(!process.stdout.isTTY||!process.stdin.isTTY)return stopActiveSpinner(s),setPrompted(!0),Fe.log.warn("Non-interactive terminal detected, skipping push"),"skip";const i=ht(`commandcode.ai/${n}/${t}`,`https://commandcode.ai/${n}/${t}`,{fallback:__name((e,t)=>t,"fallback")});beginPrompt(`Pushing ${me.green(`'${t}'`)} to ${n}`,s),Fe.log.message(`Local: ${r} learnings\nRemote: ${o} learnings`),Fe.log.info(`Current package: ${me.cyan(i)} ${me.dim("(review)")}`);const a=await Fe.select({message:"What would you like to do?",options:[{value:"skip",label:"Skip",hint:"Keep remote version, cancel push"},{value:"overwrite",label:"Overwrite",hint:`Replace remote with local (${o} → ${r} learnings)`}],initialValue:"skip"});handleCancel(a);const l=a;return startStrategySpinner(l),l}function mergeSingleLearning(e,t,n,r){const o=t.get(e.text);return o?e.confidence>o.confidence?(n.set(e.text,e),void r.updated++):void r.unchanged++:(n.set(e.text,e),void r.added++)}function mergePackages(e){const{source:t,target:n}=e,r={added:0,updated:0,unchanged:0},o=new Map(n.map(e=>[e.text,e])),s=new Map(o);for(const e of t)mergeSingleLearning(e,o,s,r);const i=new Set(t.map(e=>e.text)),a=n.filter(e=>!i.has(e.text)).length;return r.unchanged+=a,{merged:Array.from(s.values()),details:r}}function validateSinglePackage(e,t){const n=validateTasteFile({content:formatPackage({pkg:e}),filePath:`${e.category}/taste.md`});if(!n.valid){const r=formatValidationIssues({result:n,verbose:!0});return{pkg:e.category,error:`Validation failed for taste package in ${t}:\n${r}`}}return n.issues.filter(e=>"warning"===e.severity).length>0&&(console.warn(`\nWarning: Taste package '${e.category}' in ${t} has validation warnings:\n`),console.warn(formatValidationIssues({result:n,verbose:!0})+"\n")),null}function validateSingleRemoteFile(e,t){const n=validateTasteFile({content:e.content,filePath:e.file});if(!n.valid){const r=formatValidationIssues({result:n,verbose:!0});return{pkg:t,error:`Validation failed for ${e.file}:\n${r}`}}return n.issues.filter(e=>"warning"===e.severity).length>0&&(console.warn(`\nWarning: File '${e.file}' has validation warnings:\n`),console.warn(formatValidationIssues({result:n,verbose:!0})+"\n")),null}function validatePackages(e){const{packages:t,label:n}=e;return t.map(e=>validateSinglePackage(e,n)).filter(e=>null!==e)}function validateRemoteFiles(e){const{files:t,packageName:n}=e;return t.map(e=>validateSingleRemoteFile(e,n)).filter(e=>null!==e)}function mergeOrKeep(e){const{source:t,existing:n}=e;if(!n)return{pkg:t,details:{added:t.learnings.length,updated:0,unchanged:0}};const r=mergePackages({source:t.learnings,target:n.learnings});return{pkg:{...t,learnings:r.merged},details:r.details}}async function resolveRemotePullStrategy(e){const{flagStrategy:t,overwrite:n,existingPkg:r,tastePkg:o,owner:s}=e;return"skip"===t?r?"skip":"merge":"merge"===t?"merge":"overwrite"===t||n?"overwrite":r?promptMergeStrategy({packageName:o.category,owner:s,localPkg:r,remoteLearningsCount:o.learnings.length}):"merge"}async function executePackageStrategy(e){const{tastePkg:t,owner:n,overwrite:r,flagStrategy:o,result:s}=e,i=await getPackage2({category:t.category}),a=await resolveRemotePullStrategy({flagStrategy:o,overwrite:r,existingPkg:i,tastePkg:t,owner:n});if("skip"===a)return void s.skipped?.push(t.category);if("overwrite"===a&&(await writePackage2({pkg:t}),s.packagesPulled.push(t.category),s.overwritten.push(t.category)),"merge"===a){const{pkg:e,details:n}=mergeOrKeep({source:t,existing:i});await writePackage2({pkg:e}),s.packagesPulled.push(t.category),s.mergeDetails[t.category]=n}const l=getCategoryTasteFile({target:"local-project",category:t.category});s.filePaths[t.category]=l}async function processPackage(e){const{tastePkg:t,result:n}=e;try{await executePackageStrategy(e)}catch(e){n.success=!1,n.errors.push({pkg:t.category,error:e instanceof Error?e.message:String(e)})}}async function pullProjectPackage(e){const{files:t,packageName:n,owner:r,overwrite:o,flagStrategy:s,result:i}=e,a=t.find(e=>"taste.md"===e.file);if(a){const e=parsePackages({content:a.content,sourcePath:`remote:${n}/taste.md`});for(const t of e)await processPackage({tastePkg:t,owner:r,overwrite:o,flagStrategy:s,result:i})}const l=t.filter(e=>"taste.md"!==e.file);for(const e of l){const t=e.file.replace("/taste.md",""),a={category:t,learnings:parseTasteContent(e.content),sourcePath:`remote:${n}/${t}`};await processPackage({tastePkg:a,owner:r,overwrite:o,flagStrategy:s,result:i})}}async function pullCategoryPackage(e){const{files:t,packageName:n,owner:r,overwrite:o,flagStrategy:s,result:i}=e,a=t.find(e=>"taste.md"===e.file);if(!a)return i.success=!1,void i.errors.push({pkg:n,error:"No taste.md file found in category package"});const l={category:n,learnings:parseTasteContent(a.content),sourcePath:`remote:${n}`};await processPackage({tastePkg:l,owner:r,overwrite:o,flagStrategy:s,result:i})}__name(setActiveSpinner,"setActiveSpinner"),__name(stopActiveSpinner,"stopActiveSpinner"),__name(setPrompted,"setPrompted"),__name(wasPrompted,"wasPrompted"),__name(beginPrompt,"beginPrompt"),__name(handleCancel,"handleCancel"),__name(startStrategySpinner,"startStrategySpinner"),__name(promptMergeStrategy,"promptMergeStrategy"),__name(promptGlobalPushStrategy,"promptGlobalPushStrategy"),__name(promptGlobalPullStrategy,"promptGlobalPullStrategy"),__name(promptTypeMismatchStrategy,"promptTypeMismatchStrategy"),__name(promptSameTypeStrategy,"promptSameTypeStrategy"),tn(),tn(),__name(mergeSingleLearning,"mergeSingleLearning"),__name(mergePackages,"mergePackages"),__name(validateSinglePackage,"validateSinglePackage"),__name(validateSingleRemoteFile,"validateSingleRemoteFile"),__name(validatePackages,"validatePackages"),__name(validateRemoteFiles,"validateRemoteFiles"),__name(mergeOrKeep,"mergeOrKeep"),tn(),__name(resolveRemotePullStrategy,"resolveRemotePullStrategy"),__name(executePackageStrategy,"executePackageStrategy"),__name(processPackage,"processPackage"),__name(pullProjectPackage,"pullProjectPackage"),__name(pullCategoryPackage,"pullCategoryPackage");var HP=__name(({pkg:e,error:t})=>({success:!1,packagesPulled:[],errors:[{pkg:e,error:t}],mergeDetails:{},overwritten:[],filePaths:{}}),"fail"),WP=__name(()=>({success:!0,packagesPulled:[],skipped:[],errors:[],mergeDetails:{},overwritten:[],filePaths:{}}),"emptyResult"),GP=__name(e=>"local-global"===e?"global":"remote-project"===e?"remote project":"remote-user"===e?"remote":"source","sourceName");async function resolvePullStrategy(e){const{flagStrategy:t,overwrite:n,existingPkg:r,source:o,tastePkg:s}=e;return"skip"===t?r?"skip":"merge":"merge"===t?"merge":"overwrite"===t||n?"overwrite":r&&"local-global"===o?promptGlobalPullStrategy({packageName:s.category,localPkg:r,globalLearningsCount:s.learnings.length}):"merge"}async function executePullStrategy(e){const{tastePkg:t,source:n,flagStrategy:r,overwrite:o,result:s}=e,i=await getPackage2({category:t.category}),a=await resolvePullStrategy({flagStrategy:r,overwrite:o,existingPkg:i,source:n,tastePkg:t});if("skip"===a)return void s.skipped.push(t.category);if("overwrite"===a&&(await writePackage2({pkg:t}),s.packagesPulled.push(t.category),s.overwritten.push(t.category)),"merge"===a){const{pkg:e,details:n}=mergeOrKeep({source:t,existing:i});await writePackage2({pkg:e}),s.packagesPulled.push(t.category),s.mergeDetails[t.category]=n}const l=getCategoryTasteFile({target:"local-project",category:t.category});s.filePaths[t.category]=l}async function pullSinglePackage(e){const{tastePkg:t,result:n}=e;try{await executePullStrategy(e)}catch(e){n.success=!1,n.errors.push({pkg:t.category,error:e instanceof Error?e.message:String(e)})}}async function pull(e){const{packages:t,source:n,overwrite:r=!1,strategy:o}=e;if("local-global"!==n&&"remote-project"!==n&&"remote-user"!==n)return HP({pkg:"all",error:`Invalid source: ${n}`});const s=GP(n);let i;try{i="local-global"===n?await getAllPackages():await getAllPackages3()}catch(e){return HP({pkg:"all",error:e instanceof Error?e.message:String(e)})}if(0===i.length)return HP({pkg:"all",error:`No taste packages found in ${s}`});const a=validatePackages({packages:i,label:s});if(a.length>0)return{success:!1,packagesPulled:[],errors:[...a],mergeDetails:{},overwritten:[],filePaths:{}};const l=t.length>0?i.filter(e=>t.includes(e.category)):i;if(t.length>0&&0===l.length)return{success:!1,packagesPulled:[],errors:t.map(e=>({pkg:e,error:`Taste package not found in ${s}`})),mergeDetails:{},overwritten:[],filePaths:{}};const u=WP();for(const e of l)await pullSinglePackage({tastePkg:e,source:n,flagStrategy:o,overwrite:r,result:u});return u}async function executePullRemote(e){const{owner:t,packageName:n,overwrite:r,flagStrategy:o,result:s}=e,i=await downloadPackage({owner:t,packageName:n});if(!i)return HP({pkg:n,error:"Taste package not found in remote"});const{type:a,files:l}=i,u=validateRemoteFiles({files:l,packageName:n});if(u.length>0)return{success:!1,packagesPulled:[],errors:[...u],mergeDetails:{},overwritten:[],filePaths:{}};const d={files:l,packageName:n,owner:t,overwrite:r,flagStrategy:o,result:s};return"project"===a?(await pullProjectPackage(d),s):(await pullCategoryPackage(d),s)}async function pullRemote(e){const{owner:t,packageName:n,overwrite:r=!1,strategy:o}=e,s=WP();try{return await executePullRemote({owner:t,packageName:n,overwrite:r,flagStrategy:o,result:s})}catch(e){return HP({pkg:n,error:e instanceof Error?e.message:String(e)})}}function logResult(e){if(wasPrompted())return Fe.outro(e),void setPrompted(!1);console.log(e)}function buildPullMessage(e){const{pkgName:t,sourceName:n,filePath:r,options:o,mergeDetails:s}=e,i=wasPrompted()?"":`${Pe.tick} `,a=r?me.dim(`\n ${shortenPath(r)}`):"";if(o.overwrite)return`${me.green(i)}Replaced ${me.green(`'${t}'`)} taste package in project`+a;if(s){const e=formatMergeParts(s);return`${me.green(i)}Pulled ${me.green(`'${t}'`)} taste package from ${n} ${me.gray(`(${e.join(", ")})`)}`+a}return`${me.green(i)}Pulled ${me.green(`'${t}'`)} taste package from ${n}`+a}function logPullSingleSuccess(e){const{result:t,sourceName:n,options:r}=e;if(1!==t.packagesPulled.length)return!1;const o=t.packagesPulled[0],s=t.filePaths?.[o],i=t.mergeDetails?.[o];return logResult(buildPullMessage({pkgName:o,sourceName:n,filePath:s,options:r,mergeDetails:i})),!r.overwrite&&!!i&&hasMergeConflictRisk(i)}function logPullSummary(e){const{result:t,sourceName:n}=e,r=t.overwritten??[],o=t.skipped??[],s=t.packagesPulled.filter(e=>!r.includes(e)),i=t.packagesPulled.length+o.length,a=`${i} ${1===i?"package":"packages"}`,l=[];return s.length>0&&l.push(wrapLine(`${me.green("Pulled")} (${s.length}) ${s.join(", ")}`,wasPrompted()?4:0)),r.length>0&&l.push(wrapLine(`${me.yellow("Overwritten")} (${r.length}) ${r.join(", ")}`,wasPrompted()?4:0)),o.length>0&&l.push(wrapLine(`${me.dim("Skipped")} (${o.length}) ${me.dim(o.join(", "))}`,wasPrompted()?4:0)),wasPrompted()?(l.length>0&&Fe.log.message(l.join("\n")),Fe.outro(`${a} from ${n}`),setPrompted(!1),hasMergeConflictRiskInRecord(t.mergeDetails??{})):(console.log(`${me.green(Pe.tick)} ${a} from ${n}`),l.length>0&&console.log(l.join("\n")),hasMergeConflictRiskInRecord(t.mergeDetails??{}))}function logPullSuccess(e){const{result:t,sourceName:n,options:r}=e,o=t.skipped??[];t.packagesPulled.length+o.length>1?logPullSummary({result:t,sourceName:n})&&logMergeReviewTip():o.length>0?logResult(me.yellow(`Skipped '${o[0]}' — kept local version`)):logPullSingleSuccess({result:t,sourceName:n,options:r})&&logMergeReviewTip()}function createPullCommand(){return new _e("pull").argument("[package]","Taste package name, or owner/package to pull from remote").option("-g, --global","Pull taste package from global storage (~/.commandcode)").addOption(new xe("--local","Use local server").hideHelp()).option("--remote","Pull taste package from commandcode.ai remote").option("--all","Pull all taste packages from global").option("--overwrite","Replace local package without prompting").option("--skip","Keep local package, skip conflicting pull").option("--merge","Auto-merge conflicting learnings without prompting").addOption(new xe("--staging","Use staging environment").hideHelp()).description(`Pull taste packages from remote or global into the project ${me.dim("(prompts on conflicts)")}`).action(withErrorHandler(async(e,t)=>{setPrompted(!1);const n=resolveRemoteDefault(t),{result:r,owner:o}=await runPull({packageName:e,options:n});r.success||handleResultErrors(r.errors),logPullSuccess({result:r,sourceName:n.remote?o??"remote":"global",options:n})}))}function validatePullOptions(e){const{packageName:t,options:n}=e;n.global&&n.remote&&exitWithError("--global and --remote are mutually exclusive — pick one source"),n.remote&&n.all&&exitWithUsage({message:"--all is not supported for remote pull — specify a package instead",usage:["cmd taste pull <owner>/<package> pull a taste package from remote"]}),n.remote&&!t&&exitWithUsage({message:"Specify a taste package to pull from remote",usage:["cmd taste pull <owner>/<package> pull a taste package from remote","cmd taste pull <package> -g pull a taste package from global","cmd taste pull --all -g pull all taste packages from global"]}),n.remote&&t&&!t.includes("/")&&exitWithUsage({message:`Remote pull requires owner/package format — got '${t}'`,usage:["cmd taste pull <owner>/<package> e.g. cmd taste pull ahmadawais/code-style"]}),t||n.all||exitWithUsage({message:"Specify a taste package name or use --all to pull everything",usage:["cmd taste pull <owner>/<package> pull a taste package from remote","cmd taste pull <package> -g pull a taste package from global","cmd taste pull --all -g pull all taste packages from global"]}),t&&n.all&&exitWithError("Use either a package name or --all, not both"),resolveConflictStrategy(n)}async function runPull(e){const{packageName:t,options:n}=e;console.log("");const r=resolveRemoteDefault(n);validatePullOptions({packageName:t,options:r});const o=resolveConflictStrategy(r);return r.remote&&t?pullRemoteSingle({packageName:t,options:r,strategy:o}):pullGlobal({packageName:t,options:r,strategy:o})}async function pullRemoteSingle(e){const{packageName:t,options:n,strategy:r}=e,o=parseOwnerPackage(t);o||exitWithError("Invalid format — use owner/package (e.g. ahmadawais/code-style)"),setActiveSpinner(Ae("Pulling taste package").start());const s=await pullRemote({owner:o.owner,packageName:o.packageName,overwrite:n.overwrite,strategy:r});return stopActiveSpinner(),{result:s,owner:o.owner}}async function pullGlobal(e){const{packageName:t,options:n,strategy:r}=e;setActiveSpinner(Ae("Pulling taste package").start());const o=n.all||!t?[]:[t],s=await pull({packages:o,source:"local-global",overwrite:n.overwrite,strategy:r});return stopActiveSpinner(),{result:s}}async function fetchUserNamespaces(){const e=getApiBaseUrl(),t=new Jy({baseUrl:e}),n=await t.get({endpoint:At.ALPHA.NAMESPACES});if(!n.success)throw new Error("Failed to fetch namespaces");if("org"===n.type)return{userName:n.org.login,orgs:[]};const r=n.orgs.map(e=>({id:e.id,login:e.login,name:e.name}));return{userName:n.user.userName,orgs:r}}function logResult2(e){if(wasPrompted())return Fe.outro(e),void setPrompted(!1);console.log(e)}function logPushAllSuccess(t){const{result:n,options:r}=t;if(!r.all)return!1;if(0===n.packagesPushed.length){const e=n.skipped?.length??0;if(e>0){const t=wasPrompted()?"":`${Pe.tick} `,n=`${e} ${1===e?"package":"packages"}`;logResult2(`${me.green(t)}Skipped ${n}`)}return!1}const o=n.packagesPushed.length,s=`${o} ${1===o?"package":"packages"}`,i=n.filePaths?.[n.packagesPushed[0]],a=r.global&&i?shortenPath(e.dirname(e.dirname(i))):i,l=wasPrompted()?"":`${Pe.tick} `;if(!a)return logResult2(`${me.green(l)}Pushed ${s} to remote`),!1;if(r.overwrite||Boolean(n.overwritten?.length)){let e=0;if(n.mergeDetails)for(const t of Object.values(n.mergeDetails))e+=t.updated??0;const t=e>0?` ${me.gray(`(${e} ${1===e?"learning":"learnings"} replaced)`)}`:"";return logResult2(`${me.green(l)}Replaced ${s} in ${a}${t}`),!1}if(!n.mergeDetails||0===Object.keys(n.mergeDetails).length)return logResult2(`${me.green(l)}Pushed ${s} to ${a}`),!1;let u=0,d=0,m=0;for(const e of Object.values(n.mergeDetails))u+=e.added??0,d+=e.updated??0,m+=e.unchanged??0;const g=formatMergeParts({added:u,updated:d,unchanged:m}),h=g.length>0?` ${me.gray(`(${g.join(", ")})`)}`:"";return logResult2(`${me.green(l)}Pushed ${s} to ${a}${h}`),(u>0||d>0)&&m>0}function logPushSingleSuccess(e){const{result:t,options:n}=e;if(n.all)return!1;if(1!==t.packagesPushed.length)return!1;const r=t.packagesPushed[0],o=t.filePaths?.[r],s=n.remote&&o,i=s?o:"global",a=wasPrompted()?"":`${Pe.tick} `,l=!s&&o?me.dim(`\n ${shortenPath(o)}`):"";if(n.overwrite)return logResult2(`${me.green(a)}Replaced ${me.green(`'${r}'`)} taste package in ${i}`+l),!1;if(t.mergeDetails?.[r]){const e=t.mergeDetails[r],n=formatMergeParts(e);return logResult2(`${me.green(a)}Pushed ${me.green(`'${r}'`)} taste package to ${i} ${me.gray(`(${n.join(", ")})`)}`+l),hasMergeConflictRisk(e)}return logResult2(`${me.green(a)}Pushed ${me.green(`'${r}'`)} taste package to ${i}`+l),!1}function logPushMultiSuccess(e){const{result:t,options:n}=e;if(n.all)return!1;if(t.packagesPushed.length<=1)return!1;const r=n.remote?"remote":"global",o=wasPrompted()?"":`${Pe.tick} `;return logResult2(wrapLine(`${me.green(o)}Pushed ${me.green(t.packagesPushed.length)} taste packages ${me.green(`(${t.packagesPushed.join(", ")})`)} to ${r}`)),!(n.overwrite||!t.mergeDetails)&&hasMergeConflictRiskInRecord(t.mergeDetails)}function logPushUrls(e){const{result:t,options:n}=e;if(!n.remote||!t.filePaths)return;const r=new Set;for(const e of t.packagesPushed){const n=t.filePaths[e];if(!n||!n.includes("/"))continue;const[o,s]=n.split("/");if(!o||!s)continue;const i=getPackageLink({owner:o,packageName:s});r.has(i)||(r.add(i),console.log(me.gray(` ${i}`)))}}function logConflictSummary(e){const{result:t}=e,n=t.overwritten??[],r=t.skipped??[],o=t.packagesPushed.filter(e=>!n.includes(e)),s=t.packagesPushed.length+r.length,i=[];o.length>0&&i.push(wrapLine(`${me.green("Merged")} (${o.length}) ${o.join(", ")}`,4)),n.length>0&&i.push(wrapLine(`${me.yellow("Overwritten")} (${n.length}) ${n.join(", ")}`,4)),r.length>0&&i.push(wrapLine(`${me.dim("Skipped")} (${r.length}) ${me.dim(r.join(", "))}`,4)),i.length>0&&Fe.log.message(i.join("\n"));const a=`${s} ${1===s?"package":"packages"}`;Fe.outro(a)}function logPushBreakdown(e){const t=e.overwritten??[],n=e.skipped??[];if(0===n.length&&0===t.length)return;const r=e.packagesPushed.filter(e=>!t.includes(e)),o=[];r.length>0&&o.push(wrapLine(`${me.green("Pushed")} (${r.length}) ${r.join(", ")}`)),t.length>0&&o.push(wrapLine(`${me.yellow("Overwritten")} (${t.length}) ${t.join(", ")}`)),n.length>0&&o.push(wrapLine(`${me.dim("Skipped")} (${n.length}) ${me.dim(n.join(", "))}`)),o.length>0&&console.log(o.join("\n"))}function logPushSuccess(e){const{result:t,options:n}=e;if(wasPrompted())return setPrompted(!1),logConflictSummary({result:t}),void logPushUrls({result:t,options:n});const r=logPushAllSuccess({result:t,options:n})||logPushSingleSuccess({result:t,options:n})||logPushMultiSuccess({result:t,options:n});n.all&&logPushBreakdown(t),logPushUrls({result:t,options:n}),r&&logMergeReviewTip()}__name(resolvePullStrategy,"resolvePullStrategy"),__name(executePullStrategy,"executePullStrategy"),__name(pullSinglePackage,"pullSinglePackage"),__name(pull,"pull"),__name(executePullRemote,"executePullRemote"),__name(pullRemote,"pullRemote"),tn(),__name(logResult,"logResult"),__name(buildPullMessage,"buildPullMessage"),__name(logPullSingleSuccess,"logPullSingleSuccess"),__name(logPullSummary,"logPullSummary"),__name(logPullSuccess,"logPullSuccess"),__name(createPullCommand,"createPullCommand"),__name(validatePullOptions,"validatePullOptions"),__name(runPull,"runPull"),__name(pullRemoteSingle,"pullRemoteSingle"),__name(pullGlobal,"pullGlobal"),tn(),Bn(),tn(),Tw(),gw(),sn(),__name(fetchUserNamespaces,"fetchUserNamespaces"),tn(),__name(logResult2,"logResult"),__name(logPushAllSuccess,"logPushAllSuccess"),__name(logPushSingleSuccess,"logPushSingleSuccess"),__name(logPushMultiSuccess,"logPushMultiSuccess"),__name(logPushUrls,"logPushUrls"),__name(logConflictSummary,"logConflictSummary"),__name(logPushBreakdown,"logPushBreakdown"),__name(logPushSuccess,"logPushSuccess"),tn(),Pb(),tn();var VP=__name(({pkg:e,error:t})=>({success:!1,packagesPushed:[],skipped:[],errors:[{pkg:e,error:t}],mergeDetails:{},overwritten:[],filePaths:{}}),"fail"),QP=__name(e=>e.reduce((e,t)=>t.file.endsWith("taste.md")?e+parseTasteContent(t.content).length:e,0),"countRemoteLearnings");async function resolvePushAllStrategy(e){const{flagStrategy:t,overwrite:n,existingProject:r,packagesToPush:o,projectName:s,owner:i}=e;if("skip"===t)return"skip";if("overwrite"===t||n)return"overwrite";if("merge"===t)return"overwrite";if(!r)return"overwrite";const a=r.type??"category",l=o.reduce((e,t)=>e+t.learnings.length,0),u=QP(r.files);return"project"!==a?promptTypeMismatchStrategy({packageName:s,owner:i,localLearningsCount:l,remoteLearningsCount:u}):promptSameTypeStrategy({packageName:s,owner:i,localLearningsCount:l,remoteLearningsCount:u})}async function executePushAllRemote(t){const{packagesToPush:n,owner:r,overwrite:o,isPublic:s,isPublicExplicitlySet:i,flagStrategy:a}=t,l=e.basename(process.cwd()),u={success:!0,packagesPushed:[],skipped:[],errors:[],mergeDetails:{},overwritten:[],filePaths:{}},d=await downloadPackage({owner:r,packageName:l}),m=await resolvePushAllStrategy({flagStrategy:a,overwrite:o,existingProject:d,packagesToPush:n,projectName:l,owner:r});if("skip"===m)return u.skipped.push(...n.map(e=>e.category)),u;await writePackages({packages:n,projectName:l,owner:r,isPublic:i?s:d?.isPublic??!1,overwrite:"overwrite"===m});for(const e of n)u.packagesPushed.push(e.category),u.filePaths[e.category]=`${r}/${l}`,u.mergeDetails[e.category]={added:e.learnings.length,updated:0,unchanged:0};return d&&u.overwritten.push(...n.map(e=>e.category)),u}async function pushAllRemote(e){try{return await executePushAllRemote(e)}catch(e){return VP({pkg:"all",error:e instanceof Error?e.message:String(e)})}}__name(resolvePushAllStrategy,"resolvePushAllStrategy"),__name(executePushAllRemote,"executePushAllRemote"),__name(pushAllRemote,"pushAllRemote");var KP=__name(({pkg:e,error:t})=>({success:!1,packagesPushed:[],skipped:[],errors:[{pkg:e,error:t}],mergeDetails:{},overwritten:[],filePaths:{}}),"fail"),YP=__name(()=>({success:!0,packagesPushed:[],skipped:[],errors:[],mergeDetails:{},overwritten:[],filePaths:{}}),"emptyResult");async function writePkg(e){const{pkg:t,target:n,owner:r,isPublic:o,overwrite:s}=e;if("local-global"!==n){if(!r)throw new Error("Failed to get owner for remote push");await writePackage3({pkg:t,owner:r,isPublic:o,overwrite:s})}else await writePackage({pkg:t})}__name(writePkg,"writePkg");var JP=__name(e=>{const{target:t,category:n,owner:r}=e;return"local-global"===t?getCategoryTasteFile({target:"local-global",category:n}):"remote-project"!==t&&"remote-user"!==t||!r?void 0:`${r}/${n}`},"getDestPath");async function getUserOwner(){try{const e=await getAuthenticatedEntity();if(e.success&&e.user?.userName)return e.user.userName}catch{}}async function resolveSinglePushStrategy(e){const{flagStrategy:t,overwrite:n,existingPkg:r,target:o,tastePkg:s}=e;return"skip"===t?r?"skip":"merge":"merge"===t?"merge":"overwrite"===t||n?"overwrite":r&&"local-global"===o?promptGlobalPushStrategy({packageName:s.category,localLearningsCount:s.learnings.length,globalPkg:r}):"merge"}async function executePushStrategy(e){const{tastePkg:t,target:n,flagStrategy:r,overwrite:o,userOwner:s,isPublic:i,result:a}=e,l="local-global"===n?await getPackage({category:t.category}):await getPackage3({category:t.category}),u=await resolveSinglePushStrategy({flagStrategy:r,overwrite:o,existingPkg:l,target:n,tastePkg:t});if("skip"===u)return void a.skipped.push(t.category);if("overwrite"===u&&(await writePkg({pkg:t,target:n,owner:s,isPublic:i,overwrite:!0}),a.packagesPushed.push(t.category),a.overwritten.push(t.category),a.mergeDetails[t.category]={added:0,updated:t.learnings.length,unchanged:0}),"merge"===u){const{pkg:e,details:r}=mergeOrKeep({source:t,existing:l});await writePkg({pkg:e,target:n,owner:s,isPublic:i}),a.packagesPushed.push(t.category),a.mergeDetails[t.category]=r}const d=JP({target:n,category:t.category,owner:s});d&&(a.filePaths[t.category]=d)}async function pushSinglePackage(e){const{tastePkg:t,result:n}=e;try{await executePushStrategy(e)}catch(e){n.success=!1,n.errors.push({pkg:t.category,error:e instanceof Error?e.message:String(e)})}}async function push(e){const t=void 0!==e.isPublic,{packages:n,target:r,overwrite:o=!1,isPublic:s=!1,strategy:i}=e;if(!exists2())return KP({pkg:"all",error:"No taste directory found in project"});const a=await getAllPackages2();if(0===a.length)return KP({pkg:"all",error:"No taste packages found in project"});const l=validatePackages({packages:a,label:"project"});if(l.length>0)return{success:!1,packagesPushed:[],skipped:[],errors:[...l],mergeDetails:{},overwritten:[],filePaths:{}};const u=n.length>0?a.filter(e=>n.includes(e.category)):a;if(n.length>0&&0===u.length)return{success:!1,packagesPushed:[],skipped:[],errors:n.map(e=>({pkg:e,error:"Taste package not found in project"})),mergeDetails:{},overwritten:[],filePaths:{}};const d="remote-project"===r||"remote-user"===r?e.owner??await getUserOwner():void 0;if("remote-project"===r&&0===n.length)return d?pushAllRemote({packagesToPush:u,owner:d,overwrite:o,isPublic:s,isPublicExplicitlySet:t,flagStrategy:i}):KP({pkg:"all",error:"Failed to get owner for remote push"});if("local-global"!==r&&"remote-project"!==r&&"remote-user"!==r)return KP({pkg:"all",error:`Invalid target: ${r}`});const m=YP();for(const e of u)await pushSinglePackage({tastePkg:e,target:r,flagStrategy:i,overwrite:o,userOwner:d,isPublic:s,result:m});return m}async function executeRemotePush(e){const t=void 0!==e.isPublic,{owner:n,packageName:r,overwrite:o=!1,isPublic:s=!1,strategy:i}=e,a=await getPackage2({category:r});if(!a)return KP({pkg:r,error:`Taste package '${r}' not found in local project`});const l=validateTasteFile({content:formatPackage({pkg:a}),filePath:`${a.category}/taste.md`});if(!l.valid){const e=formatValidationIssues({result:l,verbose:!0});return KP({pkg:r,error:`Validation failed:\n${e}`})}l.issues.filter(e=>"warning"===e.severity).length>0&&(console.warn(`\nWarning: Taste package '${r}' has validation warnings:\n`),console.warn(formatValidationIssues({result:l,verbose:!0})+"\n"));const u=await downloadRemotePackage({owner:n,packageName:r}),d=await resolveSinglePushStrategy({flagStrategy:i,overwrite:o,existingPkg:u,target:"remote-project",tastePkg:a}),m=t?s:u?.isPublic??!1,g=YP();if("skip"===d)return g.skipped.push(r),g;if("overwrite"===d&&(await writePackage3({pkg:a,owner:n,isPublic:m,overwrite:!0}),g.packagesPushed.push(r),g.overwritten.push(r)),"merge"===d){const{pkg:e,details:t}=mergeOrKeep({source:a,existing:u});await writePackage3({pkg:e,owner:n,isPublic:m}),g.packagesPushed.push(r),g.mergeDetails[r]=t}return g.filePaths[r]=`${n}/${r}`,g}async function pushRemote(e){const{packageName:t}=e;if(!exists2())return KP({pkg:t,error:"No taste directory found in project"});try{return await executeRemotePush(e)}catch(e){return KP({pkg:t,error:e instanceof Error?e.message:String(e)})}}async function promptOwnerSelection(e){const{userName:t,orgs:n}=e;if(0===n.length)return t;const r=[{value:t,label:t,hint:"Personal"},...n.map(e=>({value:e.login,label:e.name||e.login,hint:"Organization"}))],o=await Fe.select({message:"Owner",options:r,initialValue:t});return Fe.isCancel(o)&&(Fe.cancel("Operation cancelled"),process.exit(0)),o}function createPushCommand(){return new _e("push").description(`Push taste packages to remote ${me.dim("(commandcode.ai)")} or global ${me.dim("(~/.commandcode)")}`).argument("[package]","Taste package name to push (omit with --all)").option("--all","Push all taste packages to remote").option("--remote","Push to commandcode.ai remote (default)").option("-g, --global","Push to local global storage (~/.commandcode)").addOption(new xe("--local","Use local server").hideHelp()).option("--public","Make package publicly discoverable on commandcode.ai").option("--private","Make package private (not publicly discoverable)").option("--owner <owner>","Push under a specific owner or organization").option("--overwrite","Replace existing package without prompting").option("--skip","Keep existing package, skip conflicting push").option("--merge","Auto-merge conflicting learnings without prompting").addOption(new xe("--staging","Push to staging environment").hideHelp()).action(withErrorHandler(async(e,t)=>{setPrompted(!1);const n=resolveRemoteDefault(t),r=await runPush({packageName:e,options:n});r.success||handleResultErrors(r.errors),logPushSuccess({result:r,options:n})}))}function validatePushOptions(e){const{packageName:t,options:n}=e;n.global&&n.remote&&exitWithError("--global and --remote are mutually exclusive — pick one destination"),n.public&&n.private&&exitWithError("--public and --private are mutually exclusive — pick one visibility"),n.owner&&n.global&&exitWithError("--owner only applies to remote pushes, not --global"),t||n.all||exitWithUsage({message:"Specify a taste package name or use --all to push everything",usage:["cmd taste push <package> push a taste package to remote (default)","cmd taste push --all push all taste packages to remote","cmd taste push <package> -g push a taste package to global (~/.commandcode)"]}),t&&n.all&&exitWithError("Use either a package name or --all, not both"),resolveConflictStrategy(n)}__name(getUserOwner,"getUserOwner"),__name(resolveSinglePushStrategy,"resolveSinglePushStrategy"),__name(executePushStrategy,"executePushStrategy"),__name(pushSinglePackage,"pushSinglePackage"),__name(push,"push"),__name(executeRemotePush,"executeRemotePush"),__name(pushRemote,"pushRemote"),tn(),__name(promptOwnerSelection,"promptOwnerSelection"),__name(createPushCommand,"createPushCommand"),__name(validatePushOptions,"validatePushOptions");var XP=__name(e=>!!e.public||!e.private&&void 0,"resolveVisibility");async function validateOwnerAccess(e){let t;try{t=await fetchUserNamespaces()}catch(e){return void dlog(`[Auth] validateOwnerAccess: namespace service unavailable, skipping — ${e instanceof Error?e.message:String(e)}`)}const n=[t.userName,...t.orgs.map(e=>e.login)];n.includes(e)||exitWithError(`No push access to '${e}'. Available: ${n.join(", ")}`)}async function resolveOwnerForPush(e){const{packageName:t,owner:n}=e,r=parseOwnerPackage(t);if(r)return await validateOwnerAccess(r.owner),r;if(n)return await validateOwnerAccess(n),{owner:n,packageName:t};Fe.intro(me.dim(`pushing ${t}`)),setPrompted(!0);const o=Fe.spinner();o.start("Resolving"),(await list({location:"local-project"})).some(e=>e.category===t)||(o.error("Failed"),Fe.outro(me.red(`Taste package '${t}' not found in project`)),process.exit(1));const s=await fetchUserNamespaces();return o.stop(s.orgs.length>0?"Select owner to push to":""),{owner:s.orgs.length>0?await promptOwnerSelection(s):s.userName,packageName:t}}async function runPush(e){const{packageName:t,options:n}=e;console.log("");const r=resolveRemoteDefault(n);validatePushOptions({packageName:t,options:r});const o=resolveConflictStrategy(r);return r.remote&&r.all?pushRemoteAll({options:r,strategy:o}):r.remote?pushRemoteSingle({packageName:t,options:r,strategy:o}):pushGlobal({packageName:t,options:r,strategy:o})}async function pushRemoteAll(t){const{options:n,strategy:r}=t;n.owner&&await validateOwnerAccess(n.owner);const o=(await getAllPackages2()).length,s=`${o} ${1===o?"package":"packages"}`,i=e.basename(process.cwd()),a=resolveStrategyLabel({strategy:r,isRemote:!0});console.log(me.dim(` Pushing ${s} to ${i} (remote)${a}`)),console.log(""),setActiveSpinner(Ae("Pushing taste packages").start());const l=await push({packages:[],target:"remote-project",overwrite:n.overwrite,isPublic:XP(n),strategy:r,owner:n.owner});return stopActiveSpinner(),l}async function pushRemoteSingle(e){const{packageName:t,options:n,strategy:r}=e,{owner:o,packageName:s}=await resolveOwnerForPush({packageName:t,owner:n.owner});startPushSpinner({owner:o,pkgName:s});const i=await pushRemote({owner:o,packageName:s,overwrite:n.overwrite,isPublic:XP(n),strategy:r});return stopActiveSpinner(`Pushed to ${o}/${s}`),i}function resolveStrategyLabel(e){const{strategy:t,isRemote:n=!1}=e;return"overwrite"===t?" · overwrite":"skip"===t?" · skip conflicts":"merge"===t?" · auto-merge":n?"":" · will prompt on conflicts"}function startPushSpinner(e){const{owner:t,pkgName:n}=e;if(wasPrompted()){const e=Fe.spinner();return e.start(`Pushing to ${t}/${n}`),void setActiveSpinner(e)}setActiveSpinner(Ae("Pushing taste package").start())}async function pushGlobal(e){const{packageName:t,options:n,strategy:r}=e,o=n.all||!t?[]:[t],s=await getAllPackages2(),i=o.length>0?o.length:s.length,a=`${i} ${1===i?"package":"packages"}`,l=shortenPath(getTastePath({target:"local-global"})),u=resolveStrategyLabel({strategy:r});console.log(me.dim(` Pushing ${a} to ${l}${u}`)),console.log(""),setActiveSpinner(Ae("Pushing taste packages").start());const d=await push({packages:o,target:"local-global",overwrite:n.overwrite,strategy:r});return stopActiveSpinner(),d}function createTasteCommand(){const e=new _e(jt.TASTE);return e.description("Manage taste learning packages").allowUnknownOption().allowExcessArguments(),e.addCommand(createPushCommand()),e.addCommand(createPullCommand()),e.addCommand(createListCommand()),e.addCommand(createLintCommand()),e.addCommand(createOpenCommand()),isExperimentalEnabled()&&e.addCommand(createLearnCommand()),e}function formatVersion(e,t,n=!1){const r=n?pe.bold(pe.green(t)):pe.white(t);return`${pe.dim(e)} ${r}`}function showVersionDetails(e){console.log(formatVersion("Current:",e.currentVersion)),console.log(formatVersion("Latest: ",e.latestVersion,!0)),console.log(""),console.log(`Run ${pe.bold(pe.green("cmd update"))} to install.`)}function showUpdateSuccessHint(){console.log(pe.dim(`Run ${pe.cyan("cmd")} to start using the new version.`))}function showManualUpdateHint(e){console.log(pe.dim("Try updating manually:")),console.log(pe.cyan(`npm i -g command-code@${e}`))}function showCheckFailure(){console.log(pe.dim("Please check your internet connection or try again later."))}async function checkAction(){const e=Ae("Checking for updates...").start(),t=await checkForUpdateAvailable();if(!t)return e.fail("Failed to check for updates"),void showCheckFailure();t.updateAvailable?(e.stop(),console.log(""),console.log(`${pe.green(Pe.tick)} Update available`),showVersionDetails(t)):e.succeed(`Up to date ${pe.dim(`(${t.currentVersion})`)}`)}async function performUpdateAction(){const e=Ae("Checking for updates...").start(),t=await checkForUpdateAvailable();if(!t)return e.fail("Failed to check for updates"),void showCheckFailure();t.updateAvailable?(e.text=`Updating ${t.currentVersion} ${Pe.arrowRight} ${t.latestVersion}...`,(await performAutoUpdate({silent:!0,updateInfo:t})).success||(e.fail("Update failed"),trackError({error:sanitizeErrorForTelemetry({error:new Error("Update failed"),label:"cli_update_failed"}),context:{component:$o.UPDATE_COMMAND,heading:"CLI update failed","update.current_version":t.currentVersion,"update.target_version":t.latestVersion}}),showManualUpdateHint(t.latestVersion),await shutdownTelemetry(),process.exit(1)),e.succeed(`Updated to v${t.latestVersion}`),showUpdateSuccessHint()):e.succeed(`Up to date ${pe.dim(`(${t.currentVersion})`)}`)}async function updateAction(e){e.checkOnly?await checkAction():await performUpdateAction()}__name(validateOwnerAccess,"validateOwnerAccess"),__name(resolveOwnerForPush,"resolveOwnerForPush"),__name(runPush,"runPush"),__name(pushRemoteAll,"pushRemoteAll"),__name(pushRemoteSingle,"pushRemoteSingle"),__name(resolveStrategyLabel,"resolveStrategyLabel"),__name(startPushSpinner,"startPushSpinner"),__name(pushGlobal,"pushGlobal"),Fr(),__name(createTasteCommand,"createTasteCommand"),tn(),sn(),jo(),__name(formatVersion,"formatVersion"),__name(showVersionDetails,"showVersionDetails"),__name(showUpdateSuccessHint,"showUpdateSuccessHint"),__name(showManualUpdateHint,"showManualUpdateHint"),__name(showCheckFailure,"showCheckFailure"),__name(checkAction,"checkAction"),__name(performUpdateAction,"performUpdateAction"),__name(updateAction,"updateAction");var ZP=new _e("update").description("Update Command Code to the latest version").option("--check-only","Check for updates without installing").allowUnknownOption().allowExcessArguments().action(updateAction);tn(),xb(),Pb();var eA=__name((e,t)=>`${Pe.info} ${e}: ${pe.cyan(t)}`,"formatInfoLine"),tA=__name(e=>pe.bold(`${e}:`),"formatSectionHeader"),nA=__name(e=>pe.red(e),"formatError"),rA=__name(e=>e instanceof Error?e.message:"Unknown error","formatErrorMessage"),oA=__name(e=>["",tA("User Information"),eA("Name",e.name),eA("Email",e.email),eA("Username",e.userName)],"buildUserOutput"),sA=__name(e=>["",tA("Organization"),eA("Name",e.name),eA("Login",e.login)],"buildOrgOutput"),iA=__name(e=>{e.forEach(e=>console.log(e))},"printLines"),aA=__name((e,t)=>{iA(oA(e)),t&&iA(sA(t)),console.log("")},"displayUserInfo"),lA=__name(e=>null!==e&&e.length>0,"validateApiKey"),cA=__name(e=>e.success&&null!==e.user,"validateUserData");async function whoamiAction(){const e=Ae("Fetching user information...").start();try{const t=await getAuthKey();lA(t)||(e.fail(nA('Not authenticated. Please login using "cmd auth login"')),process.exit(1));const n=await getAuthenticatedEntity();cA(n)||(e.fail(nA("Failed to fetch user info")),process.exit(1)),e.succeed("User information loaded"),aA(n.user,n.org)}catch(t){e.fail(nA(`Error: ${rA(t)}`)),process.exit(1)}}__name(whoamiAction,"whoamiAction");var uA=new _e("whoami").description("Display current user information").allowUnknownOption().allowExcessArguments().action(whoamiAction);function normalizeGitUrl(e){let t=e.trim();const n=t.match(/^git@([^:]+):(.+?)(?:\.git)?$/);return n?`https://${n[1]}/${n[2]}`:(t=t.replace(/\.git$/,""),t)}function validateGitRepo(){try{if("true"!==L("git rev-parse --is-inside-work-tree",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim())throw new Error("Not inside a git repository.")}catch{throw new Error("Sandbox requires a git repository with a GitHub remote.")}let e;try{e=L("git remote get-url origin",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{throw new Error("No GitHub remote found. Add one with: git remote add origin https://github.com/you/repo")}const t=normalizeGitUrl(e);let n;try{n=L("git branch --show-current",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{throw new Error("Failed to determine current branch.")}if(!n)throw new Error("Detached HEAD state. Please checkout a branch first.");if(!/^[\w./-]+$/.test(n))throw new Error("Branch name contains invalid characters. Please use a simpler branch name.");try{if(!L(`git ls-remote --heads origin ${n}`,{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim())throw new Error(`Branch "${n}" not found on remote. Push it first: git push -u origin ${n}`)}catch(e){if(e instanceof Error&&e.message.includes("not found on remote"))throw e;throw new Error(`Branch "${n}" not found on remote. Push it first: git push -u origin ${n}`)}return{repoUrl:t,branch:n,isClean:""===L("git status --porcelain",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}}function getGitHubToken(){const e=process.env.GITHUB_TOKEN;if(e)return e;try{return L("gh auth token",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{throw new Error("GitHub authentication required.\nEither set GITHUB_TOKEN or run: gh auth login")}}tn(),tn(),sn(),gw(),Tw(),un(),Vr(),tn(),__name(normalizeGitUrl,"normalizeGitUrl"),__name(validateGitRepo,"validateGitRepo"),tn(),__name(getGitHubToken,"getGitHubToken"),tn(),Tw(),xb(),tn();var dA=["completed","failed","cancelled","timed_out"];function isTerminalStatus(e){return dA.includes(e)}__name(isTerminalStatus,"isTerminalStatus");var mA={setting_up:"Setting up sandbox...",cloning:"Cloning repository..."};function stopAllSpinners({state:e}){e.workingSpinner&&(e.workingSpinner.stop(),e.workingSpinner=null),e.currentSpinner&&(e.currentSpinner.stop(),e.currentSpinner=null)}function renderStatusEvent({event:e,state:t}){const n=e.data.status,r=mA[n],o="setup"===t.phase;if(t.isResume&&o&&!isTerminalStatus(n)&&"running"!==n)r&&t.workingSpinner&&(t.workingSpinner.text=r);else{if(r&&o&&(t.currentSpinner&&t.currentSpinner.succeed(),t.currentSpinner=Ae({stream:process.stderr,text:r}).start()),"running"===n)return t.currentSpinner&&(t.currentSpinner.succeed(),t.currentSpinner=null),t.phase="running",void(t.workingSpinner||(t.workingSpinner=Ae({stream:process.stderr}).start()));if("completed"===n){t.workingSpinner&&(t.workingSpinner.succeed("Session completed"),t.workingSpinner=null),t.currentSpinner&&(t.currentSpinner.succeed(),t.currentSpinner=null),t.phase="done";const n=e.data.prUrl;return void(n&&console.error(`PR: ${pe.cyan(n)}`))}if("failed"===n){t.workingSpinner&&(t.workingSpinner.fail("Session failed"),t.workingSpinner=null),t.currentSpinner&&(t.currentSpinner.fail(),t.currentSpinner=null),t.phase="done";const n=e.data.message||"Unknown error";return void console.error(`${Pe.cross} ${pe.red(n)}`)}if("timed_out"===n)return t.workingSpinner&&(t.workingSpinner.fail("Session timed out"),t.workingSpinner=null),t.currentSpinner&&(t.currentSpinner.fail("Timed out"),t.currentSpinner=null),void(t.phase="done");"cancelled"===n&&(stopAllSpinners({state:t}),t.phase="done",console.error(`\n${pe.yellow("Cancelled.")}`))}}function renderEvent({event:e,state:t}){if("status"!==e.type){if("pty"===e.type){const n=e.data.content;return void(n&&(t.workingSpinner&&t.workingSpinner.stop(),process.stdout.write(n),t.workingSpinner&&t.workingSpinner.start()))}if("error"===e.type){t.currentSpinner&&(t.currentSpinner.fail(),t.currentSpinner=null);const n=e.data.message;console.error(`${Pe.cross} ${pe.red(n)}`)}}else renderStatusEvent({event:e,state:t})}function setupInputHandling({callbacks:e}){const t=__name(t=>{3===t[0]?e.onCancel():4===t[0]&&e.onDetach()},"onStdinData"),n=process.rawListeners("SIGINT").slice();return process.removeAllListeners("SIGINT"),process.stdin.isTTY?(process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.on("data",t),process.on("SIGINT",()=>{})):process.on("SIGINT",()=>e.onCancel()),()=>{process.stdin.isTTY&&(process.stdin.removeListener("data",t),process.stdin.setRawMode(!1),process.stdin.pause()),process.removeAllListeners("SIGINT");for(const e of n)process.on("SIGINT",e)}}function setupResizeForwarding({ws:e}){const t=__name(()=>{e.readyState===WebSocket.OPEN&&e.send(JSON.stringify({action:"resize",cols:process.stdout.columns,rows:process.stdout.rows}))},"onResize");return process.stdout.on("resize",t),()=>process.stdout.removeListener("resize",t)}function sendTerminalSize({ws:e}){e.send(JSON.stringify({action:"resize",cols:process.stdout.columns||120,rows:process.stdout.rows||30}))}async function streamSession({sessionId:e,prompt:t,lastEventId:n=0,isResume:r=!1}){const o=getApiBaseUrl().replace(/^http/,"ws"),s=await getAuthKey();if(!s)throw new Error("Not authenticated. Run: cmd login");const i=new URLSearchParams({token:s,...n>0?{lastEventId:String(n)}:{}}),a=`${o}/alpha/sandbox/stream/${e}?${i.toString()}`;return new Promise((t,o)=>{const s=new WebSocket(a),i={currentSpinner:null,workingSpinner:null,phase:"setup",lastEventId:n,isResume:r};r&&(i.currentSpinner=Ae({stream:process.stderr,text:"Reconnecting..."}).start());const l=__name(()=>{i.phase="done",stopAllSpinners({state:i}),s.close(),console.error(`\n${pe.yellow("Detached.")} Session still running.`),console.error(`Resume with: ${pe.cyan(`cmd --experimental sandbox --id ${e}`)}`),g(),t()},"detach"),u=__name(()=>{i.phase="done",stopAllSpinners({state:i}),s.readyState===WebSocket.OPEN&&s.send(JSON.stringify({action:"cancel"})),s.close(),console.error(`\n${pe.yellow("Sandbox stopped.")}`),g(),t()},"cancelSandbox"),d=setupResizeForwarding({ws:s}),m=setupInputHandling({callbacks:{onCancel:u,onDetach:l}});process.once("SIGTERM",l);const g=__name(()=>{d(),m(),process.removeListener("SIGTERM",l)},"teardown");s.addEventListener("open",()=>{sendTerminalSize({ws:s}),i.currentSpinner&&(i.currentSpinner.stop(),i.currentSpinner=null),console.error(""),console.error(`${pe.yellow("[Ctrl+C]")} ${pe.dim("stop")} ${pe.yellow("[Ctrl+D]")} ${pe.dim("detach")}`),console.error(`${pe.dim("Session:")} ${pe.gray(e)}`),console.error(""),r&&(i.workingSpinner=Ae({stream:process.stderr}).start())}),s.addEventListener("message",e=>{try{const n="string"==typeof e.data?e.data:e.data.toString(),r=JSON.parse(n);renderEvent({event:r,state:i}),void 0!==r.id&&(i.lastEventId=r.id),"status"===r.type&&isTerminalStatus(r.data.status)&&(s.close(),g(),t())}catch{}}),s.addEventListener("error",()=>{g(),i.currentSpinner&&(i.currentSpinner.fail("Connection error"),i.currentSpinner=null),o(new Error("WebSocket connection failed"))}),s.addEventListener("close",()=>{"done"!==i.phase&&(i.phase="done",stopAllSpinners({state:i}),g(),console.error(`\n${pe.yellow("Disconnected.")} Session still running.`),console.error(`Resume with: ${pe.cyan(`cmd --experimental sandbox --id ${e}`)}`),t())})})}function readLocalConfigFiles(){let e="",t="";try{e=C.readFileSync(getAuthFile(),"utf-8")}catch{}try{t=C.readFileSync(getConfigFile(),"utf-8")}catch{}return{auth:e,config:t}}async function askQuestion(e){const t=rt.createInterface({input:process.stdin,output:process.stderr});return new Promise(n=>{t.question(e,e=>{t.close(),n(e)})})}async function startSandboxSession({repoUrl:e,branch:t,prompt:n,ghToken:r,isInternalTeam:o,configFiles:s}){return new Jy({baseUrl:getApiBaseUrl()}).post({endpoint:At.ALPHA.SANDBOX.START,body:{repoUrl:e,branch:t,prompt:n,ghToken:r,isInternalTeam:o,configFiles:s}})}async function sandboxMode({prompt:e,resume:t}){t&&(await streamSession({sessionId:t,isResume:!0}),process.exit(0)),await ensureAuthenticated()||process.exit(1);const n=validateGitRepo();n.isClean||console.error(pe.yellow("Warning: You have uncommitted changes. The sandbox clones from remote, so local changes won't be included."));const r=getGitHubToken(),o=isInternalTeamFlagPresent(),s=readLocalConfigFiles(),i=e||await askQuestion(`${pe.bold("What do you want to do?")}\n${pe.cyan(">")} `);if(!i.trim())return void console.error(pe.yellow("No prompt provided. Aborting."));const a=i.trim().slice(0,Bt.MAX_PROMPT_CHARS),l=Ae({stream:process.stderr,text:"Starting sandbox session..."}).start();try{const e=await startSandboxSession({repoUrl:n.repoUrl,branch:n.branch,prompt:a,ghToken:r,isInternalTeam:o,configFiles:s});l.succeed("Sandbox started"),await streamSession({sessionId:e.sessionId,prompt:a}),process.exit(0)}catch(e){l.fail("Failed to start session");const t=e instanceof Error?e.message:"Unknown error";t.includes("401")||t.toLowerCase().includes("unauthorized")?console.error(pe.red("Authentication failed. Try logging in again: cmd login")):console.error(pe.red(t)),process.exit(1)}}function createSandboxCommand(){return new _e("sandbox").description("Run a task autonomously in a sandbox").argument("[prompt]","Task description").option("--id <sessionId>","Resume an existing sandbox session").enablePositionalOptions().action(async(e,t)=>{try{await sandboxMode({prompt:e,resume:t.id})}catch(e){const t=e instanceof Error?e.message:"Unknown error";console.error(pe.red(t)),process.exit(1)}})}function validateSafeString(e,t){if(e.includes("..")||e.includes("\\"))throw new Error(`Invalid ${t}: path traversal sequences are not allowed.\nExpected format: owner/repo or owner/repo/path`);if(!/^[a-zA-Z0-9._/-]+$/.test(e))throw new Error(`Invalid ${t}: contains unsupported characters.\nOnly letters, numbers, hyphens, underscores, dots, and slashes are allowed.`)}function parseGitHubRepo(e){let t,n=e.replace(/^https?:\/\/github\.com\//,"");const r=n.lastIndexOf("@");r>0&&r<n.length-1&&(t=n.slice(r+1),n=n.slice(0,r),validateSafeString(t,"branch name"));const o=n.split("/");if(o.length<2)throw new Error("Invalid GitHub repository format. Expected: owner/repo or owner/repo/path");const[s,i,...a]=o;validateSafeString(s,"owner"),validateSafeString(i,"repository");const l=a.length>0?a.join("/"):void 0;return l&&validateSafeString(l,"path"),{owner:s,repo:i,path:l,branch:t}}function buildGigetSource(e){const{owner:t,repo:n,path:r,branch:o}=e;let s=`gh:${t}/${n}`;return r&&(s+=`/${r}`),o&&(s+=`#${o}`),s}async function fetchSkillFromGitHub(e){await cleanupStaleTempDirectories();const n=parseGitHubRepo(e),{owner:r,repo:o,path:s}=n;let i;if(s){const e=s.split("/").filter(Boolean);i=e[e.length-1]}else i=o;const a=t.join(w.tmpdir(),`commandcode-skill-${Q()}`);await q.mkdir(a,{recursive:!0});try{const e=buildGigetSource(n),{downloadTemplate:s}=await import("giget");try{await s(e,{dir:a,force:!0,silent:!0})}catch(t){if(!isCorruptedArchiveError(t))throw t;await clearGigetCache(r,o),await s(e,{dir:a,force:!0,silent:!0})}const l=t.join(a,"SKILL.md"),u=t.join(a,"skill.md");let d=!1;try{await q.access(l),d=!0}catch{}if(!d)try{await q.access(u),d=!0}catch{}if(!d)throw new Error(`SKILL.md not found in ${e}. Make sure the repository contains a SKILL.md file.`);return{tempDir:a,skillName:i}}catch(e){if(await q.rm(a,{recursive:!0,force:!0}).catch(()=>{}),e instanceof Error&&e.message.includes("SKILL.md not found"))throw e;throw wrapFetchError(e,r,o)}}async function discoverSkillsInRepo(e,t){const n=parseGitHubRepo(e),{owner:r,repo:o,path:s,branch:i}=n,{keepTempDir:a=!1}=t||{},{discoverSkillsLocally:l}=await Promise.resolve().then(()=>(Db(),$b)),u=await l({owner:r,repo:o,path:s,branch:i,keepTempDir:a});if(0===u.skills.length)throw new Error(`No skills found in repository ${r}/${o}${s?` at path "${s}"`:""}. Ensure the repository contains SKILL.md files.`);return u}async function resolveSkillMdPath(e){const n=t.join(e,"SKILL.md");try{return await q.access(n),n}catch{}const r=t.join(e,"skill.md");try{return await q.access(r),r}catch{}throw new Error(`SKILL.md not found in ${e}`)}function validateSkillName(e){const t=e.trim();if(!t||0===t.length)throw new Error("Invalid skill name: name cannot be empty");if(t.includes("/")||t.includes("\\"))throw new Error(`Invalid skill name: "${e}". Skill names cannot contain path separators (/ or \\).`);if(t.includes(".."))throw new Error(`Invalid skill name: "${e}". Skill names cannot contain parent directory references (..).`);if(t.startsWith("."))throw new Error(`Invalid skill name: "${e}". Skill names cannot start with a dot.`);if(!/^[a-z0-9-]+$/.test(t))throw new Error(`Invalid skill name: "${e}". Skill names must contain only lowercase letters, numbers, and hyphens.`);return t}async function validateSkillContent(e){const t=await resolveSkillMdPath(e),n=await q.readFile(t,"utf-8"),{data:r}=Ge(n),o=Eh.parse(r);return{name:validateSkillName(o.name),description:o.description}}async function skillExists(e){const{skillName:n,location:r}=e,o="global"===r?getGlobalSkillsDir():getProjectSkillsDir(),s=t.join(o,n);try{return await q.access(s),!0}catch{return!1}}async function discoverSkills(e,t){return discoverSkillsInRepo(e,t)}async function installSkill(e){const{repoInput:n,options:r={}}=e,{global:o=!1,force:s=!1,skillName:i,discoveredSkill:a,cachedTempDir:l}=r;let u,d,m=n;if(i){let e;if(a)e=a;else{const t=await discoverSkillsInRepo(n);if(0===t.skills.length)throw new Error(`No skills found in repository: ${n}`);const r=t.skills.find(e=>e.name.toLowerCase()===i.toLowerCase());if(!r){const e=t.skills.map(e=>e.name).join(", ");throw new Error(`Skill "${i}" not found in repository. Available skills: ${e}`)}e=r}const t=parseGitHubRepo(n),r=[t.path,e.path&&"."!==e.path?e.path:void 0].filter(Boolean).join("/"),o=r?`${t.owner}/${t.repo}/${r}`:`${t.owner}/${t.repo}`;m=t.branch?`${o}@${t.branch}`:o}if(l&&a){u=a.path&&"."!==a.path?t.join(l,a.path):l,d=!1;try{await resolveSkillMdPath(u)}catch{const e=a.path&&"."!==a.path?`at ${a.path}`:"at root";throw new Error(`SKILL.md not found in cached directory ${e}. Make sure the repository contains a SKILL.md file.`)}}else u=(await fetchSkillFromGitHub(m)).tempDir,d=!0;try{const{name:e,description:n}=await validateSkillContent(u),r=e,i=o?"global":"project",a="global"===i?getGlobalSkillsDir():getProjectSkillsDir(),l=await skillExists({skillName:r,location:i});if(l&&!s)throw new Error(`Skill "${r}" already exists in ${"global"===i?"~/.commandcode/skills/":".commandcode/skills/"}. Use --force to overwrite.`);await q.mkdir(a,{recursive:!0});const d=t.join(a,r),{randomUUID:m}=await import("crypto"),g=t.join(a,`.${r}.tmp.${m()}`);try{await q.cp(u,g,{recursive:!0,force:!0,dereference:!1}),l&&s&&await q.rm(d,{recursive:!0,force:!0}),await q.rename(g,d)}catch(e){if(await q.rm(g,{recursive:!0,force:!0}).catch(()=>{}),e instanceof Error&&"code"in e&&("EEXIST"===e.code||"ENOTEMPTY"===e.code))throw new Error(`Skill "${r}" was created by another process during installation. Use --force to overwrite.`);throw e}let h;try{h=await resolveSkillMdPath(d)}catch{h=t.join(d,"SKILL.md")}return{name:r,description:n,location:i,path:h}}finally{d&&await q.rm(u,{recursive:!0,force:!0}).catch(()=>{})}}async function removeSkill(e){const{global:n=!1}=e,r=validateSkillName(e.skillName),o=n?"global":"project",s="global"===o?getGlobalSkillsDir():getProjectSkillsDir(),i=t.join(s,r);if(!await skillExists({skillName:r,location:o}))throw new Error(`Skill "${r}" not found in ${"global"===o?"global (~/.commandcode/skills/)":"project (.commandcode/skills/)"} skills.${"global"===o?"":" Use -g/--global to check global skills."}`);await q.rm(i,{recursive:!0,force:!0})}async function listSkills(){const{global:e,project:t}=await loadAllSkillSummaries();return{global:e.map(e=>({name:e.name,description:e.description,location:"global",path:e.filePath})),project:t.map(e=>({name:e.name,description:e.description,location:"project",path:e.filePath}))}}__name(stopAllSpinners,"stopAllSpinners"),__name(renderStatusEvent,"renderStatusEvent"),__name(renderEvent,"renderEvent"),__name(setupInputHandling,"setupInputHandling"),__name(setupResizeForwarding,"setupResizeForwarding"),__name(sendTerminalSize,"sendTerminalSize"),__name(streamSession,"streamSession"),__name(readLocalConfigFiles,"readLocalConfigFiles"),__name(askQuestion,"askQuestion"),__name(startSandboxSession,"startSandboxSession"),__name(sandboxMode,"sandboxMode"),__name(createSandboxCommand,"createSandboxCommand"),Fr(),tn(),tn(),tn(),tn(),Lb(),__name(validateSafeString,"validateSafeString"),__name(parseGitHubRepo,"parseGitHubRepo"),__name(buildGigetSource,"buildGigetSource"),__name(fetchSkillFromGitHub,"fetchSkillFromGitHub"),__name(discoverSkillsInRepo,"discoverSkillsInRepo"),Fh(),__name(resolveSkillMdPath,"resolveSkillMdPath"),__name(validateSkillName,"validateSkillName"),__name(validateSkillContent,"validateSkillContent"),__name(skillExists,"skillExists"),__name(discoverSkills,"discoverSkills"),__name(installSkill,"installSkill"),__name(removeSkill,"removeSkill"),__name(listSkills,"listSkills"),sn();var pA=[`${pe.dim("Usage:")}`,` ${pe.cyan("cmd skills add")} ${pe.white("<owner/repo>")}`,"",`${pe.dim("Examples:")}`,` ${pe.cyan("cmd skills add")} ${pe.white("acme/my-skills")} ${pe.dim("# single-skill repo")}`,` ${pe.cyan("cmd skills add")} ${pe.white("acme/skills/path/to/skill")} ${pe.dim("# specific path in repo")}`,` ${pe.cyan("cmd skills add")} ${pe.white("acme/multi-skills -s my-skill")} ${pe.dim("# pick one from multi-skill repo")}`,` ${pe.cyan("cmd skills add")} ${pe.white("acme/repo@branch")} ${pe.dim("# specific branch")}`,` ${pe.cyan("cmd skills add")} ${pe.white("acme/repo --global")} ${pe.dim("# install to ~/.commandcode/skills/")}`],gA=__name((e,t)=>`${pe.green(Pe.tick)} Installed ${pe.cyan(e)} ${pe.dim(`${Pe.arrowRight} ${t}/`)}`,"formatInstalled"),hA=__name(e=>`${pe.red(Pe.cross)} ${e}`,"formatError");async function cleanupAndExit(e,t){e&&await U(e,{recursive:!0,force:!0}).catch(()=>{}),process.exit(t)}function validateRepoFormat(e){(e.startsWith(".")||e.startsWith("/")||e.startsWith("~"))&&(console.error(hA("Local paths are not supported. Skills must be installed from GitHub.")),console.log(""),pA.forEach(e=>console.log(e)),process.exit(1));const t=e.replace(/^https?:\/\/github\.com\//,""),n=t.lastIndexOf("@");(n>0?t.slice(0,n):t).split("/").filter(Boolean).length<2&&(console.error(hA(`Invalid repository: "${e}"`)),console.log(""),console.log(`Expected format: ${pe.cyan("owner/repo")} or ${pe.cyan("owner/repo/path")}`),console.log(""),pA.forEach(e=>console.log(e)),process.exit(1))}async function addAction(e,t){const n=process.stdout.isTTY&&process.stdin.isTTY,r=t.global?"~/.commandcode/skills":".commandcode/skills";let o;validateRepoFormat(e);const s=Ae({text:`Fetching ${pe.cyan(e)}...`,color:"cyan"});try{let i=[];s.start();const a=await discoverSkills(e,{keepTempDir:!0}),{skills:l,tempDir:u}=a;if(o=u,s.stop(),0===l.length&&(console.error(hA(`No skills found in ${pe.cyan(e)}`)),console.log(pe.dim("The repository must contain at least one SKILL.md file.")),await cleanupAndExit(o,1)),t.skill){const n=l.find(e=>e.name.toLowerCase()===t.skill.toLowerCase());n||(console.error(hA(`Skill "${t.skill}" not found in ${pe.cyan(e)}`)),console.log(""),console.log(pe.dim("Available skills:")),l.forEach(e=>console.log(` ${pe.cyan(e.name)}`)),await cleanupAndExit(o,1)),i=[n]}else if(1===l.length)i=[l[0]];else if(n){const t=await qe({message:`Select skills to install from ${e}`,options:l.map(e=>({value:e.name,label:e.name})),required:!0});"symbol"==typeof t&&(console.log(pe.dim("Cancelled")),await cleanupAndExit(o,0));const n=t;i=l.filter(e=>n.includes(e.name))}else i=l;let d=0;for(const n of i)try{const s=Ae({text:`Installing ${pe.cyan(n.name)}...`,color:"cyan"});s.start();const i=await installSkill({repoInput:e,options:{global:t.global,force:t.force,skillName:n.name,discoveredSkill:n,cachedTempDir:o}});s.stop(),console.log(gA(i.name,r))}catch(e){d++;const t=e instanceof Error?e.message:String(e);console.error(hA(`Failed to install "${n.name}"`)),console.log(pe.dim(` ${t}`))}await cleanupAndExit(o,d>0?1:0)}catch(e){s.stop();const t=e instanceof Error?e.message:String(e);console.error(hA(t)),await cleanupAndExit(o,1)}}__name(cleanupAndExit,"cleanupAndExit"),__name(validateRepoFormat,"validateRepoFormat"),__name(addAction,"addAction");var fA=new _e("add").description("Install a skill from a GitHub repository").argument("<repo>","GitHub repository (owner/repo or owner/repo/path)").option("-g, --global","Install to global skills (~/.commandcode/skills/)").option("-f, --force","Overwrite if skill already exists").option("-s, --skill <name>","Specific skill name to install from repo").addHelpText("after",`\n${pA.join("\n")}`).configureOutput({outputError:__name((e,t)=>{e.includes("missing required argument")?(console.error(hA("No repository specified.")),console.log(""),pA.forEach(e=>console.log(e))):t(e)},"outputError")}).action(addAction);tn(),sn();var yA=__name((e,t)=>`${pe.green(Pe.tick)} Removed ${pe.cyan(e)} from ${t} skills`,"formatRemoved"),wA=__name(e=>`${pe.red(Pe.cross)} ${e}`,"formatError");function validateSkillNameEarly(e){return e.includes("/")||e.includes("\\")?`"${e}" is not a valid skill name — it cannot contain path separators.`:e.includes("..")?`"${e}" is not a valid skill name — it cannot contain "..".`:e.startsWith(".")?`"${e}" is not a valid skill name — it cannot start with a dot.`:/^[a-z0-9-]+$/.test(e.trim())?null:`"${e}" is not a valid skill name — use only lowercase letters, numbers, and hyphens.`}async function removeAction(e,t){try{const n=process.stdout.isTTY&&process.stdin.isTTY,r=t.global?"global":"project",o=validateSkillNameEarly(e);if(o&&(console.error(wA(o)),console.log(pe.dim(`Run ${pe.cyan("cmd skills list")} to see installed skills.`)),process.exit(1)),!t.yes&&n){const t=await je({message:`Remove ${pe.cyan(e)} from ${r} skills?`});"symbol"!=typeof t&&t||(console.log(pe.dim("Cancelled")),process.exit(0))}await removeSkill({skillName:e,global:t.global}),console.log(yA(e,r)),process.exit(0)}catch(n){const r=n instanceof Error?n.message:"Failed to remove skill";r.includes("not found")?(console.error(wA(`Skill "${e}" not found in ${t.global?"global":"project"} skills`)),t.global||console.log(pe.dim(`Try ${pe.cyan(`cmd skills remove ${e} --global`)} to check global skills.`)),console.log(pe.dim(`Run ${pe.cyan("cmd skills list")} to see installed skills.`))):console.error(wA(r)),process.exit(1)}}__name(validateSkillNameEarly,"validateSkillNameEarly"),__name(removeAction,"removeAction");var SA=new _e("remove").description("Remove an installed skill").argument("<skill-name>","Name of the skill to remove").option("-g, --global","Remove from global skills (~/.commandcode/skills/)").option("-y, --yes","Skip confirmation prompt").action(removeAction);tn(),ob(),sn();var bA=__name((e,t)=>{const n=t.length>60?t.substring(0,57)+"...":t;return` ${pe.cyan(e)} ${pe.dim(`· ${n}`)}`},"formatSkillLine"),EA=__name((e,t)=>`${pe.bold(pe.white(e))} ${pe.dim(`(${t})`)}`,"formatSectionHeader"),CA=__name(()=>["",pe.dim("No skills installed."),"",pe.dim("Looking in:"),pe.dim(` ${getGlobalSkillsDir()} ${pe.white("(global)")}`),pe.dim(` ${getProjectSkillsDir()} ${pe.white("(project)")}`),pe.dim(` ${getGlobalAgentsCompatSkillsDir()} ${pe.white("(global, .agents)")}`),pe.dim(` ${getProjectAgentsCompatSkillsDir()} ${pe.white("(project, .agents)")}`),"",`Install a skill: ${pe.cyan("cmd skills add")} ${pe.dim("<owner/repo>")}`,""],"formatEmptyHint"),vA=__name(e=>{e.forEach(e=>console.log(e))},"printLines");async function listAction(){try{const{global:e,project:t}=await listSkills(),n=e.length+t.length;0===n&&(vA(CA()),process.exit(0)),console.log(""),console.log(heading({text:"Skills",sub:pe.dim(`${n} installed`)})),t.length>0&&(console.log(""),console.log(EA("Project",t.length)),t.forEach(e=>{console.log(bA(e.name,e.description))})),e.length>0&&(console.log(""),console.log(EA("Global",e.length)),e.forEach(e=>{console.log(bA(e.name,e.description))})),console.log(""),process.exit(0)}catch(e){const t=e instanceof Error?e.message:"Unknown error";console.error(`${pe.red(Pe.cross)} Failed to list skills: ${t}`),process.exit(1)}}__name(listAction,"listAction");var kA=new _e("list").description("List all installed skills").action(listAction),TA=new _e("skills").description("Manage skills from GitHub repositories").addCommand(fA).addCommand(SA).addCommand(kA);handleUnhandledErrors(),setupTelemetry(),await preRun();var _A=createProgram();_A.action(interactiveModeAction),_A.addCommand(sP),_A.addCommand(iP),_A.addCommand(uA),_A.addCommand(ZP),_A.addCommand(oP),_A.addCommand(createTasteCommand()),_A.addCommand(createMcpCommand()),_A.addCommand(aP),_A.addCommand(Uo),_A.addCommand(hb),_A.addCommand(kb),_A.addCommand(TA),isExperimentalEnabled()&&_A.addCommand(createSandboxCommand()),setupCommanderHooks(_A),_A.parse();
293
+ `,TT=getMaxLineWidth(kT),_T=ET,xT=__name(e=>{const t=e??getTerminalWidth();return t>=bT?"full":t>=_T?"compact":"minimal"},"getHeaderLayout");tn(),kr();var PT=__name(({children:e})=>{const t=[];let n="",r=!0;const o=__name(()=>{0!==n.length&&(t.push({text:n,panel:r}),n="")},"flush");for(const t of e){const e="░"===t;0===n.length?r=e:e!==r&&(o(),r=e),n+=t}return o(),J.createElement(se,null,t.map((e,t)=>J.createElement(se,{key:t,color:e.panel?Er.BG:Er.TEXT},e.text)))},"CommandLogoBanner");tn(),kr();var AT=__name(({title:e,hashPrefix:t=!1,subPrefix:n=!1,suffix:r,padding:o=0,titleColor:s=Xn.GRAY,dividerChar:i="─",dividerColor:a=Xn.GRAY,boxProps:l})=>{const u=Math.max(0,(process.stdout.columns??80)-2*o),d=t?`# ${i}${i} `:n?`${i}${i} `:"",m=e?`${e} `:"",g=r?` ${r}`:"",h=d.length+m.length+g.length,f=i.repeat(Math.max(0,u-h));return J.createElement(oe,{paddingLeft:o,paddingRight:o,marginBottom:1,...l},(t||n)&&J.createElement(se,{color:a},d),e&&J.createElement(se,{color:s},m),J.createElement(se,{color:a},f),r&&J.createElement(se,{color:Xn.DIM},g))},"Divider");HS(),kr(),tn(),kr();var IT=[{type:"user",text:"I always prefer pnpm",duration:2e3},{type:"learned",text:"Learned: pnpm (95% preference)",details:".commandcode/taste/taste.md",duration:2e3},{type:"user",text:"I prefer commander over meow",duration:2e3},{type:"updated",text:"Updated: commander boosted (60% → 95%), meow adjusted (90% → 35%)",details:".commandcode/taste/cli/taste.md",duration:2e3},{type:"user",text:"I prefer TypeScript for Node CLIs",duration:2e3},{type:"learned",text:"Learned: TypeScript for CLIs (90% preference)",details:".commandcode/taste/cli/taste.md",duration:2e3}],NT=__name(({onComplete:e,onExit:t})=>{const[n,r]=Z(0),[o,s]=Z(!1),i=n>=IT.length;return te(()=>{if(n>=IT.length)return;if(o)return;const e=IT[n],t=setTimeout(()=>{r(e=>Math.min(e+1,IT.length))},e.duration);return()=>clearTimeout(t)},[n,o]),le((n,o)=>{""===n||o.ctrl&&"c"===n?t?t():e():o.escape?e():i?(o.return||" "===n)&&e():" "===n?s(e=>!e):o.return&&r(e=>Math.min(e+1,IT.length))}),J.createElement(oe,{flexDirection:"column"},J.createElement(oe,null,J.createElement(se,{bold:!0},"Meet Your Coding Taste")),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"Command Code learns your coding style as you work.")),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"Here's how your preferences evolve in real-time:")),J.createElement(oe,{flexDirection:"column",marginY:1},IT.slice(0,n).map((e,t)=>"user"===e.type?J.createElement(oe,{key:t},J.createElement(se,null,Pe.pointer," ",e.text)):J.createElement(oe,{key:t,flexDirection:"column",marginBottom:1,marginLeft:1},J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"⎿ "),J.createElement(se,{color:er.TEXT},e.text)),e.details&&J.createElement(oe,{marginLeft:3},J.createElement(se,{color:Xn.DIM},"Saved(",e.details,")"))))),i?J.createElement(oe,{flexDirection:"column",marginY:1},J.createElement(oe,null,J.createElement(se,{bold:!0,color:er.TEXT},"Demo Complete!")),J.createElement(oe,null,J.createElement(se,null,"Command Code will now use these preferences to generate")),J.createElement(oe,null,J.createElement(se,null,"better suggestions tailored to your coding style. The")),J.createElement(oe,null,J.createElement(se,null,"more you code, the smarter it gets.")),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press Enter to get started →"))):J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"[SPACE: pause] [ENTER: next] [ESC: skip]"+(o?" (paused)":""))))},"TasteDemoComponent"),RT=__name(({onClose:e,onExit:t})=>{const[n,r]=Z(Av.getEvents()),[o,s]=Z(0);le((n,r)=>{""===n||r.ctrl&&"c"===n?t():r.ctrl&&"t"===n&&e()},{isActive:!0}),te(()=>{const e=__name(()=>{r(Av.getEvents())},"handleNewEvent"),t=__name(()=>{r([])},"handleCleared");return Av.on("new-event",e),Av.on("cleared",t),()=>{Av.off("new-event",e),Av.off("cleared",t)}},[]),te(()=>{const e=__name(()=>{BS(),s(e=>e+1)},"handleResize");return process.stdout.on("resize",e),()=>{process.stdout.off("resize",e)}},[]);const i=__name(e=>["learned","refactored"].includes(e),"isLearningEvent"),a=__name(e=>{const t=e.match(/^(learned|upgraded|downgraded|refactored|moved):\s*(.*)$/i);if(t){const e=t[1].toLowerCase();let n=t[2];const r=n.match(/^(.+?)\.?\s+Confidence:\s*(\d+\.?\d*)$/);let o=n,s=null;if(r){o=r[1].trim();const e=(100*parseFloat(r[2])).toFixed(2);s=`confidence: ${parseFloat(e).toString()}%`}const i={learned:"Learned",upgraded:"Reinforced",downgraded:"Downgraded",refactored:"Refactored",moved:"Moved"}[e]||e.charAt(0).toUpperCase()+e.slice(1);return{type:e,label:i,content:o,confidence:s}}return{type:null,label:null,content:e,confidence:null}},"formatLearningMessage"),l=__name(e=>{const t=e.match(/^(.+?)\s*\((\d+)%\s*(?:→|->)\s*(\d+)%\)$/);if(!t)return null;const n=t[1].trim(),r=parseInt(t[2],10),o=parseInt(t[3],10);return{text:n,oldPercent:r,newPercent:o,diff:o-r}},"parsePercentageChange"),u=__name(e=>{if(!e)return null;const t=e.match(/moved to (.+)/);if(!t)return null;const n=t[1],r=n.split("/"),o=r[r.length-1];return{category:r.slice(0,-1).join("/"),oldPath:o,newPath:n,fullPath:`.commandcode/taste/${n}`}},"formatMovedDetails"),d=ne(()=>(process.stdout.rows??24)-1,[o]);return J.createElement(oe,{flexDirection:"column",width:"100%",height:d,justifyContent:"flex-start",alignItems:"flex-start",padding:0,margin:0},J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(PT,null,CT())),J.createElement(AT,{hashPrefix:!0,title:"Taste Feed",titleColor:"white",suffix:"ctrl+t to close"}),J.createElement(oe,{flexDirection:"column"},0===n.length?J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(oe,null,J.createElement(se,null,"Start using Command Code and it will begin recording your coding taste.")),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"Your preferences, patterns, and style will appear here in real-time."))),J.createElement(de,{count:2}),J.createElement(AT,{title:"DEMO",titleColor:"white",subPrefix:!0}),J.createElement(NT,{onComplete:()=>{e()},onExit:t})):J.createElement(oe,{flexDirection:"column"},n.map(e=>{if(i(e.type)){const{type:t,label:n,content:r,confidence:o}=a(e.message),s="moved"===t?u(e.details):null,i="upgraded"===t||"downgraded"===t?l(r):null;return J.createElement(oe,{key:e.id,marginBottom:1},J.createElement(oe,{flexDirection:"column"},J.createElement(oe,null,J.createElement(oe,{flexShrink:0},J.createElement(se,{backgroundColor:er.BADGE_BG,color:er.BADGE_FG,bold:!0},`${Yv}${n}${Yv}`)),s?J.createElement(se,{color:Xn.DIM}," ","(",s.fullPath,")"):e.details?J.createElement(se,{color:Xn.DIM}," ","(",e.details,")"):null),J.createElement(oe,{marginLeft:1},J.createElement(se,{color:Xn.DIM},"⎿"," "),s?J.createElement(J.Fragment,null,J.createElement(se,null," ",s.category," ","package ("),J.createElement(se,{color:Xn.DIM},s.oldPath),J.createElement(se,null," ",Pe.arrowRight," ",s.newPath),J.createElement(se,null,")")):i?J.createElement(J.Fragment,null,J.createElement(se,null," ",i.text," ","("),J.createElement(se,{color:Xn.DIM},"confidence:"," "),J.createElement(se,{color:Xn.DIM},i.oldPercent,"%"),J.createElement(se,null," ",Pe.arrowRight," "),J.createElement(se,{color:i.diff>0?Xn.GREEN:Xn.RED},i.newPercent,"%"),J.createElement(se,null,")")):J.createElement(J.Fragment,null,J.createElement(se,null," ",r),o&&J.createElement(se,{color:Xn.DIM}," ","(",o,")")))))}return J.createElement(oe,{key:e.id,marginBottom:1},J.createElement(se,{color:Xn.DIM},Pe.pointerSmall," ",e.message))}))))},"LearningFeedFull");function LearningView({setShowLearningFeed:e,setStaticKey:t,onExit:n}){return J.createElement(RT,{onClose:()=>{BS(),e(!1),t(e=>e+1)},onExit:n})}__name(LearningView,"LearningView"),tn(),kr(),tn(),kr(),HS(),Fr();var MT=__name(({onClose:e,onSettingsChange:t,staticKey:n})=>{const[r,o]=Z(!1),[s,i]=Z(!0);te(()=>{__name(async()=>{try{const e=await isTasteLearningEnabled();o(e)}catch(e){}finally{i(!1)}},"loadSettings")()},[]),le((t,n)=>{if(!n.return&&" "!==t)return n.escape?(BS(),void e()):void 0;a()});const a=__name(async()=>{const e=!r;o(e);try{await setTasteLearning({tasteLearning:e}),t?.()}catch(t){o(!e)}},"toggleTasteLearning");return s?J.createElement(oe,{key:n,borderStyle:"single",borderColor:Xn.BLUE,padding:1,flexDirection:"column"},J.createElement(se,{color:Xn.BLUE,bold:!0},"Taste Settings"),J.createElement(se,{color:Xn.DIM},"Loading configuration...")):J.createElement(oe,{key:n,borderStyle:"single",borderColor:Xn.GRAY,padding:1,flexDirection:"column"},J.createElement(se,{bold:!0},"Taste Learning"),J.createElement(se,{color:Xn.DIM},"Configure taste learning preferences for this project"),J.createElement(oe,{marginTop:1}),J.createElement(oe,{justifyContent:"space-between"},J.createElement(se,null,"Taste learning",J.createElement(se,{color:Xn.DIM}," - Learn from your interactions")),J.createElement(se,{color:r?Xn.GREEN:Xn.GRAY},r?"enabled":"disabled")),J.createElement(oe,{marginTop:1}),J.createElement(se,{color:Xn.DIM},"Taste data stored in .commandcode/taste/taste.md"),J.createElement(se,{color:Xn.DIM},"Enter/Space to toggle • Esc to close"))},"TasteConfig");function TasteConfigView({staticKey:e,setShowTasteConfig:t,loadTasteStatus:n}){return J.createElement(J.Fragment,null,J.createElement(eT,{staticKey:e}),J.createElement(oe,{flexDirection:"column",width:"100%"},J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"Press Esc to return to conversation")),J.createElement(MT,{onClose:()=>t(!1),onSettingsChange:n,staticKey:e})))}__name(TasteConfigView,"TasteConfigView"),tn(),tn(),sn(),HS(),kr();var LT=__name(e=>Math.ceil(e.length/4),"estimateTokens"),$T=__name(e=>e.includes("/.agents/skills/")||e.includes("\\.agents\\skills\\"),"isAgentsSkill"),DT=__name(({onClose:e})=>{const[t,n]=Z([]),[r,o]=Z(!0),[s,i]=Z(null),[a,l]=Z(0);te(()=>{__name(async()=>{try{const{global:e,project:t}=await loadAllSkillSummaries(),r=[...e.map(e=>({label:e.name,value:e.filePath,location:"user",description:e.description,filePath:e.filePath})),...t.map(e=>({label:e.name,value:e.filePath,location:"project",description:e.description,filePath:e.filePath}))];n(r)}catch(e){i(e instanceof Error?e.message:"Failed to load skills")}finally{o(!1)}},"loadSkills")()},[]);const u=t.filter(e=>"project"===e.location),d=t.filter(e=>"user"===e.location),m=[...u,...d],g=__name(async t=>{try{await dt([{file:t.filePath,line:1}]),BS(),e()}catch(e){e instanceof Error&&e.message.includes("$EDITOR environment variable")?i(h()):i(e instanceof Error?e.message:"Failed to open skill in editor")}},"handleSelectSkill");le((t,n)=>{if(n.escape)return BS(),void e();if(n.upArrow)l(e=>Math.max(0,e-1));else if(n.downArrow)l(e=>Math.min(m.length-1,e+1));else if(n.return){const e=m[a];e&&g(e)}});const h=__name(()=>{const e=process.platform;return"win32"===e?'No editor found. Set $EDITOR: setx EDITOR "code"':"No editor found. Set $EDITOR: echo 'export EDITOR=\"code\"' >> "+("darwin"===e?"~/.zshrc":"~/.bashrc")},"getEditorSetupMessage");return r?J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(se,{color:Zn,bold:!0},"Agent Skills"),J.createElement(se,{color:Xn.DIM},"Loading skills...")):s?J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(se,{color:Xn.RED,bold:!0},"Agent Skills"),J.createElement(se,{color:Xn.DIM},s),J.createElement(oe,{marginTop:1}),J.createElement(se,{color:Xn.DIM},"Press ",J.createElement(se,{bold:!0},"Esc")," to close")):0===t.length?J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(se,{color:Zn,bold:!0},"Agent Skills"),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"No skills found")),J.createElement(se,{color:Xn.DIM},"Create skills in:"),J.createElement(se,{color:Xn.DIM}," ","~/",".commandcode","/","skills","/ (user)"),J.createElement(se,{color:Xn.DIM}," ","~/.agents/","skills","/ (user, .agents)"),J.createElement(se,{color:Xn.DIM}," ",".commandcode","/","skills","/ (project)"),J.createElement(se,{color:Xn.DIM}," ",".agents/","skills","/ (project, .agents)"),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press ",J.createElement(se,{bold:!0},"Esc")," to close"))):J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(oe,null,J.createElement(se,{color:Zn,bold:!0},"Skills"," "),J.createElement(se,{color:Xn.DIM},m.length," skills")),u.length>0&&J.createElement(oe,{flexDirection:"column",marginTop:1},J.createElement(oe,null,J.createElement(se,{color:ur,bold:!0},"Project skills"," "),J.createElement(se,{color:ur},"(",".commandcode","/","skills"," or .agents/","skills",")")),u.map((e,t)=>{const n=a===t,r=$T(e.filePath);return J.createElement(oe,{key:e.value},J.createElement(se,{color:n?Xn.GREEN:Xn.WHITE},e.label),r&&J.createElement(se,{color:Xn.DIM}," [.agents]"),J.createElement(se,{color:Xn.DIM}," · ~",LT(e.description)," description tokens"))})),d.length>0&&J.createElement(oe,{flexDirection:"column",marginTop:1},J.createElement(oe,null,J.createElement(se,{color:ur,bold:!0},"User skills"," "),J.createElement(se,{color:ur},"(~/",".commandcode","/","skills"," or ~/.agents/","skills",")")),d.map((e,t)=>{const n=a===u.length+t,r=$T(e.filePath);return J.createElement(oe,{key:e.value},J.createElement(se,{color:n?Xn.GREEN:Xn.WHITE},e.label),r&&J.createElement(se,{color:Xn.DIM}," [.agents]"),J.createElement(se,{color:Xn.DIM}," · ~",LT(e.description)," description tokens"))})),J.createElement(oe,{marginTop:1,flexDirection:"column"},J.createElement(se,{dimColor:!0},"Add skills: ",J.createElement(se,{color:Xn.CYAN},"cmd skills add ","<owner/repo>")),J.createElement(se,{color:Xn.DIM},"Press ",J.createElement(se,{bold:!0},"Esc")," to close")))},"SkillsConfig");function SkillsConfigView({staticKey:e,setShowSkillsConfig:t}){return J.createElement(J.Fragment,null,J.createElement(eT,{staticKey:e}),J.createElement(oe,{flexDirection:"column",width:"100%"},J.createElement(DT,{onClose:()=>t(!1),staticKey:e})))}function useTerminalWidth(){const{stdout:e}=ae(),[t,n]=Z(()=>e.columns??80);return te(()=>{const t=__name(()=>n(e.columns??80),"onResize");return e.on("resize",t),()=>{e.off("resize",t)}},[e]),t}function getUsageColor(e){return e>=80?Xn.RED:e>=50?Xn.YELLOW:Xn.GREEN}function buildBlockBar({percentage:e,width:t}){const n=Math.max(0,Math.min(100,e));let r=Math.round(n/100*t);n>.5&&0===r&&(r=1),n<99.5&&r===t&&(r=t-1);const o=t-r;return{filled:"█".repeat(r),empty:"░".repeat(o)}}function getStudioUsageUrl(e){const t=e?.org?.login??e?.user?.userName;return t?`https://commandcode.ai/${t}/settings/usage`:null}__name(SkillsConfigView,"SkillsConfigView"),tn(),tn(),Hh(),HS(),kr(),tn(),__name(useTerminalWidth,"useTerminalWidth"),tn(),kr(),__name(getUsageColor,"getUsageColor"),__name(buildBlockBar,"buildBlockBar"),qr(),__name(getStudioUsageUrl,"getStudioUsageUrl");var OT=__name(e=>e.replace(/^https?:\/\//,""),"stripScheme");function getProgressBarWidth({terminalWidth:e}){return e<50?Math.max(10,e-10):e<70?Math.max(15,e-15):Math.min(30,e-15)}function getDaysColor(e){if(null!==e)return e<3?Xn.RED:e<7?Xn.YELLOW:void 0}__name(getProgressBarWidth,"getProgressBarWidth"),__name(getDaysColor,"getDaysColor");var FT=__name(({plan:e,status:t})=>J.createElement(oe,{marginBottom:0},J.createElement(oe,{flexShrink:0},J.createElement(se,{backgroundColor:Xn.BLUE,color:"#f4f4f4",bold:!0},`${Yv}USAGE${Yv}`)),e&&J.createElement(J.Fragment,null,J.createElement(se,null," "),J.createElement(se,{color:Xn.GRAY},`${e.name} Plan`)),t&&J.createElement(J.Fragment,null,J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,{color:"active"===t?Xn.GREEN:Xn.YELLOW},t))),"UsageBadge"),qT=__name(({showRetry:e})=>J.createElement(oe,{marginTop:1},e&&J.createElement(se,{color:Xn.DIM},J.createElement(se,{bold:!0},"r")," to retry · "),J.createElement(se,{color:Xn.DIM},"Press ",J.createElement(se,{bold:!0},"Esc")," to close")),"UsageFooter"),jT=__name(({models:e,grandTotal:t})=>{if(0===e.length)return null;const n=e.map(e=>({...e,displayName:getModelDisplayName(e.model),costLabel:formatCredits(e.totalCost)})),r=Math.max(...n.map(e=>e.displayName.length)),o=Math.min(24,Math.max(10,r)),s=Math.max(...n.map(e=>e.costLabel.length)),i=Math.max(8,s+2);return J.createElement(oe,{flexDirection:"column",marginTop:1},n.map(({model:e,displayName:n,costLabel:r,totalCost:s})=>{const a=t>0?Math.round(s/t*100):0,l=n.length>o?n.slice(0,o-1)+"…":n;return J.createElement(oe,{key:e},J.createElement(se,null,l.padEnd(o+2)),J.createElement(se,null,r.padEnd(i)),J.createElement(se,{color:Xn.DIM},`${a}%`))}))},"ModelBreakdownRows"),BT=__name(({onClose:e})=>{const[t,n]=Z("loading"),[r,o]=Z(null),[s,i]=Z(!1),a=getProgressBarWidth({terminalWidth:useTerminalWidth()}),l=re(async e=>{try{i(!1);const t=await fetchUsageData();if(e.aborted)return;if(!t.whoami){const e=t.errors.some(isAuthErrorMessage);return i(e),void n("error")}o(t),n("loaded")}catch{if(e.aborted)return;n("error")}},[]),u=J.useRef(null);le((r,o)=>{if(o.escape&&(BS(),e()),"r"===r&&"error"===t){n("loading"),u.current?.abort();const e=new AbortController;u.current=e,l(e.signal)}}),te(()=>{const e=new AbortController;return u.current=e,l(e.signal),()=>e.abort()},[l]);const d=r?.subscription?.data??null,m=d?getPlanInfo({planId:d.planId??""}):null;if("loading"===t)return J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(FT,{plan:m,status:d?.status??null}),J.createElement(se,{color:Xn.DIM},"Loading…"),J.createElement(qT,null));if("error"===t)return J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(FT,{plan:m,status:d?.status??null}),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},s?"Not authenticated. Run /login to connect your account.":"Something went wrong.")),J.createElement(qT,{showRetry:!s}));if(!r)return null;const g=r.credits||r.subscription,h=getStudioUsageUrl(r.whoami);if(!g)return J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(FT,{plan:m,status:d?.status??null}),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"No billing data found."),h&&J.createElement(J.Fragment,null,J.createElement(se,{color:Xn.DIM}," Visit "),J.createElement(Dr,{url:h,text:"Studio",color:Xn.CYAN}),J.createElement(se,{color:Xn.DIM}," ","for usage details."))),J.createElement(qT,null));const f=r.credits?.credits,y=r.summary,w=r.modelBreakdown,S=null!=w&&w.length>0,E=Math.max(0,f?.monthlyCredits??0)+Math.max(0,f?.purchasedCredits??0)+Math.max(0,f?.freeCredits??0),C=Math.max(0,y?.totalCost??0),v=getUsagePercent({used:C,total:C+E}),k=E>0||C>0,T=d?.currentPeriodEnd?getDaysRemaining(d.currentPeriodEnd):null,_=getDaysColor(T),x=getUsageColor(v),P=buildBlockBar({percentage:v,width:a}),A=S?w.reduce((e,t)=>e+t.totalCost,0):0;return J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(oe,{marginBottom:1},J.createElement(FT,{plan:m,status:d?.status??null})),k?J.createElement(oe,null,J.createElement(se,{color:x},P.filled),J.createElement(se,{color:ur},P.empty),J.createElement(se,{bold:!0,color:x},` ${Math.round(v)}% used`)):J.createElement(se,{color:Xn.DIM},"Plan details unavailable"),k&&J.createElement(oe,null,d?.currentPeriodEnd&&J.createElement(se,{color:Xn.DIM},"Cycle: "),J.createElement(se,null,formatCredits(E)),J.createElement(se,{color:Xn.DIM}," left"),y&&J.createElement(J.Fragment,null,J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,null,y.totalCount.toLocaleString()),J.createElement(se,{color:Xn.DIM}," requests")),null!==T&&J.createElement(J.Fragment,null,J.createElement(se,{color:Xn.DIM}," · "),0===T?J.createElement(se,{color:_},"renewal today"):J.createElement(J.Fragment,null,J.createElement(se,{color:_},`${T} day${1===T?"":"s"}`),J.createElement(se,{color:Xn.DIM}," to renewal")))),S&&J.createElement(jT,{models:w,grandTotal:A}),h&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Full breakdown at "),J.createElement(Dr,{url:h,text:OT(h),color:Xn.CYAN})),J.createElement(qT,null))},"UsageOverlay");function UsageView({staticKey:e,setShowUsageOverlay:t}){return J.createElement(J.Fragment,null,J.createElement(eT,{staticKey:e}),J.createElement(oe,{flexDirection:"column",width:"100%"},J.createElement(BT,{onClose:()=>t(!1)})))}__name(UsageView,"UsageView"),tn(),tn(),sn(),Kw(),Fr();var UT="System prompt";function countMessagesByRole({messages:e}){let t=0,n=0;for(const r of e)"user"===r.message.role&&!isHiddenTranscriptMessage({message:r})&&t++,"assistant"===r.message.role&&n++;return{user:t,assistant:n}}function countToolCalls({messages:e}){let t=0,n=0;for(const r of e){if(isHiddenTranscriptMessage({message:r}))continue;const e=r.message.content;if(Array.isArray(e))for(const r of e)"tool-call"===r.type&&t++,"tool-result"===r.type&&n++}return{calls:t,results:n}}function countImages({messages:e}){let t=0;for(const n of e){if(isHiddenTranscriptMessage({message:n}))continue;const e=n.message.content;if(Array.isArray(e))for(const n of e)"image"===n.type&&t++}return t}function estimateConversationTokens({messages:e}){let t=0;for(const n of e)isHiddenTranscriptMessage({message:n})||(t+=estimateTokens(n.message));return t}function buildAutoCompactStatus({tokensUsed:e,tokenLimit:t}){const n=e/t,r=[{tier:1,threshold:Xt.TIER_1_THRESHOLD,description:`Prune to last ${Xt.TIER_1_KEEP_COUNT} tool calls`},{tier:2,threshold:Xt.TIER_2_THRESHOLD,description:`Prune to last ${Xt.TIER_2_KEEP_COUNT} tool calls`},{tier:3,threshold:Xt.TIER_3_THRESHOLD,description:"Full summarization"}];let o=0;const s=r.map(r=>{const s=Math.round(r.threshold*t),i=Math.max(0,s-e);let a="upcoming";return n>=r.threshold&&(a="passed",o=r.tier),{tier:r.tier,threshold:r.threshold,tokensAt:s,description:r.description,status:a,tokensAway:i}}),i=s.findIndex(e=>"upcoming"===e.status);return{tiers:-1!==i?s.map((e,t)=>t===i?{...e,status:"current"}:e):s,currentTier:o,keepRecentTokens:Xt.KEEP_RECENT_TOKENS}}function getPrimaryTip({percentage:e,conversationPct:t}){return e>=90?"Tier 3 auto-compact imminent — /compact now to control what gets summarized":e>=80?"Auto-compact Tier 3 triggers at 90% — /compact to free space before it kicks in":t>60&&e>40?`${t}% is conversation — /compact to reclaim tokens`:e>=50?"/compact to free space · /model to switch models":null}function getSecondaryTip({mcpToolCount:e,imageCount:t,messageCount:n,percentage:r}){return e>0&&r>30?`${e} MCP tools loaded — disconnect unused servers to save tokens`:t>0&&r>30?`${t} image${t>1?"s":""} in context — images use ~1.5k tokens each`:n>50&&r>40?`${n} messages — consider starting a new session for a fresh context`:null}function generateTips({percentage:e,conversationTokens:t,totalTokens:n,mcpToolCount:r,messageCount:o,imageCount:s}){if(0===n)return[];const i=getPrimaryTip({percentage:e,conversationPct:Math.min(100,Math.round(t/n*100))}),a=getSecondaryTip({mcpToolCount:r,imageCount:s,messageCount:o,percentage:e}),l=[];return i&&l.push(i),a&&l.push(a),0===l.length&&l.push("/compact to summarize and free context · /model to switch models"),l}async function collectMemoryItems(){const e=(await discoverMemoryFiles(process.cwd())).filter(e=>e.exists),t=[];for(const n of e){const e=await loadMemoryFile(n.path),r=e?estimateTokens(e):0,o=process.env.HOME??"",s=o&&n.path.startsWith(o)?`~${n.path.slice(o.length)}`:n.path;t.push({name:n.description,tokens:r,source:s})}return t}function collectBuiltInTools(){const e=[];for(const t of FC){const n=JSON.stringify(t.input_schema??{}),r=estimateTokens(`${t.name} ${t.description??""} ${n}`);e.push({name:t.name,tokens:r})}for(const t of qC){const n=estimateTokens(`${t.name} ${t.type}`);e.push({name:t.name,tokens:n})}return e}function collectMcpTools(){const e=getMcpConnectionManager().getConnectedServers(),t=[];for(const n of e)if("connected"===n.status)for(const e of n.tools){const r=JSON.stringify(e.inputSchema??{}),o=estimateTokens(`${e.name} ${e.description??""} ${r}`);t.push({name:e.name,tokens:o,source:n.name})}return t}async function collectSkillItems(){const e=await loadAllSkillSummaries(),t=[];for(const n of e.project){const e=estimateTokens(`${n.name} ${n.description}`);t.push({name:n.name,tokens:e,source:"project"})}for(const n of e.global){const e=estimateTokens(`${n.name} ${n.description}`);t.push({name:n.name,tokens:e,source:"user"})}return t}async function collectAgentItems(){const e=await loadAllAgents(),t=[];for(const n of e.project){const e=estimateTokens(`${n.name} ${n.description} ${n.systemPrompt}`);t.push({name:n.name,tokens:e,source:"project"})}for(const n of e.personal){const e=estimateTokens(`${n.name} ${n.description} ${n.systemPrompt}`);t.push({name:n.name,tokens:e,source:"user"})}return t}function sumTokens(e){let t=0;for(const n of e)t+=n.tokens;return t}async function analyzeContext({contextEngine:e}){const t=e.getContextTokensUsed(),n=CE,r=getConfiguredModel(),o=e.getHistory(),s=countMessagesByRole({messages:o}),i=countToolCalls({messages:o}),a=countImages({messages:o}),l=estimateConversationTokens({messages:o}),u=collectBuiltInTools(),d=collectMcpTools(),[m,g,h]=await Promise.all([collectSkillItems(),collectAgentItems(),collectMemoryItems()]),f=sumTokens(u),y=sumTokens(d),w=sumTokens(m),S=sumTokens(g),E=sumTokens(h),C=f+y+w+S+E,v=t>0,k=v?t:l+C,T=!v&&o.length>0,_=Math.min(k/n*100,100),x=Math.max(0,n-k),P=Math.max(0,k-l-C),A=[];if(k>0){if(P>0&&A.push({name:UT,tokens:P,detail:"identity + taste"}),f>0&&A.push({name:"System tools",tokens:f,detail:`${u.length} built-in`}),y>0){const e=Array.from(new Set(d.map(e=>e.source).filter(e=>"string"==typeof e)));let t=`${d.length} tools`;e.length>3&&(t=`${e.length} servers`),e.length>=1&&e.length<=3&&(t=e.join(", ")),A.push({name:"MCP",tokens:y,detail:t})}w>0&&A.push({name:"Skills",tokens:w,detail:`${m.length} loaded`}),S>0&&A.push({name:"Subagents",tokens:S,detail:`${g.length} loaded`}),E>0&&A.push({name:"Memory",tokens:E,detail:"AGENTS.md"}),l>0&&A.push({name:"Messages",tokens:l,detail:`${s.user} user · ${s.assistant} assistant`})}A.sort((e,t)=>e.name===UT?-1:t.name===UT?1:t.tokens-e.tokens);const I=o.length>0?o[0]?.meta.timestamp??null:null;return{tokensUsed:k,tokenLimit:n,percentage:_,tokensRemaining:x,isEstimated:T,model:r,breakdown:A,autoCompact:buildAutoCompactStatus({tokensUsed:k,tokenLimit:n}),stats:{messageCount:o.length,userMessages:s.user,assistantMessages:s.assistant,toolCalls:i.calls,toolResults:i.results,imageCount:a,sessionStartTime:I},tips:generateTips({percentage:_,conversationTokens:l,totalTokens:k,mcpToolCount:d.length,messageCount:o.length,imageCount:a})}}function formatK(e){if(e<1e3)return String(e);const t=e/1e3;return Number.isInteger(t)?`${t}k`:`${t.toFixed(1)}k`}function formatBreakdownValue(e){return e<1e3?String(e):`${(e/1e3).toFixed(1)}k`}function getLayoutSizes({terminalWidth:e}){const t=Math.max(20,e),n=Math.min(50,Math.max(30,Math.floor(.5*t)));return{labelWidth:16,progressBarWidth:Math.max(10,Math.min(n,t-10)),showBreakdownDetail:t>=70}}function ContextProgress({analysis:e,progressBarWidth:t}){const n=getUsageColor(e.percentage),r=buildBlockBar({percentage:e.percentage,width:t});return J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(oe,{flexShrink:0},J.createElement(se,{backgroundColor:Xn.BLUE,color:"#f4f4f4",bold:!0},`${Yv}CONTEXT${Yv}`)),J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,{color:Xn.GRAY},getModelDisplayName(e.model))),J.createElement(oe,null,J.createElement(se,{color:n},r.filled),J.createElement(se,{color:ur},r.empty),J.createElement(se,{bold:!0,color:n},` ${e.percentage.toFixed(1)}%`)),J.createElement(oe,null,J.createElement(se,null,formatK(e.tokensUsed)),J.createElement(se,{color:Xn.GRAY},` / ${formatK(e.tokenLimit)}`),J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,{color:n},formatK(e.tokensRemaining)),J.createElement(se,{color:Xn.GRAY}," remaining"),e.isEstimated&&J.createElement(se,{color:Xn.DIM}," (estimated)")))}function CompactionDistance({analysis:e}){if(e.percentage<40)return null;const t=e.autoCompact.tiers.find(e=>3===e.tier);if(!t||"passed"===t.status)return null;const{tokensAway:n}=t;let r=Xn.GRAY;return n<=5e4&&(r=Xn.YELLOW),n<=2e4&&(r=Xn.RED),J.createElement(oe,{marginTop:1},J.createElement(se,{color:r},`~${formatK(n)}`),J.createElement(se,{color:Xn.DIM}," until auto-compact"))}function BreakdownRow({item:e,labelWidth:t,numWidth:n,showDetail:r}){return J.createElement(oe,null,J.createElement(se,null,e.name.padEnd(t)),J.createElement(se,{bold:!0},formatBreakdownValue(e.tokens).padStart(n)),J.createElement(se,{color:Xn.GRAY}," tokens"),r&&e.detail&&J.createElement(se,{color:Xn.DIM},` · ${e.detail}`))}function ContextBreakdown({analysis:e,labelWidth:t,showBreakdownDetail:n}){const r=e.breakdown.filter(e=>e.tokens>0);if(0===r.length)return null;const o=Math.max(4,...r.map(e=>formatBreakdownValue(e.tokens).length));return J.createElement(oe,{flexDirection:"column",marginTop:1},r.map(e=>J.createElement(BreakdownRow,{key:e.name,item:e,labelWidth:t,numWidth:o,showDetail:n})))}function ContextTips({tips:e}){return 0===e.length?null:J.createElement(oe,{flexDirection:"column",marginTop:1},e.map(e=>J.createElement(oe,{key:e},J.createElement(se,{color:Xn.CYAN},Pe.pointer),J.createElement(se,{color:Xn.GRAY}," ",e))))}function ContextMessage({analysis:e}){const t=getLayoutSizes({terminalWidth:useTerminalWidth()});return J.createElement(oe,{flexDirection:"column",paddingTop:1},J.createElement(ContextProgress,{analysis:e,progressBarWidth:t.progressBarWidth}),J.createElement(CompactionDistance,{analysis:e}),J.createElement(ContextBreakdown,{analysis:e,labelWidth:t.labelWidth,showBreakdownDetail:t.showBreakdownDetail}),J.createElement(ContextTips,{tips:e.tips}))}function ContextConfigView({staticKey:e,contextEngineRef:t,setShowContextView:n,setInput:r}){const[o,s]=Z(null),[i,a]=Z(null);return te(()=>{let e=!0;return __name(async()=>{if(t.current)try{const n=await analyzeContext({contextEngine:t.current});e&&s(n)}catch{e&&a("Failed to analyze context.")}else e&&a("No active conversation. Start chatting first.")},"load")(),()=>{e=!1}},[t]),le((e,t)=>{t.escape&&(BS(),r(""),n(!1))}),J.createElement(J.Fragment,null,J.createElement(eT,{staticKey:e}),J.createElement(oe,{flexDirection:"column",width:"100%"},i?J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Zn,bold:!0},"Context"),J.createElement(se,{color:Xn.DIM},i)):o?J.createElement(ContextMessage,{analysis:o}):J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Zn,bold:!0},"Context"),J.createElement(se,{color:Xn.DIM},"Loading context analysis...")),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press Esc to return to conversation"))))}__name(countMessagesByRole,"countMessagesByRole"),__name(countToolCalls,"countToolCalls"),__name(countImages,"countImages"),__name(estimateConversationTokens,"estimateConversationTokens"),__name(buildAutoCompactStatus,"buildAutoCompactStatus"),__name(getPrimaryTip,"getPrimaryTip"),__name(getSecondaryTip,"getSecondaryTip"),__name(generateTips,"generateTips"),__name(collectMemoryItems,"collectMemoryItems"),__name(collectBuiltInTools,"collectBuiltInTools"),__name(collectMcpTools,"collectMcpTools"),__name(collectSkillItems,"collectSkillItems"),__name(collectAgentItems,"collectAgentItems"),__name(sumTokens,"sumTokens"),__name(analyzeContext,"analyzeContext"),HS(),tn(),Hh(),kr(),__name(formatK,"formatK"),__name(formatBreakdownValue,"formatBreakdownValue"),__name(getLayoutSizes,"getLayoutSizes"),__name(ContextProgress,"ContextProgress"),__name(CompactionDistance,"CompactionDistance"),__name(BreakdownRow,"BreakdownRow"),__name(ContextBreakdown,"ContextBreakdown"),__name(ContextTips,"ContextTips"),__name(ContextMessage,"ContextMessage"),kr(),__name(ContextConfigView,"ContextConfigView"),tn(),tn(),sn(),ts(),oo(),Vr(),Fr();var zT="https://commandcode.ai/studio";function getVersionStatus(){try{return{current:getPackageJson().version,updateAvailable:null}}catch{return{current:"Unknown",updateAvailable:null}}}async function getAuthStatus(){try{const e=await checkAuthStatus(),t=e.userName||null;return{authenticated:e.authenticated,username:t}}catch{return{authenticated:!1,username:null}}}async function getModelStatus(){try{const e=await getSelectedModel(),t=getProviderDisplayName((await loadUserConfig()).provider||null);return{id:e,displayName:getModelDisplayName(e),provider:t}}catch{return{id:"Unknown",displayName:"Unknown",provider:"Unknown"}}}async function getSkillsAgentsStatus(){let e=0,t=0,n=0,r=0;try{const n=await loadAllSkillSummaries();e=n.global.length,t=n.project.length}catch{}try{const e=await loadAllAgents();n=e.personal.length,r=e.project.length}catch{}return{personalSkills:e,projectSkills:t,personalAgents:n,projectAgents:r}}function execGitAsync(e){return new Promise(t=>{O("git",e,{encoding:"utf8",cwd:process.cwd(),timeout:3e3},(e,n)=>{t(e?null:n.trim()||null)})})}async function getGitStatus2(){const e=await execGitAsync(["rev-parse","--abbrev-ref","HEAD"]);if(!e)return{branch:null,worktreePath:null,remoteUrl:null,remoteHttpUrl:null};const[t,n]=await Promise.all([execGitAsync(["rev-parse","--show-toplevel"]),execGitAsync(["remote","get-url","origin"])]);return{branch:e,worktreePath:t,remoteUrl:n?formatRemoteUrl(n):null,remoteHttpUrl:n?buildHttpUrl(n):null}}function parseSSHUrl(e){const t=e.match(/@([^:]+):(.+?)(?:\.git)?$/);return t?.[1]&&t[2]?{host:t[1],path:t[2]}:null}function formatRemoteUrl(e){const t=parseSSHUrl(e);if(t)return t.path;const n=e.match(/\/\/[^/]+\/(.+?)(?:\.git)?$/);return n?.[1]?n[1]:e}function buildHttpUrl(e){const t=parseSSHUrl(e);if(t)return`https://${t.host}/${t.path}`;const n=e.match(/^ssh:\/\/[^@]+@([^/]+)\/(.+?)(?:\.git)?$/);return n?.[1]&&n[2]?`https://${n[1]}/${n[2]}`:/^https?:\/\//.test(e)?e.replace(/\.git$/,""):e}function getPrStatus(e){try{const t=getCachedPR(e);return t?{number:t.number,url:t.url,state:t.state}:null}catch{return null}}async function hasTasteMdFiles(e){if(!k(e))return!1;try{return(await W(e,{recursive:!0,encoding:"utf-8"})).some(e=>e.endsWith(".md"))}catch{return!1}}async function getTasteStatus(){const e=t.join(process.cwd(),".commandcode","taste"),n=t.join(e,"taste.md"),r=k(n),o=r||await hasTasteMdFiles(e);let s=!0;try{s=await isTasteLearningEnabled()}catch{}return{fileExists:o,filePath:r?n:e,learningEnabled:s}}function detectProxy(){const e=process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy;return e?sanitizeProxyUrl(e):null}function sanitizeProxyUrl(e){try{const t=new URL(e);return t.username="",t.password="",t.toString().replace(/\/$/,"")}catch{return"[malformed proxy URL]"}}function getSystemStatus(){let e,t,n,r;try{e=Ak(w.platform()),t=zk(),n=Hk(),r=Wk()}catch{e="Unknown",t="Unknown",n="Unknown",r="N/A"}return{cwd:process.cwd(),os:e,arch:w.arch(),shell:n,terminal:t,nodeVersion:process.version,ide:"N/A"!==r?r:null,proxy:detectProxy()}}async function gatherStatusData(){const e=safeSync(getVersionStatus,{current:"Unknown",updateAvailable:null}),t=safeSync(getSystemStatus,{cwd:process.cwd(),os:"Unknown",arch:w.arch(),shell:"Unknown",terminal:"Unknown",nodeVersion:process.version,ide:null,proxy:null}),[n,r,o,s,i]=await Promise.all([safeAsync(getAuthStatus,{authenticated:!1,username:null}),safeAsync(getModelStatus,{id:"Unknown",displayName:"Unknown",provider:"Unknown"}),safeAsync(getTasteStatus,{fileExists:!1,filePath:"",learningEnabled:!1}),safeAsync(getSkillsAgentsStatus,{personalSkills:0,projectSkills:0,personalAgents:0,projectAgents:0}),safeAsync(getGitStatus2,{branch:null,worktreePath:null,remoteUrl:null,remoteHttpUrl:null})]),a=safeSync(()=>getPrStatus(i.branch),null);return{version:e,auth:n,model:r,git:i,pr:a,taste:o,skillsAgents:s,system:t}}function safeSync(e,t){try{return e()}catch{return t}}async function safeAsync(e,t){try{return await e()}catch{return t}}function formatCountValue(e,t){const n=e+t;return 0===n?"None":`${n} (${e} user, ${t} project)`}function formatSystemValue({system:e}){const t=[`${e.os} ${e.arch}`];return e.ide&&t.push(e.ide),!e.terminal||e.ide&&e.ide.toLowerCase().startsWith(e.terminal.toLowerCase())||t.push(e.terminal),t.push(e.shell),t.push(`Node ${e.nodeVersion}`),t.join(" · ")}__name(getVersionStatus,"getVersionStatus"),__name(getAuthStatus,"getAuthStatus"),__name(getModelStatus,"getModelStatus"),__name(getSkillsAgentsStatus,"getSkillsAgentsStatus"),__name(execGitAsync,"execGitAsync"),__name(getGitStatus2,"getGitStatus"),__name(parseSSHUrl,"parseSSHUrl"),__name(formatRemoteUrl,"formatRemoteUrl"),__name(buildHttpUrl,"buildHttpUrl"),__name(getPrStatus,"getPrStatus"),__name(hasTasteMdFiles,"hasTasteMdFiles"),__name(getTasteStatus,"getTasteStatus"),__name(detectProxy,"detectProxy"),__name(sanitizeProxyUrl,"sanitizeProxyUrl"),__name(getSystemStatus,"getSystemStatus"),__name(gatherStatusData,"gatherStatusData"),__name(safeSync,"safeSync"),__name(safeAsync,"safeAsync"),tn(),sn(),NS(),kr(),qr(),__name(formatCountValue,"formatCountValue"),__name(formatSystemValue,"formatSystemValue");var HT=__name(({label:e,value:t,valueColor:n,dimValue:r})=>J.createElement(oe,null,J.createElement(se,{dimColor:!0},`${e}:`.padEnd(14)),r?J.createElement(se,{dimColor:!0},t):J.createElement(se,{color:n},t)),"Row");function StatusMessage({statusData:e}){const t=e,n=t.version.updateAvailable?`v${t.version.current} → v${t.version.updateAvailable} available`:`v${t.version.current}`,r=`${t.model.provider} · ${t.model.displayName}`,o=t.git.branch||"N/A",s=t.git.worktreePath?toRelativePath(t.git.worktreePath):null,i=t.auth.authenticated?Pe.tick:Pe.cross,a=t.auth.authenticated?Xn.WHITE:lr.ERROR,l=t.skillsAgents.personalSkills+t.skillsAgents.projectSkills,u=t.skillsAgents.personalAgents+t.skillsAgents.projectAgents,d=t.taste.fileExists?"Active · "+(t.taste.learningEnabled?"Learning on":"Learning off"):"No taste.md";return J.createElement(oe,{flexDirection:"column",paddingX:0},J.createElement(oe,null,J.createElement(se,{color:Zn,bold:!0},"Command Code"," "),J.createElement(se,{dimColor:!0},n)),J.createElement(oe,null,J.createElement(se,{dimColor:!0},"Visit "),J.createElement(Dr,{url:zT,text:zT,color:Xn.CYAN}),J.createElement(se,{dimColor:!0}," for usage and billing")),J.createElement(oe,{marginTop:1},J.createElement(se,{dimColor:!0},"Account:".padEnd(14)),t.auth.authenticated&&t.auth.username?J.createElement(J.Fragment,null,J.createElement(Dr,{url:`https://commandcode.ai/${t.auth.username}/`,text:t.auth.username,color:Xn.CYAN}),J.createElement(se,{color:a}," ",i)):t.auth.authenticated?J.createElement(J.Fragment,null,J.createElement(se,null,"Authenticated"),J.createElement(se,{color:a}," ",i)):J.createElement(J.Fragment,null,J.createElement(se,{color:lr.WARNING},"Not signed in"),J.createElement(se,{color:a}," ",i),J.createElement(se,{dimColor:!0}," — run "),J.createElement(se,{bold:!0},"/login"))),J.createElement(HT,{label:"Model",value:r}),J.createElement(HT,{label:"Branch",value:o,dimValue:!t.git.branch}),s?J.createElement(HT,{label:"Worktree",value:s}):null,t.git.remoteUrl?J.createElement(oe,null,J.createElement(se,{dimColor:!0},"Repository:".padEnd(14)),J.createElement(Dr,{url:t.git.remoteHttpUrl||`https://github.com/${t.git.remoteUrl}`,text:t.git.remoteUrl,color:Xn.CYAN}),t.pr?J.createElement(J.Fragment,null,J.createElement(se,{dimColor:!0}," · "),J.createElement(Dr,{url:t.pr.url,text:`#${t.pr.number}`,color:"OPEN"===t.pr.state?Xn.CYAN:Xn.GRAY}),J.createElement(se,{dimColor:!0}," (",t.pr.state.toLowerCase(),")")):null):t.pr?J.createElement(oe,null,J.createElement(se,{dimColor:!0},"Pull Request:".padEnd(14)),J.createElement(Dr,{url:t.pr.url,text:`#${t.pr.number}`,color:"OPEN"===t.pr.state?Xn.CYAN:Xn.GRAY}),J.createElement(se,{dimColor:!0}," (",t.pr.state.toLowerCase(),")")):null,J.createElement(HT,{label:"Taste",value:d,dimValue:!t.taste.fileExists}),J.createElement(HT,{label:"Directory",value:toRelativePath(t.system.cwd)}),J.createElement(HT,{label:"Skills",value:formatCountValue(t.skillsAgents.personalSkills,t.skillsAgents.projectSkills),dimValue:0===l}),J.createElement(HT,{label:"Agents",value:formatCountValue(t.skillsAgents.personalAgents,t.skillsAgents.projectAgents),dimValue:0===u}),J.createElement(HT,{label:"System",value:formatSystemValue({system:t.system})}),t.system.proxy?J.createElement(HT,{label:"Proxy",value:t.system.proxy}):null)}function StatusConfigView({staticKey:e,setShowStatusView:t,setInput:n}){const[r,o]=Z({phase:"loading"});return te(()=>{let e=!1;return gatherStatusData().then(t=>{e||o({phase:"ready",data:t})}).catch(t=>{if(e)return;const n=t instanceof Error?t.message:"Failed to gather status";o({phase:"error",message:n})}),()=>{e=!0}},[]),le((e,r)=>{r.escape&&(n(""),t(!1))}),J.createElement(J.Fragment,null,J.createElement(eT,{staticKey:e}),J.createElement(oe,{flexDirection:"column",width:"100%"},"ready"===r.phase?J.createElement(StatusMessage,{statusData:r.data}):"error"===r.phase?J.createElement(se,{dimColor:!0},"Could not load status: ",r.message):J.createElement(se,{dimColor:!0},"Gathering status…"),J.createElement(oe,{marginTop:1},J.createElement(se,{dimColor:!0},"Press Esc to return to conversation"))))}function moveFocusDown(e,t){const{suggestionCount:n,activeDirCount:r}=t;return"input"===e.zone?n>0?{...e,zone:"suggestions",suggestionIndex:0}:r>0?{...e,zone:"active-dir",activeDirIndex:0}:e:"suggestions"===e.zone?e.suggestionIndex<n-1?{...e,suggestionIndex:e.suggestionIndex+1}:r>0?{...e,zone:"active-dir",activeDirIndex:0}:{...e,zone:"input"}:e.activeDirIndex<r-1?{...e,activeDirIndex:e.activeDirIndex+1}:{...e,zone:"input"}}function moveFocusUp(e,t){const{suggestionCount:n,activeDirCount:r}=t;return"input"===e.zone?r>0?{...e,zone:"active-dir",activeDirIndex:r-1}:n>0?{...e,zone:"suggestions",suggestionIndex:n-1}:e:"suggestions"===e.zone?e.suggestionIndex>0?{...e,suggestionIndex:e.suggestionIndex-1}:{...e,zone:"input"}:e.activeDirIndex>0?{...e,activeDirIndex:e.activeDirIndex-1}:n>0?{...e,zone:"suggestions",suggestionIndex:n-1}:{...e,zone:"input"}}function getAdjustedSuggestionOffset(e){const{selectedIndex:t,currentOffset:n,maxVisible:r,totalSuggestions:o}=e;return o<=r?0:t<n?t:t>=n+r?t-r+1:n}function getSuggestionBase(e){const n=resolveDirectoryPath(e),r=/[\\/]$/.test(e),o=e.replace(/\\/g,"/");if(o.endsWith("/."))return{searchDirectory:n,prefix:".",outputPrefix:`${o.slice(0,-1)}`};if(r)return{searchDirectory:n,prefix:"",outputPrefix:o};const s=o.lastIndexOf("/");return-1===s?{searchDirectory:t.dirname(n),prefix:t.basename(n),outputPrefix:""}:{searchDirectory:t.dirname(n),prefix:t.basename(n),outputPrefix:o.slice(0,s+1)}}function getDirectorySuggestions(e){const t=e.trim();if(!t)return[];try{const{searchDirectory:e,prefix:n,outputPrefix:r}=getSuggestionBase(t),o=n.startsWith(".")||r.includes("/.");return v.readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()).filter(e=>!!o||!e.name.startsWith(".")).filter(e=>!n||e.name.toLowerCase().startsWith(n.toLowerCase())).sort((e,t)=>e.name.localeCompare(t.name)).map(e=>`${r}${e.name}/`)}catch(e){const t=e.code;return"ENOENT"!==t&&"ENOTDIR"!==t&&console.error(`Warning: Could not list directory suggestions: ${t}`),[]}}function getFooterText(e){return"active-dir"===e.focusZone?"[Del] Remove [↑↓] Navigate [Tab] Autocomplete [Esc] Close":"[Enter] Add [↑↓] Navigate [Tab] Autocomplete [Esc] Close"}__name(StatusMessage,"StatusMessage"),__name(StatusConfigView,"StatusConfigView"),tn(),tn(),dn(),tn(),dn(),__name(function createInitialFocusState(){return{zone:"input",suggestionIndex:0,activeDirIndex:0}},"createInitialFocusState"),__name(moveFocusDown,"moveFocusDown"),__name(moveFocusUp,"moveFocusUp"),__name(getAdjustedSuggestionOffset,"getAdjustedSuggestionOffset"),__name(getSuggestionBase,"getSuggestionBase"),__name(getDirectorySuggestions,"getDirectorySuggestions"),__name(getFooterText,"getFooterText"),kr(),xr();var WT=__name(({onClose:e})=>{const[t,n]=Z(""),[r,o]=Z(null),[s,i]=Z([]),[a,l]=Z(getAdditionalDirectories()),[u,d]=Z({zone:"input",suggestionIndex:0,activeDirIndex:0}),[m,g]=Z(0);te(()=>{i(t?getDirectorySuggestions(t):[]),d(e=>({...e,zone:"input"})),g(0)},[t]),te(()=>{if(!r||"success"!==r.tone)return;const e=setTimeout(()=>{o(null)},5e3);return()=>clearTimeout(e)},[r]);const h=__name(e=>{const t=addDirectory(e);"error"!==t.status?"skipped"!==t.status?(o({tone:"success",text:`Added ${t.displayPath} to directory scope`}),n(""),l(getAdditionalDirectories()),d({zone:"input",suggestionIndex:0,activeDirIndex:0})):o({tone:"warning",text:t.message}):o({tone:"error",text:t.message})},"submitPath"),f=__name(e=>{if(!removeAdditionalDirectory(e))return o({tone:"error",text:`${formatDirectoryForDisplay(e)} is no longer in workspace scope`}),void l(getAdditionalDirectories());o({tone:"success",text:`Removed ${formatDirectoryForDisplay(e)} from directory scope`}),l(getAdditionalDirectories()),d(e=>{if("active-dir"!==e.zone)return e;const t=Math.max(0,e.activeDirIndex-1);return{...e,activeDirIndex:t}})},"handleRemove");le((t,r)=>{if(r.escape)e();else{if(r.return)return"suggestions"===u.zone&&s[u.suggestionIndex]?void h(s[u.suggestionIndex]):void 0;if((r.delete||r.backspace)&&"active-dir"===u.zone&&a[u.activeDirIndex])f(a[u.activeDirIndex]);else{if(r.tab&&s.length>0){const e=s[u.suggestionIndex]??s[0];return void(e&&(n(e),d(e=>({...e,zone:"input"})),o(null)))}r.downArrow?d(e=>moveFocusDown(e,{suggestionCount:s.length,activeDirCount:a.length})):r.upArrow&&d(e=>moveFocusUp(e,{suggestionCount:s.length,activeDirCount:a.length}))}}}),te(()=>{"suggestions"===u.zone&&g(e=>getAdjustedSuggestionOffset({selectedIndex:u.suggestionIndex,currentOffset:e,maxVisible:8,totalSuggestions:s.length}))},[u,s.length]),te(()=>{d(e=>"suggestions"===e.zone&&e.suggestionIndex>=s.length?{...e,zone:"input",suggestionIndex:Math.max(0,s.length-1)}:"active-dir"===e.zone&&e.activeDirIndex>=a.length?{...e,zone:"input",activeDirIndex:Math.max(0,a.length-1)}:e)},[s.length,a.length]);const y=s.slice(m,m+8),w=getFooterText({focusZone:u.zone});return J.createElement(oe,{flexDirection:"column",borderStyle:"single",borderColor:Xn.CYAN,paddingX:1,paddingY:0},J.createElement(se,{bold:!0,color:Xn.CYAN},"Add directory to workspace"),J.createElement(se,{color:Xn.GRAY},"Command Code will be able to read files in this directory and make edits when accept edits mode is on."),J.createElement(oe,{marginTop:1,flexDirection:"column"},J.createElement(se,{color:Xn.GRAY},"Added directories"),0===a.length?J.createElement(se,{color:Xn.GRAY}," None yet"):a.map((e,t)=>{const n="active-dir"===u.zone&&u.activeDirIndex===t;return J.createElement(se,{key:e,color:n?Xn.YELLOW:Xn.GREEN,bold:n},n?` ${Pe.pointer} `:" ",formatDirectoryForDisplay(e))})),J.createElement(oe,{marginTop:1},J.createElement(se,{bold:!0,color:Xn.WHITE},"Path")),J.createElement(oe,null,J.createElement(TextInput,{value:t,focus:"input"===u.zone,prefix:`${"input"===u.zone?Pe.pointer:" "} `,prefixColor:"input"===u.zone?Xn.CYAN:Xn.GRAY,onChange:e=>{n(e),o(null)},onSubmit:h})),!t&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.GRAY},"Examples: ../shared ~/docs /abs/path")),r&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:{error:Xn.RED,warning:Xn.YELLOW,success:Xn.GREEN}[r.tone]},r.text)),s.length>0&&J.createElement(oe,{flexDirection:"column",marginTop:1},J.createElement(se,{color:Xn.GRAY},"Suggestions"),y.map((e,t)=>{const n=m+t,r="suggestions"===u.zone&&u.suggestionIndex===n;return J.createElement(se,{key:e,color:r?Xn.CYAN:Xn.GRAY,bold:r},r?` ${Pe.pointer} `:" ",e)})),J.createElement(oe,{marginTop:1},J.createElement(BracketedText,{text:w,color:Xn.DIM})))},"AddDirModal");tn(),tn(),sn(),tn(),tn(),sn(),kr();var GT=__name(()=>t.join(w.homedir(),".commandcode","agents"),"getRootAgentDir"),VT=__name(()=>t.join(process.cwd(),".commandcode","agents"),"getLocalAgentDir"),QT=__name(({config:e,onSaveComplete:n,viewOnly:r=!1})=>{const[o,s]=Z("idle"),[i,a]=Z(""),l=[...FC.map(e=>e.name),...qC.map(e=>e.name)],u=__name(async()=>{if(!e.agentType||!e.sysPrompt)return s("error"),void a("Agent configuration is incomplete");s("saving");try{const r="personal"===e.location?GT():VT();await q.mkdir(r,{recursive:!0});const o=`${e.agentType}.md`,s=t.join(r,o),i=Array.from(e.selectedTools).map(e=>UC[e]||e).join(", "),a=0===e.selectedTools.size?"none":e.selectedTools.size===l.length?'"*"':JSON.stringify(i),u=`---\nname: "${e.agentType}"\ndescription: ${JSON.stringify(e.ccToolDefinition)}\ntools: ${a}\n---\n\n${e.sysPrompt}\n`;await q.writeFile(s,u,"utf-8"),n(e.agentType)}catch(e){console.error("Error saving agent:",e),s("error"),a(e instanceof Error?e.message:"Unknown error occurred")}},"handleSaveAgent");le((e,t)=>{r||!t.return||"idle"!==o&&"error"!==o||u()});const d=Array.from(e.selectedTools).map(e=>UC[e]||e).join(", "),m="personal"===e.location?`~/.commandcode/agents/${e.agentType}`:`.commandcode/agents/${e.agentType}`;return J.createElement(oe,{flexDirection:"column",gap:1},J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{gap:1},J.createElement(se,{color:Xn.WHITE,bold:!0},"Name:"),J.createElement(se,{color:Xn.GRAY},e.agentType)),J.createElement(oe,{gap:1},J.createElement(se,{color:Xn.WHITE,bold:!0},"Location:"),J.createElement(se,{color:Xn.GRAY},m)),J.createElement(oe,{gap:1},J.createElement(se,{color:Xn.WHITE,bold:!0},"Tools:"),J.createElement(se,{color:Xn.GRAY},0===e.selectedTools.size?"None":e.selectedTools.size===l.length?"*":d))),J.createElement(oe,{gap:1},J.createElement(se,{color:Xn.WHITE,bold:!0},"Description"),J.createElement(se,{color:Xn.GRAY},"(Tells ","Command Code"," when to use this agent):")),J.createElement(se,{color:Xn.GRAY},e.ccToolDefinition),J.createElement(oe,{gap:1},J.createElement(se,{color:Xn.WHITE,bold:!0},"System Prompt:")),J.createElement(se,{color:Xn.GRAY},e.sysPrompt),!r&&J.createElement(oe,{marginTop:1},"idle"===o&&J.createElement(oe,{gap:1},J.createElement(se,{color:Xn.GREEN,dimColor:!0},"Press"),J.createElement(se,{color:Xn.GREEN,bold:!0},"Enter"),J.createElement(se,{color:Xn.GREEN,dimColor:!0},"to save • Esc to cancel")),"saving"===o&&J.createElement(se,{color:Xn.YELLOW},"Saving agent..."),"saved"===o&&J.createElement(se,{color:Xn.GREEN},Pe.tick," ",i),"error"===o&&J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.RED},Pe.cross," Error: ",i),J.createElement(se,{color:Xn.GRAY},"Press Enter to retry"))))},"AgentSummary");kr();var KT=__name(({agent:e,onBack:t,setRevalidateAgent:n,isReadOnly:r=!1})=>{const[o,s]=Z("menu"),i=[...FC.map(e=>e.name),...qC.map(e=>e.name)];let a=new Set;if("*"===e.tools||'"*"'===e.tools)a=new Set(i);else if(e.tools&&"none"!==e.tools){const t=e.tools.replace(/^"|"$/g,"").split(",").map(e=>e.trim()).map(e=>zC[e]||e);a=new Set(t)}const l={location:e.location,method:"manual",agentType:e.name,sysPrompt:e.sysPrompt,ccToolDefinition:e.description,recommendedMethodDescription:"",selectedTools:a},u=[{label:"1. View agent",value:"view"},...r?[]:[{label:"2. Delete agent",value:"delete"}],{label:r?"2. Back":"3. Back",value:"back"}],d=__name(e=>{"back"===e.value?t():"view"===e.value?s("view"):"edit"===e.value?s("edit"):"delete"===e.value&&s("delete")},"handleMenuSelect");if(le((e,n)=>{n.escape&&("menu"===o?t():s("menu")),n.return&&"view"===o&&s("menu")}),"view"===o)return J.createElement(oe,{flexDirection:"column"},J.createElement(QT,{config:l,onSaveComplete:()=>s("menu"),viewOnly:!0}),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.GRAY},"Press Enter to go back")));if("edit"===o)return J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.YELLOW},"Edit functionality coming soon..."),J.createElement(se,{color:Xn.GRAY},"Press Esc to go back"));if("delete"===o){const r=[{label:"1. Yes, delete",value:"confirm-delete"},{label:"2. No, cancel",value:"cancel"}],o=__name(async r=>{if("confirm-delete"===r.value)try{await q.unlink(e.filePath),n(!0),t()}catch(e){console.error(`Failed to delete agent: ${e}`),s("menu")}else s("menu")},"handleDeleteSelect");return J.createElement(oe,{flexDirection:"column",gap:1},J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.RED},"Delete agent"),J.createElement(se,{color:Xn.GRAY},"Are you sure you want to delete the agent ",e.name,"?")),J.createElement(oe,null,J.createElement(at,{items:r,onSelect:o,indicatorComponent:({isSelected:e})=>J.createElement(se,{color:Xn.WHITE},e?">":" "),itemComponent:({isSelected:e,label:t})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY},` ${t}`)})))}return J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.WHITE,bold:!0},e.name),J.createElement(oe,{marginTop:1},J.createElement(at,{items:u,onSelect:d,indicatorComponent:({isSelected:e})=>J.createElement(se,{color:Xn.WHITE},e?">":" "),itemComponent:({isSelected:e,label:t})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY},` ${t}`)})),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.GRAY},"Press ↑↓ to navigate · Enter to select · Esc to go back")))},"AgentDetails");kr();var YT=__name(({handleSelect:e,createdAgentName:n})=>{const[r,o]=Z([]),[s,i]=Z([]),[a,l]=Z([]),[u,d]=Z(!0),[m,g]=Z(!1),[h,f]=Z(null),[y,S]=Z(!1),E=__name(()=>t.join(w.homedir(),".commandcode","agents"),"getRootAgentDir"),C=__name(()=>t.join(process.cwd(),".commandcode","agents"),"getLocalAgentDir"),v=__name(async(e,n)=>{try{g(!1);const r=(await q.readdir(e)).filter(e=>e.endsWith(".md"));return(await Promise.all(r.map(async r=>{try{const o=t.join(e,r),s=await q.readFile(o,"utf-8"),{data:i,content:a}=Ge(s);let l=i.tools||"";return"*"!==l&&'"*"'!==l||(l="*"),{name:i.name||r.replace(".md",""),description:i.description||"",tools:l,sysPrompt:a.trim(),location:n,filePath:o}}catch(e){return console.error(`Error loading agent from ${r}:`,e),null}}))).filter(e=>null!==e)}catch{return[]}},"loadAgentsFromDirectory");te(()=>{__name(async()=>{d(!0);const[e,t]=await Promise.all([v(E(),"personal"),v(C(),"project")]),n=yC.map(e=>({name:e.name,description:e.description,tools:Array.isArray(e.tools)?e.tools.join(", "):e.tools,sysPrompt:e.systemPrompt,location:"personal",filePath:`__builtin__:${e.name}`}));o(e),i(t),l(n),d(!1)},"loadAgents")()},[m]);const k=[{label:"Create new agent",value:"create_new_agent"}];r.forEach(e=>{k.push({label:e.name,value:e.filePath})}),s.forEach(e=>{k.push({label:e.name,value:e.filePath})});const T=r.length+s.length,_=__name(t=>{if("create_new_agent"===t.value)e(t);else{const e=[...r,...s].find(e=>e.filePath===t.value);e&&(f(e),S(!0))}},"handleAgentSelect");if(u)return J.createElement(se,{color:Xn.GRAY},"Loading agents...");if(y&&h){const e=h.filePath.startsWith("__builtin__:");return J.createElement(KT,{agent:h,onBack:()=>{S(!1),f(null)},setRevalidateAgent:g,isReadOnly:e})}const x=__name(({isSelected:e,label:t})=>{const n=k.find(e=>e.label===t),o=n?.value||"",i=r[0]?.filePath===o,a=s[0]?.filePath===o;return J.createElement(oe,{flexDirection:"column"},i&&r.length>0&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.GRAY,bold:!0},"User agents")),a&&s.length>0&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.GRAY,bold:!0},"Project agents")),J.createElement(oe,null,J.createElement(se,{color:Xn.WHITE},e?">":" "),J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY}," ",t)))},"CustomItemComponent");return J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.WHITE,bold:!0},"Agents"),T>0?J.createElement(se,{color:Xn.GRAY}," ","(",T," agent",T>1?"s":"",")"):J.createElement(se,{color:Xn.GRAY}," (No custom agents)")),n&&J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(se,{color:Xn.GREEN,dimColor:!0},"Created agent: ",n)),J.createElement(at,{items:k,onSelect:_,indicatorComponent:()=>null,itemComponent:x}),a.length>0&&J.createElement(oe,{flexDirection:"column",marginTop:1},J.createElement(se,{color:Xn.GRAY,bold:!0},"Default agents"),a.map(e=>J.createElement(se,{key:e.filePath,color:Xn.GRAY}," ",e.name.charAt(0).toUpperCase()+e.name.slice(1)))),J.createElement(oe,{flexDirection:"column",marginTop:1},J.createElement(se,{color:Xn.GRAY},"Create specialized subagents that Command Code can delegate to."),J.createElement(se,{color:Xn.GRAY},"Each subagent has its own context window, custom system prompt, and specific tools.")))},"ManageAgents");tn(),sn(),as(),kr(),tn(),tn(),sn(),kr();var JT=__name(({onSelect:e})=>J.createElement(at,{items:[{label:"1. Project (.commandcode/agents/)",value:"project"},{label:"2. Personal (~/.commandcode/agents/)",value:"personal"}],onSelect:t=>{"project"!==t.value&&"personal"!==t.value||e(t.value)},indicatorComponent:({isSelected:e})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY},e?">":" "),itemComponent:({isSelected:e,label:t})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY},` ${t}`)}),"LocationSelector");tn(),xr(),sn(),Ir(),$r(),kr();var XT=__name(({step:e,agentType:t,sysPrompt:n,ccToolDefinition:r,onAgentTypeChange:o,onSysPromptChange:s,onCCToolDefinitionChange:i,onAgentTypeSubmit:a,onSysPromptSubmit:l,onCCToolDefinitionSubmit:u})=>{const[d,m]=Z(!1),[g,h]=Z(!1),f=re(async e=>{const t=processBracketedPaste(e);if(!t.isPasteStart||d){if(!d||t.isPasteEnd){if(d&&t.isPasteEnd){m(!1);const e=await detectClipboardText();return void(e?s(e):t.cleanedContent&&s(t.cleanedContent))}s(e)}}else if(m(!0),t.isPasteEnd){m(!1);const e=await detectClipboardText();return void(e?s(e):t.cleanedContent&&s(t.cleanedContent))}},[d,s]),y=re(async e=>{const t=processBracketedPaste(e);if(!t.isPasteStart||g){if(!g||t.isPasteEnd){if(g&&t.isPasteEnd){h(!1);const e=await detectClipboardText();return void(e?i(e):t.cleanedContent&&i(t.cleanedContent))}i(e)}}else if(h(!0),t.isPasteEnd){h(!1);const e=await detectClipboardText();return void(e?i(e):t.cleanedContent&&i(t.cleanedContent))}},[g,i]);return"agentType"===e?J.createElement(J.Fragment,null,J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.WHITE},"Enter a unique identifier for your agent:"),t&&(Object.values(UC).some(e=>$e(e)===$e(t))||Object.keys(UC).some(e=>$e(e)===$e(t)))&&J.createElement(se,{color:Xn.RED},Pe.warning," This name conflicts with an existing tool name. Please choose a different name."),t&&isReservedAgentName($e(t))&&J.createElement(se,{color:Xn.RED},Pe.warning," This name is reserved. Reserved names:"," ",fC.join(", "))),J.createElement(TextInput,{showCursor:!0,value:t||"",onSubmit:()=>{if(null===t||0===t.trim().length)return;const e=$e(t);Object.values(UC).some(t=>$e(t)===e)||Object.keys(UC).some(t=>$e(t)===e)||isReservedAgentName(e)||a()},onChange:o,placeholder:"e.g. code-reviewer, unit-tester"})):"sysPrompt"===e?J.createElement(J.Fragment,null,J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.WHITE},"Enter the system prompt for your agent:"),J.createElement(se,{color:Xn.GRAY},"Be comprehensive for best results.")),J.createElement(TextInput,{showCursor:!0,value:n||"",onSubmit:()=>{null!==n&&0!==n.trim().length&&l()},onChange:f,placeholder:"You are a helpful coding reviewer..."})):"ccToolDefinition"===e?J.createElement(J.Fragment,null,J.createElement(se,{color:Xn.WHITE},"When should ","Command Code"," use this agent?"),J.createElement(TextInput,{showCursor:!0,value:r,onSubmit:()=>{0!==r.trim().length&&u()},onChange:y,placeholder:"e.g., Use this agent when you are done writing code..."})):null},"ManualFlow");tn(),kr();var ZT=__name(({onSelect:e})=>J.createElement(at,{items:[{label:"1. Generate with Command Code (recommended)",value:"recommended"},{label:"2. Manual configuration",value:"manual"}],onSelect:t=>{"recommended"!==t.value&&"manual"!==t.value||e(t.value)},indicatorComponent:({isSelected:e})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY},e?">":" "),itemComponent:({isSelected:e,label:t})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY},` ${t}`)}),"MethodSelector");tn(),xr(),tn(),zS(),kr();var e_=["·","○","◇","☆","✧","☆","◇","○","⌘"],t_=[12,5,4,4,4,4,4,5,16],n_=[5,4,4,4,4,4,5];function getWaveSymbol(e){const t=e%88;let n=0;for(let e=0;e<t_.length;e++)if(n+=t_[e],t<n)return e_[e];const r=t-58;n=0;for(let e=0;e<n_.length;e++)if(n+=n_[e],r<n)return e_[7-e];return e_[0]}function ShimmerText({text:e,offset:t,bg:n}){const r=ne(()=>e.split(""),[e]),o=__name(e=>{const n=e-(t-5);return n>=0&&n<wr.length?wr[n]:Sr},"getCharColor");return J.createElement(se,null,r.map((e,t)=>J.createElement(se,{key:`${t}:${e}`,color:o(t),backgroundColor:n},e)))}function CMDIcon({frame:e,color:t}){return J.createElement(se,{color:t??Zn,bold:!0},`${getWaveSymbol(e)} `)}function formatToken(e){return e<1e3?`${e}`:`${(e/1e3).toFixed(1)}k`}function formatTime3(e){return e<6e4?`${Math.floor(e/1e3)}s`:`${Math.floor(e/6e4)}m ${Math.floor(e%6e4/1e3)}s`}__name(getWaveSymbol,"getWaveSymbol"),__name(ShimmerText,"ShimmerText"),__name(CMDIcon,"CMDIcon"),__name(formatToken,"formatToken"),__name(formatTime3,"formatTime");var r_=__name(({status:e,timeElapsed:t,tokens:n})=>{const[r,o]=Z(0),[s,i]=Z(0),a=ee(n);a.current=n;const l=getTerminalWidth(),[u,d]=Z(()=>l>=72?"all":l>=42?"medium":"none");te(()=>{d(e=>"all"===e?l<68?l>=42?"medium":"none":"all":"medium"===e?l>=72?"all":l<38?"none":"medium":l>=72?"all":l>=42?"medium":"none")},[l]),te(()=>{const e=setInterval(()=>{o(e=>(e+1)%88),i(e=>{const t=a.current;if(e===t)return e;const n=t-e,r=e+Math.sign(n)*Math.max(1,Math.ceil(Math.abs(n)/10));return n>0?Math.min(r,t):Math.max(r,t)})},80);return()=>clearInterval(e)},[]);const m=r%(e.length+10),g="all"===u,h="medium"===u;return qS.statusRender({width:l,layoutMode:u,status:e,frame:r}),J.createElement(oe,{width:l,height:1,paddingLeft:0,marginLeft:0},J.createElement(oe,{flexShrink:0},J.createElement(se,{backgroundColor:ir.BG,color:ir.FG}," "),J.createElement(se,{backgroundColor:ir.BG},J.createElement(CMDIcon,{frame:4*r})),J.createElement(ShimmerText,{text:e,offset:m,bg:ir.BG}),J.createElement(se,{backgroundColor:ir.BG,color:ir.FG}," ")),g&&J.createElement(oe,{columnGap:1,marginLeft:1},J.createElement(se,{bold:!0,color:Xn.GRAY},"esc"),J.createElement(se,{color:Xn.DIM},"to interrupt"),J.createElement(se,{color:Xn.DIM},"•"),J.createElement(se,{color:Xn.DIM},formatTime3(t)),J.createElement(se,{color:Xn.DIM},"•"),J.createElement(se,{color:Xn.GRAY},Pe.arrowDown),J.createElement(se,{color:Xn.DIM},formatToken(Math.round(s)))),h&&J.createElement(oe,{marginLeft:1},J.createElement(se,{color:Xn.DIM},formatToken(Math.round(s)))))},"Status");$r(),Ir(),kr();var o_=__name(({description:e,onChange:t,onSubmit:n,loading:r,errorMessage:o})=>{const[s,i]=Z(!1),[a,l]=Z(0),[u,d]=Z(0);te(()=>{if(!r)return;const e=setInterval(()=>d(e=>e+1),50);return()=>clearInterval(e)},[r]);const m=re(()=>{0!==e.trim().length&&n()},[e,n]),g=re(async e=>{const n=processBracketedPaste(e);if(!n.isPasteStart||s){if(!s||n.isPasteEnd){if(s&&n.isPasteEnd){i(!1);const e=await detectClipboardText();return void(e?(l(e=>e+1),t(e)):n.cleanedContent&&(l(e=>e+1),t(n.cleanedContent)))}t(e)}}else if(i(!0),n.isPasteEnd){i(!1);const e=await detectClipboardText();return void(e?(l(e=>e+1),t(e)):n.cleanedContent&&(l(e=>e+1),t(n.cleanedContent)))}},[s,t]);return J.createElement(oe,{flexDirection:"column"},r?J.createElement(oe,null,J.createElement(CMDIcon,{frame:u}),J.createElement(se,{color:Xn.WHITE},"Generating agent from description...")):J.createElement(TextInput,{key:a,showCursor:!0,value:e,placeholder:"e.g. Help me review my code...",onChange:g,onSubmit:m}),o&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.RED},`${Pe.warning} ${o}`)))},"RecommendedFlow");tn(),kr();var s_=__name(({selectedTools:e,onToggleTool:t,onToggleCategory:n,onComplete:r})=>{const[o,s]=Z(!1),[i,a]=Z(0),l=ne(()=>[...FC.map(e=>e.name),...qC.map(e=>e.name)],[]),u=ne(()=>[{name:"All tools",tools:l},{name:"Read-only tools",tools:l.filter(e=>"read_file"===e||"read_directory"===e||"read_multiple_files"===e||"grep"===e)},{name:"Edit tools",tools:l.filter(e=>"edit_file"===e||"write_file"===e)},{name:"Execution tools",tools:l.filter(e=>"shell_command"===e)},{name:"Search tools",tools:l.filter(e=>"web_search"===e||"web_fetch"===e)},{name:"Other tools",tools:l.filter(e=>!["read_file","read_directory","read_multiple_files","grep","edit_file","write_file","shell_command","web_search","web_fetch"].includes(e))}].filter(e=>e.tools.length>0),[l]),d=ne(()=>{const e=[];return e.push({type:"continue",value:"continue"}),e.push({type:"divider",value:"divider-1"}),o?(u.forEach(t=>{e.push({type:"category",value:t.name})}),e.push({type:"divider",value:"divider-3"}),e.push({type:"toggle",value:"hide-advanced"}),e.push({type:"spacer",value:"spacer-1"}),e.push({type:"label",value:"Individual Tools:"}),l.forEach(t=>{e.push({type:"tool",value:t})})):(u.forEach(t=>{e.push({type:"category",value:t.name})}),e.push({type:"divider",value:"divider-2"}),e.push({type:"toggle",value:"show-advanced"})),e},[o,u,e,l]),m=d.map((t,n)=>{if("divider"===t.type)return{label:"─".repeat(30),value:n,type:"divider"};if("spacer"===t.type)return{label:"",value:n,type:"spacer"};if("label"===t.type)return{label:t.value,value:n,type:"label"};if("continue"===t.type)return{label:"[ Continue ]",value:n,type:"continue"};if("toggle"===t.type)return{label:"show-advanced"===t.value?"[ Show advanced options ]":"[ Hide advanced options ]",value:n,type:"toggle"};if("category"===t.type){const r=u.find(e=>e.name===t.value),o=r?.tools.every(t=>e.has(t));return r?.tools.some(t=>e.has(t)),{label:`${o?"[x]":"[ ]"} ${t.value}`,value:n,type:"category"}}return"tool"===t.type?{label:` ${e.has(t.value)?"[x]":"[ ]"} ${UC[t.value]||t.value}`,value:n,type:"tool"}:{label:"",value:n,type:"unknown"}}),g=m.filter(e=>"divider"!==e.type&&"spacer"!==e.type&&"label"!==e.type);return le((e,l)=>{if(l.upArrow)a(e=>{const t=e-1;return t<0?g.length-1:t});else if(l.downArrow)a(e=>{const t=e+1;return t>=g.length?0:t});else if(l.return||" "===e){const e=g[i];if(e){const i=d[e.value];if(!i)return;"continue"===i.type?r():"toggle"===i.type?(s(!o),a(0)):"category"===i.type?n(i.value):"tool"===i.type&&t(i.value)}}}),J.createElement(oe,{flexDirection:"column"},m.map((e,t)=>{const n=g.findIndex(t=>t.value===e.value),r=-1!==n&&n===i;if("divider"===e.type)return J.createElement(oe,{key:`divider-${t}`},J.createElement(se,{color:Xn.GRAY}," ",e.label));if("spacer"===e.type)return J.createElement(oe,{key:`spacer-${t}`,height:1});if("label"===e.type)return J.createElement(oe,{key:`label-${t}`},J.createElement(se,{color:Xn.GRAY}," ",e.label));const o="continue"===e.type;return J.createElement(oe,{key:`item-${t}`},J.createElement(se,{color:r?Xn.WHITE:Xn.GRAY,bold:o&&r},r?">":" "," ",e.label))}),J.createElement(oe,{marginTop:1},e.size===l.length&&J.createElement(se,{color:Xn.GRAY},"All tools selected"),e.size>0&&e.size<l.length&&J.createElement(se,{color:Xn.GRAY},e.size," tools selected"),0===e.size&&J.createElement(se,{color:Xn.GRAY},"No tools selected")))},"ToolsSelector");Qr(),Tw(),gw(),ns(),Nb(),Fr();var i_=__name(({onComplete:e})=>{const[t,n]=Z("location"),[r,o]=Z(!1),[s,i]=Z(null),[a,l]=Z("agentType"),u=ne(()=>[...FC.map(e=>e.name),...qC.map(e=>e.name)],[]),d=__name(()=>({location:null,method:null,agentType:null,sysPrompt:null,ccToolDefinition:"",recommendedMethodDescription:"",selectedTools:new Set(u)}),"getInitialConfig"),[m,g]=Z(d()),h=__name(t=>{n("location"),l("agentType"),g(d()),e(t)},"resetToDefaults"),f=__name(()=>{if("location"===t)return"Choose location";if("method"===t)return"Creation method";if("configuration"===t){if("recommended"===m.method)return"Describe what this agent should do and when it should be used (be comprehensive for best results)";if("agentType"===a)return"Agent type (identifier)";if("sysPrompt"===a)return"System prompt";if("ccToolDefinition"===a)return"Description (Tell Command Code when to use this agent)"}return"tools"===t?"Select tools":"summary"===t?"Confirm and save":""},"getSubText"),y=__name(e=>{g({...m,location:e}),n("method")},"handleLocationSelect"),w=__name(e=>{g({...m,method:e}),n("configuration")},"handleMethodSelect"),S=__name(async()=>{try{i(null),o(!0);const e=await getConfiguredProvider(),t=await isOAuthEnforced(),{token:r,oauthProvider:s}=await getOAuthCredentials({provider:e});validateOAuthToken({token:r,provider:e});const a={[Pt.INTERNAL_TEAM_FLAG_HEADER]:t.toString()};r&&(a[Pt.OAUTH_TOKEN]=`Bearer ${r}`,s&&(a[Pt.OAUTH_PROVIDER]=s));const l=getApiBaseUrl(),u=new Jy({baseUrl:l}),d=parseModelString(getConfiguredModel()).modelId,h=await u.post({headers:a,endpoint:At.ALPHA.AGENT.GENERATE,body:{description:m.recommendedMethodDescription,model:d}});g({...m,agentType:$e(h.agentName),sysPrompt:h.systemPrompt,ccToolDefinition:h.toolDescription}),n("tools")}catch(e){if(e instanceof Go&&400===e.status&&e.message?.toLowerCase().includes("insufficient credits")){const e=await getBillingLink({billingLink:null,setBillingLink:__name(()=>{},"setBillingLink")})??"https://commandcode.ai/settings/billing";i(`You have insufficient credits to make this request. Please purchase more credits to continue using Command Code: ${e}`)}else i("An error occurred while generating the agent. Please try again.")}finally{o(!1)}},"handleRecommendedSubmit"),E=__name(()=>{g({...m,agentType:$e(m.agentType)}),l("sysPrompt")},"handleManualAgentTypeSubmit"),C=__name(()=>{l("ccToolDefinition")},"handleManualSysPromptSubmit"),v=__name(()=>{n("tools")},"handleManualCCToolDefinitionSubmit"),k=__name(()=>{n("summary")},"handleToolsComplete"),T=__name(e=>{const t=new Set(m.selectedTools);t.has(e)?t.delete(e):t.add(e),g({...m,selectedTools:t})},"handleToggleTool"),_=__name(e=>{const t=[{name:"All tools",tools:u},{name:"Read-only tools",tools:u.filter(e=>"read_file"===e||"read_directory"===e||"read_multiple_files"===e||"grep"===e)},{name:"Edit tools",tools:u.filter(e=>"edit_file"===e||"write_file"===e)},{name:"Execution tools",tools:u.filter(e=>"shell_command"===e)},{name:"Search tools",tools:u.filter(e=>"web_search"===e||"web_fetch"===e)},{name:"Other tools",tools:u.filter(e=>!["read_file","read_directory","read_multiple_files","grep","edit_file","write_file","shell_command","web_search","web_fetch"].includes(e))}].find(t=>t.name===e);if(!t)return;const n=new Set(m.selectedTools);t.tools.every(e=>n.has(e))?t.tools.forEach(e=>n.delete(e)):t.tools.forEach(e=>n.add(e)),g({...m,selectedTools:n})},"handleToggleCategory");return J.createElement(oe,{flexDirection:"column",gap:1},J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.WHITE,bold:!0},"Create new agent"),J.createElement(se,{color:Xn.GRAY},f())),J.createElement(oe,null,"location"===t&&J.createElement(JT,{onSelect:y}),"method"===t&&J.createElement(ZT,{onSelect:w}),"configuration"===t&&"recommended"===m.method&&J.createElement(o_,{description:m.recommendedMethodDescription,onChange:e=>g({...m,recommendedMethodDescription:e}),loading:r,errorMessage:s,onSubmit:S}),"configuration"===t&&"manual"===m.method&&J.createElement(oe,{flexDirection:"column",gap:1},J.createElement(XT,{step:a,agentType:m.agentType,sysPrompt:m.sysPrompt,ccToolDefinition:m.ccToolDefinition,onAgentTypeChange:e=>g({...m,agentType:e}),onSysPromptChange:e=>g({...m,sysPrompt:e}),onCCToolDefinitionChange:e=>g({...m,ccToolDefinition:e}),onAgentTypeSubmit:E,onSysPromptSubmit:C,onCCToolDefinitionSubmit:v})),"tools"===t&&J.createElement(s_,{selectedTools:m.selectedTools,onToggleTool:T,onToggleCategory:_,onComplete:k}),"summary"===t&&J.createElement(QT,{config:m,onSaveComplete:h})))},"AgentNew");kr();var a_=__name(({onCancel:e})=>{const[t,n]=Z(null),[r,o]=Z(null),s=__name(e=>{n(e.value),o(null)},"handleSelect");return le((t,n)=>{n.escape&&e()}),J.createElement(oe,{gap:1,paddingLeft:1,paddingRight:1,width:"100%",borderColor:Xn.GRAY,borderStyle:"single",flexDirection:"column"},null===t&&J.createElement(YT,{handleSelect:s,createdAgentName:r}),"create_new_agent"===t&&J.createElement(i_,{onComplete:e=>{o(e),n(null)}}))},"AgentsConfig");kr(),tn(),Fr(),kr();var l_=[{label:"Compact Normal (default)",value:"default",description:"Summarize session when context limit reached."},{label:"Compact Fast",value:"fast",description:"Fast tiered compaction. Higher quality, uses more tokens."}],c_=__name(({onSelect:e,onCancel:t})=>{const[n,r]=Z(null);te(()=>{loadUserConfig().then(e=>{r(e.compactMode??"default")})},[]);const o=__name(t=>{e(t.value)},"handleSelect");if(le((e,n)=>{n.escape&&t()}),null===n)return null;const s=l_.findIndex(e=>e.value===n);return J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(oe,null,J.createElement(se,{color:Zn,bold:!0},"Select a compact mode to compact sessions")),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"Choose how Command Code handles automatic context compaction.")),J.createElement(at,{items:l_,onSelect:o,initialIndex:s>=0?s:0,indicatorComponent:({isSelected:e})=>J.createElement(se,{color:Xn.CYAN},e?Pe.pointer:" "),itemComponent:({isSelected:e,label:t})=>{const r=l_.find(e=>e.label===t),o=r?.value===n,s=l_.findIndex(e=>e.label===t);return J.createElement(oe,{flexDirection:"column"},J.createElement(oe,null,J.createElement(se,{color:e?Xn.CYAN:o?Xn.GREEN:Xn.WHITE},` ${s+1}. ${r?.label??t}`),o&&J.createElement(se,{color:Xn.GREEN}," ",Pe.tick)),J.createElement(se,{color:Xn.DIM},` ${r?.description??""}`))}}),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press "),J.createElement(se,{color:Xn.DIM,bold:!0},"Esc"),J.createElement(se,{color:Xn.DIM}," to cancel")))},"CompactModeSelector");tn(),kr(),tn(),xr(),sn(),Ir(),Ln(),tn();var u_=n(S(),"commandcode-images"),d_={"image/png":".png","image/jpeg":".jpg","image/gif":".gif","image/webp":".webp"};function saveTempImage(e,t){try{k(u_)||P(u_,{recursive:!0});const r=d_[e.mediaType]||".png",o=`image-${t}-${Date.now()}${r}`,s=n(u_,o),i=Buffer.from(e.data,"base64");return A(s,i),s}catch{return null}}function accumulateDelta(e,t,n){const r=n+t;return e===t||e===r?t:r&&e.startsWith(r)?t+e.slice(r.length):t&&e.startsWith(t)?t+e.slice(t.length):t+e}function useBracketedPaste(e){const{input:t,detectedContent:n,setInput:r,setDetectedImages:o,setDetectedContent:s,incrementInputKey:i}=e,a=re((e,t)=>{o(t=>[...t,e]),r(t),i()},[o,r,i]),l=ee(!1),u=ee(""),d=ee(null),m=ee(""),g=re(async(e,t)=>{let o=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n");const l=await detectDroppedImageFile(o);if(l)return void a(l,t);const u=await detectClipboardImage();if(u)return void a(u,t);let d=o;if(!d.trim()){const e=await detectClipboardText();d=e?e.replace(/\r\n/g,"\n").replace(/\r/g,"\n"):""}if(d){if(d.length>300){const e=`[Text#${n.length+1}]`;s(e=>[...e,d]),r(t+e)}else r(t+d);i()}},[a,n.length,s,r,i]),h=re(()=>{d.current&&clearTimeout(d.current),d.current=setTimeout(async()=>{if(l.current){const e=u.current,t=m.current;u.current="",m.current="",l.current=!1,d.current=null,e&&await g(e,t)}},500)},[g]);return{handlePaste:re(async e=>{const n=processBracketedPaste(e);if(n.isPasteStart&&n.isPasteEnd)return l.current&&(l.current=!1,u.current="",m.current="",d.current&&(clearTimeout(d.current),d.current=null)),await g(n.pastedContent??n.cleanedContent,n.textBeforePaste??""),!0;if(n.isPasteStart&&!l.current)return l.current=!0,m.current=n.textBeforePaste??t,u.current=n.pastedContent??n.cleanedContent,h(),!0;if(l.current&&!n.isPasteEnd)return void 0!==n.pastedContent?u.current=n.pastedContent:n.cleanedContent&&(u.current=accumulateDelta(n.cleanedContent,u.current,m.current)),h(),!0;if(l.current&&n.isPasteEnd){d.current&&(clearTimeout(d.current),d.current=null),void 0!==n.pastedContent?u.current=n.pastedContent:n.cleanedContent&&(u.current=accumulateDelta(n.cleanedContent,u.current,m.current));const e=u.current,t=m.current;return u.current="",m.current="",l.current=!1,await g(e,t),!0}if(n.isPasteEnd&&!n.isPasteStart&&!l.current)return!0;const r=e.slice(t.length);if(r.length>0){const e=await detectDroppedImageFile(r);if(e)return a(e,t),!0}return!1},[t,g,h,a]),resetPasteState:re(()=>{l.current=!1,u.current="",m.current="",d.current&&(clearTimeout(d.current),d.current=null)},[]),isPasting:re(()=>l.current,[])}}__name(saveTempImage,"saveTempImage"),Gn(),Qr(),tn(),$r(),Ir(),__name(accumulateDelta,"accumulateDelta"),__name(useBracketedPaste,"useBracketedPaste"),$r(),tn(),tn();var m_=["code --wait","cursor --wait","nano"],p_=["code","cursor","subl","atom","zed"];function ensureWaitFlag(e){const t=e.split(" ").filter(e=>e.length>0),n=t[0];return p_.some(e=>n===e||n.endsWith(`/${e}`))?t.some(e=>"--wait"===e||"-w"===e)?e:`${n} --wait ${t.slice(1).join(" ")}`.trim():e}function isCommandAvailable(e){try{const t=e.split(" ")[0],n="win32"===process.platform?"where":"command -v";return L(`${n} ${t}`,{stdio:"ignore",encoding:"utf-8"}),!0}catch{return!1}}function findFallbackEditor(){for(const e of m_)if(isCommandAvailable(e))return e;return null}__name(ensureWaitFlag,"ensureWaitFlag"),__name(isCommandAvailable,"isCommandAvailable"),__name(findFallbackEditor,"findFallbackEditor");var g_=class extends Error{static{__name(this,"NoEditorError")}constructor(){super("No editor configured"),this.name="NoEditorError"}};async function openInEditor2(e){let t=process.env.EDITOR||process.env.VISUAL||null;if(!t&&("true"===process.env.COMMAND_CODE_DISABLE_EDITOR_FALLBACK||(t=findFallbackEditor()),!t))throw new g_;t=ensureWaitFlag(t);const r=n(S(),`commandcode-${Date.now()}.md`);return await B(r,e),new Promise((e,n)=>{const o=t.split(" ").filter(e=>e.length>0),s=o[0],i=o.slice(1),a=D(s,[...i,r],{stdio:"inherit"});a.on("close",async()=>{try{const t=await z(r,"utf-8");await H(r),e(t.trimEnd())}catch(e){n(e)}}),a.on("error",async e=>{try{await H(r)}catch{}n(e)})})}function useExternalEditor({input:e,setInput:t,setInputKey:n,onEditorClose:r}){const[o,s]=Z(!1),[i,a]=Z(null),l=re(async()=>{if(!o){s(!0),a(null);try{const o=e.replace(/\n+$/,""),s=await openInEditor2(o);t(s),n(e=>e+1),r?.()}catch(e){a(e instanceof g_?"No text editor found. Set your EDITOR environment variable.\n\nSee: https://commandcode.ai/core-concepts/interactive-mode#setting-up-your-editor":`Editor error: ${e instanceof Error?e.message:String(e)}`)}finally{s(!1)}}},[e,t,r,o]),u=re(()=>{a(null)},[]);return{isEditorOpen:o,editorError:i,handleOpenInEditor:l,clearEditorError:u}}__name(function getNoEditorMessage(){return"No text editor found. Set your EDITOR environment variable.\n\nSee: https://commandcode.ai/core-concepts/interactive-mode#setting-up-your-editor"},"getNoEditorMessage"),__name(openInEditor2,"openInEditor"),__name(useExternalEditor,"useExternalEditor"),tn();var h_=__name((e={})=>{const{enabled:t=!0}=e,[n,r]=Z(null),o=ee(!1);return te(()=>{if(!t||o.current)return;let e=!0;return o.current=!0,rk().then(t=>{e&&r(t)}),()=>{e=!1}},[t]),{pr:n}},"usePRDetection");function loadGitignore(e){const t=mt(),r=n(e,".gitignore");if(k(r))try{const e=_(r,"utf8");t.add(e)}catch{}return t.add(".git"),t}kr(),tn(),kr(),__name(loadGitignore,"loadGitignore");var f_=__name(({onSelectFile:e,onClose:t,searchQuery:o=""})=>{const[i,l]=Z(process.cwd()),[u,d]=Z([]),[m,g]=Z(0),[h,f]=Z(0),y=o.trim()?15:10,w=re((e,t=process.cwd())=>{if(!e.trim())return[];const r=loadGitignore(t);if(e.endsWith("/")){const o=n(t,e);try{const e=I(o),i=[];return e.forEach(e=>{const a=n(o,e);try{const e=N(a),n=s(t,a);if(r.ignores(n))return;i.push({name:n,path:a,isDirectory:e.isDirectory()})}catch{}}),i.sort((e,t)=>e.isDirectory&&!t.isDirectory?-1:!e.isDirectory&&t.isDirectory?1:e.name.localeCompare(t.name)),i.slice(0,50)}catch{}}if(e.includes("/")){const o=e.split("/"),i=o.pop()||"",a=n(t,o.join("/"));try{const e=I(a),o=[],l=i.toLowerCase();return e.forEach(e=>{const u=e.toLowerCase();if(!i||u.includes(l)){const i=n(a,e);try{const e=N(i),n=s(t,i);if(r.ignores(n))return;o.push({name:n,path:i,isDirectory:e.isDirectory()})}catch{}}}),o.sort((e,t)=>e.isDirectory&&!t.isDirectory?-1:!e.isDirectory&&t.isDirectory?1:e.name.localeCompare(t.name)),o.slice(0,50)}catch{}}const o=[],i=e.toLowerCase(),a=__name((e,l=0)=>{if(!(l>8))try{I(e).forEach(u=>{const d=n(e,u);try{const e=N(d),n=s(t,d);if(r.ignores(n))return;const m=n.toLowerCase();(u.toLowerCase().includes(i)||m.includes(i))&&o.push({name:n,path:d,isDirectory:e.isDirectory()}),e.isDirectory()&&"node_modules"!==u&&a(d,l+1)}catch(e){}})}catch(e){}},"searchRecursively");return a(t),o.sort((e,t)=>{const n=e.name.toLowerCase(),r=t.name.toLowerCase(),o=n===i,s=r===i;if(o&&!s)return-1;if(!o&&s)return 1;const a=n.split("/").pop()||"",l=r.split("/").pop()||"",u=a.includes(i),d=l.includes(i);if(u&&!d)return-1;if(!u&&d)return 1;const m=e.name.split("/").length,g=t.name.split("/").length;return m!==g?m-g:e.name.localeCompare(t.name)}),o.slice(0,50)},[]),S=re(e=>{try{const t=I(e),o=[],i=process.cwd(),a=loadGitignore(i);"/"!==e&&o.push({name:"..",path:r(e),isDirectory:!0}),t.forEach(t=>{const r=n(e,t);try{const e=N(r),n=s(i,r);if(a.ignores(n))return;o.push({name:t,path:r,isDirectory:e.isDirectory()})}catch{}}),o.sort((e,t)=>e.isDirectory&&!t.isDirectory?-1:!e.isDirectory&&t.isDirectory?1:e.name.localeCompare(t.name)),d(o),g(0),f(0)}catch{}},[]);te(()=>{if(o.trim()){const e=w(o);d(e),g(0),f(0)}else S(i)},[i,S,o,w]),le((n,r)=>{if(r.escape)t();else if(r.upArrow)g(e=>{const t=Math.max(0,e-1);return t<h&&f(t),t});else if(r.downArrow)g(e=>{const t=Math.min(u.length-1,e+1);return t>=h+y&&f(t-y+1),t});else{if(r.rightArrow){const e=u[m];if(!e)return;return void(e.isDirectory&&!o.trim()&&l(a(e.path)))}if(r.return){const t=u[m];if(!t)return;return void e(t.path)}}});const E=u.slice(h,h+y);return J.createElement(oe,{flexDirection:"column",paddingLeft:1},J.createElement(oe,{marginBottom:1,flexDirection:"column"},J.createElement(se,{color:Xn.DIM},o.trim()?`Searching for: "${o}"`:`Files: ${i}`),J.createElement(se,{color:Xn.DIM},o.trim()?"↑↓ navigate • Enter to select • Esc to close":"↑↓ navigate • → to open folder • Enter to select • Esc to close")),0===E.length?J.createElement(se,{color:Xn.DIM},o.trim()?`No files found matching "${o}"`:"No files found in this directory"):E.map((e,t)=>{const n=h+t,r=e.name,o=n===m;return J.createElement(se,{key:e.path,color:o?Xn.GREEN:Xn.DIM},e.isDirectory?`${r}/`:r)}))},"FileList");tn(),sn(),Vr(),kr(),tn(),kr();var y_=__name(({usage:e})=>{if(!e)return null;const t=Math.min(e.current/e.limit*100,100),n=Math.max(0,Math.round(90-t));if(n>20)return null;const r=__name(e=>e>=90?Xn.RED:e>=70?Xn.YELLOW:Xn.DIM,"getColor"),o=t>=90?6:Math.round(t/100*6),s=6-o,i=Pe.square.repeat(o),a=Pe.squareLightShade.repeat(s),l=r(t);return J.createElement(oe,{paddingRight:3},J.createElement(se,{color:l},`Context left before auto-compact ${n}% `),J.createElement(se,{color:l},i),s>0&&J.createElement(se,{color:Xn.DIM},a))},"ContextUsage");tn(),Mo(),kr();var w_=__name(()=>{const[e,t]=Z("continuous learning"),[n,r]=Z(!1),[o,s]=Z(!1),i=ee([]),a=ee(0),l=ee(null),u=ee(!1);te(()=>{const e=__name(e=>"analyzing"===e.type?(u.current=!0,r(!0),s(!1),i.current=[],a.current=0,l.current&&(clearTimeout(l.current),l.current=null),void t(e.message)):u.current&&"analyzed"!==e.type?void i.current.push(e):"analyzed"===e.type?(u.current=!1,void(i.current.length>0?(a.current=0,n()):(r(!1),s(!1),t("continuous learning")))):void 0,"handleNewEvent"),n=__name(()=>{if(a.current>=i.current.length)return r(!1),s(!1),t("continuous learning"),void(i.current=[]);const e=i.current[a.current];t(e.message);const o="learned"===e.type||"refactored"===e.type;s(o);const u="learned"===e.type||"refactored"===e.type||"no_learnings"===e.type||"error"===e.type?15e3:2e3;l.current=setTimeout(()=>{a.current++,n()},u)},"cycleThroughNextEvent");return Av.on("new-event",e),()=>{Av.off("new-event",e),l.current&&clearTimeout(l.current)}},[]);const d=` ${n?Pe.squareSmallFilled:Pe.squareSmall} TASTE`,m=9+e.length+d.length>vo;let g=e;g=truncateString(m?{text:e,maxChars:vo}:{text:e,maxChars:vo-d.length-9-10});const h=o?void 0:Xn.DIM;return J.createElement(oe,{paddingRight:2},!m&&J.createElement(J.Fragment,null,J.createElement(BracketWrap,{color:Xn.DIM},"ctrl+t"),J.createElement(se,{color:Xn.DIM}," ")),J.createElement(se,{color:h},g),!m&&J.createElement(se,{color:er.TEXT},d))},"LearningFeedMini");tn(),kr();var S_=__name(({mode:e,pendingExitKey:t})=>t?J.createElement(se,{color:Xn.DIM},"Press Ctrl+C again to exit"):"auto-accept"===e?J.createElement(oe,{flexDirection:"row"},J.createElement(se,{color:gr},"» accept edits on "),J.createElement(BracketWrap,{color:Xn.DIM},"shift+tab")):"plan"===e?J.createElement(oe,{flexDirection:"row"},J.createElement(se,{color:pr},"plan mode "),J.createElement(BracketWrap,{color:Xn.DIM},"shift+tab")):J.createElement(se,{color:Xn.DIM},"? for shortcuts"),"ModeIndicator");tn(),kr(),qr();var b_=__name(({prInfo:e,showSeparator:t=!0})=>{if(!e)return null;if("OPEN"!==e.state&&"MERGED"!==e.state)return null;const n="OPEN"===e.state?Xn.DIM:hr.MERGED;return J.createElement(J.Fragment,null,t&&J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,{color:n},"PR "),J.createElement(Dr,{url:e.url,text:`#${e.number}`,color:n}))},"PRLinkBadge"),E_=__name(({indicator:e,showSeparator:t=!0})=>e?.visible?J.createElement(J.Fragment,null,t&&J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,{color:"connected"===e.type?Xn.GREEN:Xn.YELLOW},e.message)):null,"ConnectionIndicatorBadge"),C_=__name(({termWidth:e,indicatorText:t,isIDEIndicator:n,permissionMode:r="standard",prInfo:o,tasteLearning:s,contextUsage:i,connectionIndicator:a,pendingExitKey:l,updateStatus:u,updateFailedInfo:d,currentProvider:m,showProviderInfo:g,isBashMode:h,shareInfo:f,showShareNotification:y,unshareNotificationMessage:w,tasteNotificationMessage:S,creditWarning:E})=>{const C=e>=60;return J.createElement(J.Fragment,null,J.createElement(oe,{flexDirection:"column",paddingLeft:2},"auto-accept"!==r&&"plan"!==r||l?J.createElement(oe,{flexDirection:"row",justifyContent:"space-between",width:e-1},J.createElement(oe,{flexDirection:"row",columnGap:0},n&&!l?J.createElement(se,{color:cr},t):J.createElement(S_,{mode:r,pendingExitKey:l}),!l&&J.createElement(b_,{prInfo:o}),!l&&J.createElement(E_,{indicator:a})),C&&J.createElement(oe,{flexDirection:"column",alignItems:"flex-end"},s&&J.createElement(w_,null),i&&J.createElement(y_,{usage:i}))):J.createElement(J.Fragment,null,J.createElement(oe,{flexDirection:"row",justifyContent:"space-between",width:e-1},J.createElement(S_,{mode:r}),C&&s&&J.createElement(w_,null)),J.createElement(oe,{flexDirection:"row",justifyContent:"space-between",width:e-1},J.createElement(oe,{flexDirection:"row",columnGap:0},J.createElement(se,{color:n?cr:Xn.DIM},t),J.createElement(b_,{prInfo:o}),J.createElement(E_,{indicator:a})),C&&i&&J.createElement(y_,{usage:i}))),(u||d||g&&m)&&J.createElement(oe,{flexDirection:"row",columnGap:1},u&&J.createElement(se,null,Pe.tick," ","Command Code"," updated:"," ",J.createElement(se,{color:Xn.DIM},"v",u.updatedFrom),J.createElement(se,{color:Xn.DIM}," ",Pe.arrowRight," "),J.createElement(se,null,"v",u.updatedTo)),!u&&d&&J.createElement(se,{color:Xn.YELLOW,dimColor:!0},Pe.info," Update available:"," ",d.currentVersion," ",Pe.arrowRight," ",d.latestVersion),g&&m&&J.createElement(se,{color:Xn.GREEN,dimColor:!0},Pe.bullet," Provider:"," ",getProviderDisplayName(m)))),h&&J.createElement(oe,{paddingLeft:2},J.createElement(se,{color:Xn.GREEN},"! for bash mode")),y&&f&&J.createElement(oe,{paddingLeft:2},J.createElement(se,{color:Zn},"SHARED: ",f.url," (copied to clipboard)")),w&&J.createElement(oe,{paddingLeft:2},J.createElement(se,{color:w.includes("NOT SHARED")?Xn.RED:Zn},w)),S&&J.createElement(oe,{paddingLeft:2},J.createElement(se,{color:Zn},S)),E&&J.createElement(oe,{paddingLeft:2},J.createElement(se,{color:Xn.YELLOW},Pe.warning," ",E)))},"BottomIndicator");tn(),Mo(),kr();var v_=12,k_=__name(e=>{const t=new Date(e),n=(new Date).getTime()-t.getTime(),r=Math.floor(n/6e4),o=Math.floor(n/36e5),s=Math.floor(n/864e5);return r<1?"just now":r<60?`${r} min ago`:o<24?`${o}h ago`:`${s}d ago`},"formatRelativeTime"),T_=__name(e=>e.replace(/\s+/g," ").trim(),"normalizeSummary"),__=__name(e=>truncateString({text:T_(e),maxChars:Co}),"truncateMessage"),x_=__name(e=>e.title?T_(e.title):__(e.firstMessage),"getSessionSummary"),P_=__name(({onSelectSession:e,onClose:t})=>{const[n,r]=Z([]),[o,s]=Z(0),[i,a]=Z(0),[l,u]=Z(!0),[d,m]=Z(!1),[g]=Z(()=>getCurrentGitBranch());te(()=>{__name(async()=>{u(!0);const e=await _C.listSessions();r(e),u(!1)},"loadSessions")()},[]);const h=d&&g?n.filter(e=>e.gitBranch===g):n;if(le((n,r)=>{if(!r.escape)return r.ctrl&&"b"===n?(m(e=>!e),s(0),void a(0)):void(r.upArrow?s(e=>{const t=Math.max(0,e-1);return t<i&&a(t),t}):r.downArrow?s(e=>{const t=Math.min(h.length-1,e+1);return t>=i+v_&&a(t-v_+1),t}):r.return&&h.length>0&&o<h.length&&e(h[o].id));t()}),l)return J.createElement(oe,{flexDirection:"column",paddingLeft:2},J.createElement(se,{color:Xn.GRAY},"Loading sessions..."));if(0===h.length)return J.createElement(oe,{flexDirection:"column",paddingLeft:2},J.createElement(se,{color:Xn.GRAY},d&&g?`No sessions found for branch "${g}"`:"No previous sessions found"),J.createElement(se,{color:Xn.DIM},d?"Press ctrl+b to show all branches, ESC to cancel":"Press ESC to go back"));const f=h.slice(i,i+v_);return J.createElement(oe,{flexDirection:"column",paddingLeft:1,width:"100%"},J.createElement(se,{color:Xn.CYAN,bold:!0},"Resume Session"),J.createElement(oe,{marginTop:1}),J.createElement(oe,{columnGap:2,marginBottom:1},J.createElement(oe,{width:5},J.createElement(se,{color:Xn.GRAY}," ")),J.createElement(oe,{width:13},J.createElement(se,{color:Xn.GRAY},"Modified")),J.createElement(oe,{width:20},J.createElement(se,{color:Xn.GRAY},"Git Branch")),J.createElement(oe,{width:11},J.createElement(se,{color:Xn.GRAY},"# Messages")),J.createElement(oe,null,J.createElement(se,{color:Xn.GRAY},"Summary"))),J.createElement(oe,{columnGap:2},J.createElement(oe,{flexDirection:"column",width:5},f.map((e,t)=>{const n=i+t;return J.createElement(se,{key:`sel-${n}`,color:o===n?Xn.WHITE:Xn.GRAY},o===n?`${Pe.pointer} ${n+1}.`:` ${n+1}.`)})),J.createElement(oe,{flexDirection:"column",width:13},f.map((e,t)=>{const n=i+t;return J.createElement(se,{key:`mod-${e.id}`,color:o===n?Xn.WHITE:Xn.GRAY},k_(e.lastModified))})),J.createElement(oe,{flexDirection:"column",width:20},f.map((e,t)=>{const n=i+t;return J.createElement(se,{key:`branch-${e.id}`,color:o===n?Xn.WHITE:Xn.GRAY,wrap:"truncate-end"},e.gitBranch||"-")})),J.createElement(oe,{flexDirection:"column",width:11},f.map((e,t)=>{const n=i+t;return J.createElement(se,{key:`msg-${e.id}`,color:o===n?Xn.WHITE:Xn.GRAY},e.messageCount)})),J.createElement(oe,{flexDirection:"column"},f.map((e,t)=>{const n=i+t;return J.createElement(se,{key:`summary-${e.id}`,color:o===n?Xn.WHITE:Xn.GRAY,wrap:"truncate-end"},x_(e))}))),J.createElement(oe,{marginTop:1}),h.length>v_&&J.createElement(se,{color:Xn.DIM},"Showing ",i+1,"–",Math.min(i+v_,h.length)," ","of ",h.length,i>0?" · ↑ more":"",i+v_<h.length?" · ↓ more":""),J.createElement(se,{color:Xn.DIM},"↑↓ navigate · Enter select · ctrl+b ",d?`[branch: ${g??"unknown"}]`:"branch filter"," · ESC cancel"))},"SessionsResumeTable");function getImageHintText({selectedIndex:e,imageCount:t,inHistory:n}){return-1!==e?t>1?"← → · Delete to remove · Esc to deselect":"Delete to remove · Esc to deselect":n?"↓ · ↑ imgs":"↑ to select"}function buildImageRows({imageCount:e,rowWidth:t}){const n=[];let r=[],o=0;for(let s=0;s<e;s++){const e=`[Image #${s+1}]`.length,i=e+(r.length>0?1:0);r.length>0&&o+i>t?(n.push(r),r=[s],o=e):(r.push(s),o+=i)}return r.length>0&&n.push(r),n}function shouldSelectImageOnUpArrow({isOnFirstLine:e,imageCount:t,selectedImageIndex:n,historyIndex:r}){return e&&t>0&&-1===n&&-1===r}function nextImageIndex({currentIndex:e,imageCount:t}){return e===t-1?0:e+1}function prevImageIndex({currentIndex:e,imageCount:t}){return 0===e?t-1:e-1}function removeImageAt({images:e,index:t}){const n=e.filter((e,n)=>n!==t);return{remainingImages:n,nextSelectedIndex:n.length>0?n.length-1:-1}}function ImageLabel({index:e,isSelected:t,filePath:n,showSpaceBefore:r}){const o=`[Image #${e+1}]`,s=n?createOSC8Link(`file://${n}`,o,!1):o;return J.createElement(se,null,r?" ":"",t?J.createElement(se,{inverse:!0},o):s)}function ImageRowsDisplay({detectedImages:e,selectedImageIndex:t,imageTempPaths:n,termWidth:r,inHistory:o}){if(0===e.length)return null;const s=getImageHintText({selectedIndex:t,imageCount:e.length,inHistory:o}),i=Math.max(1,r-(s.length+2)),a=buildImageRows({imageCount:e.length,rowWidth:i});return J.createElement(oe,{flexDirection:"column",width:"100%",alignItems:"flex-end"},a.map((e,r)=>J.createElement(oe,{key:r,flexDirection:"row"},J.createElement(oe,{flexShrink:0,marginRight:1},0===r&&J.createElement(se,{color:Xn.DIM},s)),J.createElement(oe,{flexDirection:"row"},e.map((e,r)=>J.createElement(ImageLabel,{key:e,index:e,isSelected:e===t,filePath:n[e],showSpaceBefore:r>0}))))))}tn(),kr(),tn(),__name(getImageHintText,"getImageHintText"),__name(buildImageRows,"buildImageRows"),__name(shouldSelectImageOnUpArrow,"shouldSelectImageOnUpArrow"),__name(nextImageIndex,"nextImageIndex"),__name(prevImageIndex,"prevImageIndex"),__name(removeImageAt,"removeImageAt"),Hr(),__name(ImageLabel,"ImageLabel"),__name(ImageRowsDisplay,"ImageRowsDisplay"),tn();var A_=__name((e={})=>{const{enabled:t=!0,paused:n=!1}=e,[r,o]=Z(null),[s,i]=Z(!1),a=ee(!1),l=ee(null),u=ee(n),[d,m]=Z(!1),[g,h]=Z("connected"),f=ee(null),y=ee(null),w=re((e,t)=>{y.current&&(clearTimeout(y.current),y.current=null),h(e),m(!0),void 0!==t&&(y.current=setTimeout(()=>{m(!1)},t))},[]),S=re(()=>{y.current&&(clearTimeout(y.current),y.current=null)},[]),E=re(async(e=!1)=>{if(!a.current){a.current=!0;try{let t=l.current,n=t?.isConnected??!1;if(!n){t?.disconnect(),t=new rC,l.current=t;const r=e?200:500;n=await t.connect(r)}const r=f.current;if(null===r?n&&w("connected",3e3):r!==n&&(n?w("connected",2e3):w("disconnected",5e3)),f.current=n,i(n),n&&t){const n=e?500:1e3,r=await t.getContext(n);null!==r||t.isConnected||(t.disconnect(),l.current=null),o(r)}else o(null)}catch{!0===f.current&&w("disconnected",5e3),f.current=!1,i(!1),o(null),l.current?.disconnect(),l.current=null}finally{a.current=!1}}},[w]);te(()=>{const e=u.current;u.current=n,e&&!n&&t&&null!==VE()&&E(!1)},[n,t,E]),te(()=>{if(!t)return;if(null===VE())return;let e=null,n=!1,r=0;function schedule(t){n||(e=setTimeout(()=>{tick(!1)},t))}async function tick(e){if(u.current)return void schedule(500);if(await E(e),n)return;if(l.current?.isConnected)return r=0,void schedule(500);r+=1;const t=Math.min(r,6);schedule(Math.min(3e4,500*2**t)+250*Math.random())}return __name(schedule,"schedule"),__name(tick,"tick"),tick(!0),()=>{n=!0,e&&clearTimeout(e),S(),l.current?.disconnect(),l.current=null}},[t,E,S]);const C={visible:d,message:"connected"===g?`IDE ${Pe.tick}`:"run /ide",type:g};return{context:r,connected:s,refresh:E,connectionIndicator:C}},"useVSCodeContext");tn();var I_=__name(e=>{if(!e.activeFile&&!e.selection)return"";const t=["<ide-context>"];if(e.activeFile){const{relativePath:n,language:r,cursor:o}=e.activeFile;t.push(`File: ${n} (${r}, line ${o.line})`)}if(e.selection){const{text:n,startLine:r,endLine:o}=e.selection,s=e.activeFile?.language??"";t.push(`Selected lines ${r}-${o}:`),t.push(`\`\`\`${s}`);const i=n.replace(/```/g,"` ` `").replace(/<\/ide-context>/gi,"&lt;/ide-context&gt;");t.push(i),t.push("```")}return t.push("</ide-context>"),t.join("\n")+"\n"},"formatContextForPrompt");tn();var N_=__name((e,t)=>!(!e||!t?.selection&&!t?.activeFile?.relativePath),"hasIDEContext"),R_=__name((e,t,n)=>{const r=e?t?.selection:null;if(r)return`${r.lineCount} lines selected`;const o=e?t?.activeFile:null;if(o?.relativePath){const e=o.relativePath.split("/").pop()||"",t=n<80?15:n<120?25:40;return`In ${e.length>t?e.slice(0,t-1)+"…":e}`}return"? for shortcuts"},"getIndicatorText"),M_=["","","[118;5u"];function removeAltPCharacter(e){return e.includes("π")?e.replace(/π/g,""):null}function isPrecededByWhitespace(e){return!e||" "===e||"\n"===e||"\t"===e}__name(removeAltPCharacter,"removeAltPCharacter"),__name(isPrecededByWhitespace,"isPrecededByWhitespace");var L_=__name(()=>J.createElement(oe,{flexDirection:"column",paddingLeft:1},J.createElement(se,{color:Xn.DIM,bold:!0},"Available Shortcuts:"),J.createElement(oe,{columnGap:4},J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.DIM},"! for bash mode"),J.createElement(se,{color:Xn.DIM},"/ for commands"),J.createElement(se,{color:Xn.DIM},"@ for file paths"),J.createElement(se,{color:Xn.DIM},"shift + tab to toggle auto-accept")),J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.DIM},"double tap esc to clear input"),J.createElement(se,{color:Xn.DIM},"ctrl + j / shift + ⏎ for newline"),J.createElement(se,{color:Xn.DIM},"ctrl + g to open in editor"),J.createElement(se,{color:Xn.DIM},"ctrl + z to suspend")))),"ShortcutMenu"),$_=__name(({input:e,onSubmit:t,setInput:n,showCursor:r=!0,placeholder:o="Enter your input…",showFileList:i,setShowFileList:a,fileSearchQuery:l,setFileSearchQuery:u,onCommand:d,contextUsage:m,tasteLearning:g=!1,tasteUsage:h=!1,shareInfo:f,showShareNotification:y,unshareNotificationMessage:w,tasteNotificationMessage:S,creditWarning:E,updateStatus:C,updateFailedInfo:v,currentProvider:k,showProviderInfo:T,permissionMode:_="standard",onToggleAutoAccept:x,hintMessage:P,historyManager:A,pendingExitKey:I=null,onOverlayVisibilityChange:N,onDoubleEscapeEmpty:R,onAltP:M,isProcessing:L=!1,ideContextEnabled:$=!0})=>{const[D,O]=Z(0),[F,q]=Z(!1),[j,B]=Z(!1),[U,z]=Z(!1),[H,W]=Z(!1),[G,V]=Z(""),[Q,K]=Z(!1),Y=ee(0),X=ee(0),[ie,ce]=Z([]),[ue,de]=Z([]),[me,pe]=Z(-1),[ge,he]=Z(""),fe=ee(!1),ye=ee(!1),we=ee(void 0),[Se,be]=Z(-1),[Ee,Ce]=Z(""),ve=ee(0),{isEditorOpen:ke,editorError:Te,handleOpenInEditor:_e,clearEditorError:xe}=useExternalEditor({input:e,setInput:n,setInputKey:O,onEditorClose:__name(()=>{fe.current=!1},"onEditorClose")}),{handlePaste:Ae,resetPasteState:Ie,isPasting:Ne}=useBracketedPaste({input:e,detectedContent:ie,setInput:n,setDetectedImages:de,setDetectedContent:ce,incrementInputKey:__name(()=>O(e=>e+1),"incrementInputKey")}),{context:Re,connected:Me,refresh:Le,connectionIndicator:$e}=A_({enabled:$,paused:L}),{stdout:De}=ae(),Oe=De?.columns??80,{pr:Fe}=h_();te(()=>{const e=i||H||Q;N?.(e)},[i,H,Q,N]);const qe=re(()=>{de([]),pe(-1)},[]),je=re(()=>{n(""),B(!1),W(!1),V(""),K(!1),ce([]),qe(),he(""),Ie(),be(-1),Ce(""),O(e=>e+1)},[n,Ie,qe]),Be=re(()=>{fe.current=!0;const{text:t,cursor:r}=insertTextAt(e,ve.current,"\n");n(t),we.current=r,O(e=>e+1),setTimeout(()=>{fe.current=!1},0)},[e,n]);le(async(t,r)=>{if(-1!==me&&r.leftArrow)return void pe(prevImageIndex({currentIndex:me,imageCount:ue.length}));if(-1!==me&&r.rightArrow)return void pe(nextImageIndex({currentIndex:me,imageCount:ue.length}));if(r.upArrow){if(i||H||Q)return;const t=e.indexOf("\n"),r=-1===t||ve.current<=t;if(shouldSelectImageOnUpArrow({isOnFirstLine:r,imageCount:ue.length,selectedImageIndex:me,historyIndex:Se}))return void pe(ue.length-1);if(-1!==me&&pe(-1),0!==e.length&&-1===Se&&!r)return;const o=A?.count()??0;if(0===o)return;-1===Se&&Ce(e);const s=Math.min(Se+1,o-1);return void(s!==Se&&(be(s),n(A?.getAt(s)||""),O(e=>e+1)))}if(r.downArrow){if(i||H||Q)return;if(-1===Se)return;const t=e.lastIndexOf("\n");if(!(-1===t||ve.current>t))return;const r=Se-1;return be(r),n(-1===r?Ee:A?.getAt(r)||""),void O(e=>e+1)}if(""===t||r.ctrl&&"c"===t)return void qe();if(isCtrlKey({inputChar:t,key:r,letter:"g",ctrlCode:7}))return fe.current=!0,void _e();if(getIsExpandToolShortcut(r,t))return fe.current=!0,n(e),O(e=>e+1),void setTimeout(()=>{fe.current=!1},0);if(isNewlineShortcutKey({inputChar:t,key:r,isPasting:Ne()}))return ye.current=!0,Be(),void setTimeout(()=>{ye.current=!1},0);if(r.meta&&r.backspace)return void je();if(r.meta&&"w"===t)return fe.current=!0,void je();const o=r.ctrl&&"v"===t||M_.includes(t),s=r.meta&&"v"===t;if(o||s){if(o&&"darwin"===process.platform){const t=e;fe.current=!0;const r=await detectClipboardImage();return r&&(de(e=>[...e,r]),n(t),O(e=>e+1)),void(fe.current=!1)}}else if(!r.ctrl&&!r.meta||"u"!==t){if(r.ctrl&&"z"===t?.toLowerCase())return z(!0),void setTimeout(()=>{process.kill(process.pid,"SIGTSTP")},100);if(-1!==me&&(r.delete||r.backspace)){const{remainingImages:e,nextSelectedIndex:t}=removeImageAt({images:ue,index:me});return de([...e]),void pe(t)}if(r.escape){if(-1!==me)return void pe(-1);if(H)return;if(Q)return K(!1),n(ge),void O(e=>e+1);const t=Date.now();return t-Y.current<500?(e.length>0?je():R?.(),Y.current=0,X.current=0):(Y.current=t,F||j||(X.current=t)),q(!1),void B(!1)}F&&(r.backspace||r.delete)&&0===e.length&&q(!1)}});const Ue=re(async t=>{if(ke)return;const r=removeAltPCharacter(t);if(null!==r)return n(r),void M?.();const o=processBracketedPaste(t);if((o.isPasteStart||o.isPasteEnd||Ne())&&await Ae(t))return;if(fe.current)return void(fe.current=!1);-1!==Se&&be(-1);const s=1===t.length,l=t.slice(-1);if(s){if("?"===l&&!F)return q(!0),n(""),void O(e=>e+1);if("!"===l&&!j)return q(!1),B(!0),n(""),void O(e=>e+1)}if("/"!==l||H||"/"!==t||(W(!0),V("")),H&&!t.startsWith("/")&&(W(!1),V("")),H&&t.startsWith("/")){const e=t.substring(1);e.includes(" ")?(W(!1),V("")):V(e)}"@"!==l||i||isPrecededByWhitespace(t.length>1?t[t.length-2]:"")&&(a(!0),u(""));const d=t.lastIndexOf("@");if(t.length<e.length&&-1!==d&&" "===e.charAt(e.length-1)&&" "!==t.charAt(t.length-1)){const e=t.substring(d+1),n=!e.includes(" "),r=d>0?t[d-1]:"";n&&isPrecededByWhitespace(r)&&(a(!0),u(e))}if(i)if(t.length<e.length){const e=t.lastIndexOf("@");if(-1===e)a(!1),u("");else{const n=t.substring(e+1);u(n)}}else{const e=t.lastIndexOf("@");if(-1!==e){const n=t.substring(e+1),r=n.indexOf(" ");if(-1!==r){const e=n.substring(0,r);u(e),a(!1)}else u(n)}}F&&(t!==e||t.length<e.length)&&q(!1),Te&&xe(),0===t.length&&(B(!1),W(!1),V(""),K(!1),ce([]),u(""),he(""),Ie()),n(t)},[F,e,n,i,a,H,j,ue,Se,Ae,Ie,M,Te,xe,ke]),ze=re(async()=>{if(Le(),X.current=0,F)return void q(!1);let n=e.trim();if(!j&&n.startsWith("/")&&d&&"handled"===(await d(n)).status)return A?.add(n),B(!1),W(!1),V(""),qe(),ce([]),be(-1),void Ce("");be(-1),Ce("");let r=[];const o=ue.length>0,s=ie.length>0;if(!j&&o&&(r=[...ue]),!j&&s){let e=n;ie.forEach((t,n)=>{const r=`[Text#${n+1}]`;e.includes(r)&&(e=e.replace(r,t))}),n=e}n.length>0&&A?.add(n);const i=Re?.selection?{lines:Re.selection.lineCount,file:Re.activeFile?.relativePath?.split("/").pop()??Re.activeFile?.path?.split("/").pop()??"unknown",ide:Qk[VE()??""]??"IDE"}:void 0;t({input:n,role:j?"bash":"user",images:r,ideContext:Re?I_(Re):void 0,ideHint:i}),B(!1),W(!1),V(""),qe(),ce([])},[t,d,F,e,j,ue,ie,A,Le,qe]),He=re(t=>{const r=s(process.cwd(),t);let o;if(i&&""!==l){const t=e.lastIndexOf("@");o=-1!==t?e.substring(0,t+1)+r+" ":r+" "}else o=`${e}${r} `;n(o),a(!1),u(""),O(e=>e+1)},[n,a,e,i,l,u]),We=re(()=>{a(!1),u("")},[a,u]),Ge=re(t=>{if("/resume"===t)A?.add(t),be(-1),Ce(""),he(e),W(!1),V(""),K(!0),n(""),O(e=>e+1);else{const e=Object.values(Tk).includes(t),r=_k.has(t);W(!1),V(""),e&&r?(A?.add(t),be(-1),Ce(""),n(""),O(e=>e+1),d&&d(t)):(n(t+" "),O(e=>e+1))}},[d,n,e,A]),Ve=re(e=>{W(!1),V(""),n(e+" "),O(e=>e+1)},[n]),Qe=re(()=>{W(!1),V(""),n(""),be(-1),Ce(""),O(e=>e+1)},[n]),Ke=re(e=>{K(!1),n(""),he(""),be(-1),Ce(""),O(e=>e+1),d&&d(`/resume:${e}`)},[d,n]),Ye=re(()=>{K(!1),n(ge),be(-1),Ce(""),O(e=>e+1)},[ge,n]),Je=re(e=>{ve.current=e,we.current=void 0},[]),Xe=ne(()=>{const t=Fe&&("OPEN"===Fe.state||"MERGED"===Fe.state);return"auto-accept"===_||"plan"===_||Me||t?!F&&!Q:!F&&0===e.length&&!j&&!Q},[F,e,j,Q,_,Me,Fe]),Ze=ee(new Map),et=ne(()=>ue.map((e,t)=>{if(Ze.current.has(e))return Ze.current.get(e)??null;const n=saveTempImage(e,t+1);return Ze.current.set(e,n),n}),[ue]),tt=__name(()=>F||i||H||Q||U?0:Xe||I||j?3:4,"getBottomMargin");return J.createElement(oe,{width:"100%",flexDirection:"column",marginBottom:tt()},!Q&&J.createElement(oe,{flexDirection:"column",width:"100%"},J.createElement(ImageRowsDisplay,{detectedImages:ue,selectedImageIndex:me,imageTempPaths:et,termWidth:Oe,inHistory:-1!==Se}),J.createElement(se,{color:j?Xn.GREEN:Xn.GRAY},Pe.line.repeat(Oe)),J.createElement(TextInput,{key:D,value:e,placeholder:ke?"Save and close the editor to continue...":o,onChange:Ue,onSubmit:()=>{if(!ye.current)return Date.now()-X.current<100?(X.current=0,void Be()):void(i||H||Q||ke||ze());ye.current=!1},showCursor:!ke&&r&&-1===me,onCursorChange:Je,initialCursor:we.current,prefix:`${j?"!":Pe.pointer} `,prefixColor:j?Xn.GREEN:Xn.WHITE}),J.createElement(se,{color:j?Xn.GREEN:Xn.GRAY},Pe.line.repeat(Oe))),F&&J.createElement(L_,null),U&&J.createElement(oe,{paddingTop:1},J.createElement(se,{color:Xn.YELLOW},"Command Code has been suspended. Run `fg` to bring\n\t\t\t\t\t\tCommand Code back.")),i&&J.createElement(f_,{onSelectFile:He,onClose:We,searchQuery:l}),H&&J.createElement(Pk,{onSelectCommand:Ge,onInsertCommand:Ve,onClose:Qe,searchQuery:G}),Q&&J.createElement(P_,{onSelectSession:Ke,onClose:Ye}),!H&&(Xe||I)&&J.createElement(C_,{termWidth:Oe,indicatorText:R_(Me,Re,Oe),isIDEIndicator:N_(Me,Re),permissionMode:_,prInfo:Fe,tasteLearning:g,contextUsage:m,connectionIndicator:$e,pendingExitKey:I,updateStatus:C,updateFailedInfo:v,currentProvider:k,showProviderInfo:T,isBashMode:j,shareInfo:f,showShareNotification:y,unshareNotificationMessage:w,tasteNotificationMessage:S,creditWarning:E}),Te&&J.createElement(oe,{paddingLeft:1,flexDirection:"column"},J.createElement(se,{color:Xn.YELLOW},Te)))},"InputBox");tn(),Mo(),kr();var D_=__name(({messages:e})=>0===e.length?null:J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(oe,{marginBottom:0},J.createElement(se,{color:nr,inverse:!0},` Queued (${e.length}) `)),e.map((e,t)=>J.createElement(oe,{key:t},J.createElement(se,{color:Xn.DIM},Pe.pointerSmall," "),J.createElement(se,{color:Xn.DIM},truncateString({text:e.displayMessage??e.input,maxChars:80}))))),"QueuedMessages"),O_=J.memo(({queuedMessages:e,isProcessing:t,executionState:n,status:r,input:o,setInput:s,onSubmit:i,showFileList:a,setShowFileList:l,fileSearchQuery:u,setFileSearchQuery:d,onCommand:m,outputTokens:g=0,contextUsage:h,tasteLearning:f,tasteUsage:y,shareInfo:w,showShareNotification:S,unshareNotificationMessage:E,tasteNotificationMessage:C,updateStatus:v,updateFailedInfo:k,creditWarning:T,currentProvider:_,showProviderInfo:x,permissionMode:P,onToggleAutoAccept:A,hintMessage:I,historyManager:N,pendingExitKey:R,onResetPendingExitKey:M,onDoubleEscapeEmpty:L,retryAttempt:$,onAltP:D})=>{const[O,F]=Z(0),q=ee(o);return te(()=>{R&&o!==q.current&&o.length>0&&M?.(),q.current=o},[o,R,M]),te(()=>{if(!t)return void F(0);const e=setInterval(()=>{F(e=>e+1e3)},1e3);return()=>{clearInterval(e)}},[t]),J.createElement(oe,{flexDirection:"column"},J.createElement(D_,{messages:e}),J.createElement(oe,{flexDirection:"row",justifyContent:"space-between"},J.createElement(oe,{flexDirection:"column"},(t||n.isExecuting)&&null===$&&J.createElement(r_,{tokens:g,timeElapsed:O,status:n.isExecuting?`Executing: ${n.currentCommand}`:r}),I&&J.createElement(oe,{marginLeft:1},J.createElement(se,{color:Xn.DIM}," ","⎿"," ","Tip: ",I)))),J.createElement($_,{input:o,setInput:s,onSubmit:i,placeholder:"Ask your question...",showFileList:a,setShowFileList:l,fileSearchQuery:u,setFileSearchQuery:d,onCommand:m,contextUsage:h,tasteLearning:f,tasteUsage:y,shareInfo:w,showShareNotification:S,unshareNotificationMessage:E,tasteNotificationMessage:C,updateStatus:v,updateFailedInfo:k,creditWarning:T,currentProvider:_,showProviderInfo:x,permissionMode:P,onToggleAutoAccept:A,hintMessage:I,historyManager:N,pendingExitKey:!R||t||n.isExecuting?null:R,onDoubleEscapeEmpty:L,onAltP:D,isProcessing:t}))});tn(),JS(),nb(),jr(),Vr();var F_=__name(({onComplete:e,onCancel:t})=>{const[n,r]=Z(!1),[o,s]=Z(""),{authState:i,statusMessage:a,browserUrl:l,apiKeyInput:u,setApiKeyInput:d,handleApiKeySubmit:m,cancel:g}=useAuthFlow({onSuccess:__name((t,n)=>{const o=t.userName&&"API Key"!==t.userName&&"Manual API Key"!==t.userName?t.userName:"";s(o),isInternalTeamFlagEnforced()?r(!0):e(!0,o?`Logged in as ${o}`:"Logged in successfully")},"onSuccess"),onFailure:__name((t,n)=>{e(!1,n)},"onFailure"),onCancel:__name(()=>{t()},"onCancel")});return le((t,r)=>{if(r.ctrl&&"c"===t){if(n)return void e(!0,o?`Logged in as ${o}. Note: Anthropic authentication skipped.`:"Logged in successfully. Note: Anthropic authentication skipped.");g()}}),n?J.createElement(Or,{onSuccess:()=>{e(!0,o?`Logged in as ${o} with Anthropic`:"Logged in successfully with Anthropic")},onCancel:()=>{e(!0,o?`Logged in as ${o}. Note: Anthropic authentication skipped.`:"Logged in successfully. Note: Anthropic authentication skipped.")},onFailure:t=>{e(!0,o?`Logged in as ${o}. Anthropic auth failed: ${t}`:`Logged in successfully. Anthropic auth failed: ${t}`)}}):J.createElement(ZS,{authState:i,statusMessage:a,browserUrl:l,apiKeyInput:u,setApiKeyInput:d,handleApiKeySubmit:m})},"LoginOverlay");async function discoverOAuthMetadata(e){const t=new g(e),n=`${t.protocol}//${t.host}`;try{const e=`${n}/.well-known/oauth-authorization-server`,t=await fetchWithTimeout(e,{method:"GET",headers:{Accept:"application/json"}});if(t.ok){const e=await t.json();if(e.authorization_endpoint&&e.token_endpoint)return{authorizationEndpoint:e.authorization_endpoint,tokenEndpoint:e.token_endpoint,registrationEndpoint:e.registration_endpoint,scopes:e.scopes_supported}}}catch(e){dlog("[MCP] OAuth discovery endpoint not available",e)}try{const e=`${n}/.well-known/openid-configuration`,t=await fetchWithTimeout(e,{method:"GET",headers:{Accept:"application/json"}});if(t.ok){const e=await t.json();if(e.authorization_endpoint&&e.token_endpoint)return{authorizationEndpoint:e.authorization_endpoint,tokenEndpoint:e.token_endpoint,registrationEndpoint:e.registration_endpoint,scopes:e.scopes_supported}}}catch(e){dlog("[MCP] OIDC discovery not available",e)}return null}async function checkServerAuthRequirements(e){try{const t=await fetchWithTimeout(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",method:"initialize",id:0,params:{protocolVersion:Cw,capabilities:{},clientInfo:vw}})});return 401===t.status||403===t.status?{requiresAuth:!0,metadata:await discoverOAuthMetadata(e)||void 0}:{requiresAuth:!1}}catch(e){return{requiresAuth:!1,error:`Server unreachable: ${e instanceof Error?e.message:String(e)}`}}}async function registerOAuthClient({registrationEndpoint:e,clientName:t,redirectUris:n}){try{const r=await fetchWithTimeout(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_name:t,redirect_uris:n,token_endpoint_auth_method:"none",grant_types:["authorization_code","refresh_token"],response_types:["code"]})});if(r.ok){const e=await r.json();return{clientId:e.client_id,clientSecret:e.client_secret}}}catch(e){dlog("[MCP] OAuth client registration failed",e)}return null}tn(),tn(),Lw(),xw(),Fw(),$w(),qw(),Qw(),Kw(),Yw(),tn(),Kw(),Yw(),Mw(),Vw(),tn(),Uw(),xw(),Bn(),__name(discoverOAuthMetadata,"discoverOAuthMetadata"),__name(checkServerAuthRequirements,"checkServerAuthRequirements"),__name(registerOAuthClient,"registerOAuthClient"),kr();var q_=__name(({onClose:e})=>{const[t,n]=Z([]),[r,o]=Z(!0),[s,i]=Z(0),[a,l]=Z("list"),[u,d]=Z(null),m=re(async()=>{o(!0);try{const e=await listMcpServers(),t=getMcpConnectionManager().getConnectedServers(),r=await Promise.all(e.map(async e=>{const n=t.find(t=>t.name===e.name);let r,o,s="disconnected";return!1===e.config.enabled?s="disabled":n&&"connected"===n.status?(s="connected",r=n.tools.length):n&&"error"===n.status?(s="error",o=n.error):e.config.oauth&&(s=await hasTokens(e.name)?"authenticated":"requires_auth"),{name:e.name,config:e.config,scope:e.scope,status:s,toolCount:r,error:o}}));n(r)}catch{}finally{o(!1)}},[]);te(()=>{m()},[m]);const g=ne(()=>{const e=[];for(const n of["local","project","user"])e.push(...t.filter(e=>e.scope===n));return e},[t]),h=g[s]??null;le((t,n)=>{if(n.ctrl&&"c"===t)e();else if(n.escape)"actions"===a||"confirm-remove"===a?(l("list"),d(null)):e();else if("list"===a){if(n.upArrow&&(i(e=>Math.max(0,e-1)),d(null)),n.downArrow){if(0===g.length)return;const e=Math.max(0,g.length-1);i(t=>Math.min(e,t+1)),d(null)}n.return&&h&&(l("actions"),d(null))}});const f=__name(e=>{switch(e){case"connected":return J.createElement(se,{color:Xn.GREEN},Pe.tick);case"authenticated":return J.createElement(se,{color:Xn.CYAN},Pe.tick);case"requires_auth":return J.createElement(se,{color:Xn.YELLOW},Pe.warning);case"error":return J.createElement(se,{color:Xn.RED},Pe.cross);default:return J.createElement(se,{color:Xn.GRAY},Pe.circle)}},"getStatusIcon"),y=__name(e=>{switch(e.status){case"connected":return"connected"+(void 0!==e.toolCount?` · ${e.toolCount} tools`:"");case"authenticated":return"authenticated · not connected";case"requires_auth":return"requires authentication";case"error":return e.error||"error";case"disabled":return"disabled";default:return"not connected"}},"getStatusText"),w=__name(e=>{switch(e){case"local":return"Local MCPs";case"project":return"Project MCPs";case"user":return"User MCPs"}},"getScopeLabel"),S=__name(e=>{switch(e){case"local":return"~/.commandcode/projects/*/mcp.json";case"project":return".mcp.json";case"user":return"~/.commandcode/mcp.json"}},"getScopePath"),E=__name(async e=>{if(h)if("back"!==e.value)if("connected"!==e.value)if("authenticated"!==e.value)if("connect"!==e.value)if("auth"!==e.value)if("remove"!==e.value)if("disable"!==e.value)if("enable"!==e.value);else{d({text:`Enabling ${h.name}...`,color:Xn.CYAN,loading:!0});try{if(!await updateMcpServerStatus({name:h.name,enabled:!0,scope:h.scope}))return void d({text:`${Pe.cross} Failed to enable ${h.name}, server may no longer exist in ${h.scope} scope`,color:Xn.YELLOW});await m(),d({text:`${Pe.tick} Enabled ${h.name}`,color:Xn.GREEN})}catch(e){d({text:`${Pe.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Xn.RED})}}else{d({text:`Disabling ${h.name}...`,color:Xn.CYAN,loading:!0});try{const e=getMcpConnectionManager();if(!await updateMcpServerStatus({name:h.name,enabled:!1,scope:h.scope}))return void d({text:`${Pe.cross} Failed to disable ${h.name}, server may no longer exist in ${h.scope} scope`,color:Xn.YELLOW});await e.disconnectServer(h.name),await m(),d({text:`${Pe.tick} Disabled ${h.name}`,color:Xn.GREEN})}catch(e){d({text:`${Pe.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Xn.RED})}}else l("confirm-remove");else{if(!h.config.oauth)return void d({text:"No OAuth configured for this server",color:Xn.YELLOW});d({text:`Authenticating ${h.name}...`,color:Xn.CYAN,loading:!0});try{const e={authorizationUrl:h.config.oauth.authorizationUrl,tokenUrl:h.config.oauth.tokenUrl,clientId:h.config.oauth.clientId,clientSecret:h.config.oauth.clientSecret,scopes:h.config.oauth.scopes},t=await performOAuthFlow(h.name,e,{onStatus:__name(()=>{},"onStatus")});if(t.success){d({text:`${Pe.tick} Authenticated with ${h.name}`,color:Xn.GREEN});try{const e=getMcpConnectionManager();await e.ensureServerConnection(h.name)}catch{}await m()}else d({text:`${Pe.cross} Auth failed: ${t.error}`,color:Xn.RED})}catch(e){d({text:`${Pe.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Xn.RED})}}else{d({text:`Connecting ${h.name}...`,color:Xn.CYAN,loading:!0});try{const e=getMcpConnectionManager();await e.ensureServerConnection(h.name),d({text:`${Pe.tick} Connected to ${h.name}`,color:Xn.GREEN}),await m()}catch(e){d({text:`${Pe.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Xn.RED})}}else d({text:"Already authenticated",color:Xn.GREEN});else d({text:"Already connected",color:Xn.GREEN});else l("list")},"handleActionSelect"),C=__name(async e=>{if(h)if("yes"===e.value)try{const e=getMcpConnectionManager();"connected"===h.status&&await e.disconnectServer(h.name),await removeMcpServer({name:h.name,scope:h.scope}),l("list"),await m(),i(e=>Math.min(e,Math.max(0,g.length-2)))}catch(e){d({text:`${Pe.cross} Failed: ${e instanceof Error?e.message:String(e)}`,color:Xn.RED}),l("actions")}else l("actions")},"handleRemoveConfirm");if(r)return J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Zn,bold:!0},"Manage MCP servers"),J.createElement(se,{color:Xn.DIM},"Loading..."));if("confirm-remove"===a&&h)return J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Xn.RED,bold:!0},"Remove ",h.name,"?"),J.createElement(se,{color:Xn.DIM},"This will remove the server from ",h.scope," config."),J.createElement(oe,{marginTop:1},J.createElement(at,{items:[{label:"Yes, remove",value:"yes"},{label:"Cancel",value:"no"}],onSelect:C,indicatorComponent:({isSelected:e})=>J.createElement(se,{color:Xn.WHITE},e?">":" "),itemComponent:({isSelected:e,label:t})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY}," ",t)})),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"↑↓ navigate · Enter to select · Esc to cancel")));if("actions"===a&&h){const e=[],t="disabled"===h.status,n="connected"===h.status,r="authenticated"===h.status||n;return t&&e.push({label:"Enable",value:"enable"}),!t&&n&&e.push({label:"Connected",value:"connected"}),t||n||e.push({label:"Connect",value:"connect"}),!t&&h.config.oauth&&r&&e.push({label:"Authenticated",value:"authenticated"}),t||!h.config.oauth||r||e.push({label:"Authenticate",value:"auth"}),t||e.push({label:"Disable",value:"disable"}),e.push({label:"Remove",value:"remove"}),e.push({label:"Back",value:"back"}),J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Zn,bold:!0},h.name),J.createElement(oe,null,f(h.status),J.createElement(se,{color:Xn.DIM}," ",y(h))),J.createElement(oe,{marginTop:1},J.createElement(at,{items:e,onSelect:E,indicatorComponent:({isSelected:e})=>J.createElement(se,{color:Xn.WHITE},e?">":" "),itemComponent:({isSelected:e,label:t})=>J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY}," ",t)})),u&&J.createElement(oe,{marginTop:1},u.loading&&J.createElement(se,{color:u.color},J.createElement(Oe,{type:"dots"})," "),J.createElement(se,{color:u.color},u.text)),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"↑↓ navigate · Enter to select · Esc to go back")))}let v=null;return J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:Zn,bold:!0},"Manage MCP servers"),J.createElement(se,{color:Xn.DIM},t.length," ",1===t.length?"server":"servers"),0===t.length?J.createElement(oe,{marginTop:1,flexDirection:"column"},J.createElement(se,{color:Xn.DIM},"No MCP servers configured."),J.createElement(se,{color:Xn.DIM},'Use "cmd mcp add" to add a server.'),J.createElement(se,{color:Xn.DIM},"Docs: https://commandcode.ai/docs/mcp")):J.createElement(oe,{marginTop:1,flexDirection:"column"},g.map((e,t)=>{const n=e.scope!==v;v=e.scope;const r=t===s;return J.createElement(J.Fragment,{key:e.name},n&&J.createElement(oe,{marginTop:0===t?0:1},J.createElement(se,{bold:!0},w(e.scope)),J.createElement(se,{color:Xn.DIM}," (",S(e.scope),")")),J.createElement(oe,{paddingLeft:1},J.createElement(se,{color:r?Xn.WHITE:Xn.GRAY},r?"› ":" "),J.createElement(se,{color:r?Xn.WHITE:void 0,bold:r},e.name),J.createElement(se,{color:Xn.DIM}," · "),f(e.status),J.createElement(se,{color:"connected"===e.status?Xn.GREEN:"authenticated"===e.status?Xn.CYAN:"requires_auth"===e.status?Xn.YELLOW:Xn.GRAY}," ",y(e))))})),u&&J.createElement(oe,{marginTop:1},u.loading&&J.createElement(se,{color:u.color},J.createElement(Oe,{type:"dots"})," "),J.createElement(se,{color:u.color},u.text)),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"↑↓ navigate · Enter to select · Esc to close")))},"McpManager");tn(),sn(),Dn(),kr();var j_=__name(({onClose:e})=>{const[t,n]=Z([]),[r,o]=Z(0),[s,i]=Z(!0),[a,l]=Z(null);te(()=>{__name(async()=>{try{const e=await discoverMemoryFiles(process.cwd());n(e),i(!1)}catch(e){l(e instanceof Error?e.message:"Failed to discover memory files"),i(!1)}},"loadMemoryFiles")()},[]);const u=__name(async t=>{try{await openInEditor(t.path),e()}catch(t){console.error("Error opening memory file. Please ensure you have an editor set up."),e()}},"handleOpenInEditor"),d=t.filter(e=>"project"===e.type||"user"===e.type);if(le((t,n)=>{n.escape?e():n.upArrow?o(e=>Math.max(0,e-1)):n.downArrow?o(e=>Math.min(d.length-1,e+1)):(n.return&&d[r]&&u(d[r]),"1"===t&&d[0]&&u(d[0]),"2"===t&&d[1]&&u(d[1]))}),s)return J.createElement(oe,{paddingLeft:1,paddingTop:1},J.createElement(se,{color:Xn.DIM},"Loading memory files..."));if(a)return J.createElement(oe,{paddingLeft:1,paddingTop:1},J.createElement(se,{color:Xn.RED},Pe.cross," ",a));const m=d.map((e,t)=>{const n=t+1;let r="",o="";return"project"===e.type?(r=`${n}. Project memory`,o=e.exists?"Checked in at ./AGENTS.md":"Not found at ./AGENTS.md"):"user"===e.type&&(r=`${n}. User memory`,o=e.exists?"Saved in ~/.commandcode/AGENTS.md":"Not found in ~/.commandcode/AGENTS.md"),{label:r,value:e.path,description:o}});return J.createElement(oe,{flexDirection:"column",width:"100%",borderStyle:"single",borderColor:Xn.GRAY,paddingTop:1,paddingBottom:1,paddingLeft:2,paddingRight:2},J.createElement(oe,null,J.createElement(se,{color:Xn.WHITE,bold:!0},"Select memory to edit:")),J.createElement(oe,{columnGap:4,marginTop:1},J.createElement(oe,{flexDirection:"column"},m.map((e,t)=>J.createElement(se,{key:t,color:r===t?Xn.WHITE:Xn.DIM},r===t?`${Pn} `:" ",e.label))),J.createElement(oe,{flexDirection:"column"},m.map((e,t)=>J.createElement(se,{key:t,color:r===t?Xn.WHITE:Xn.DIM},e.description)))))},"MemorySelector");tn(),sn(),Hh(),MS(),oo(),Vr(),kr(),tn(),kr();var B_=pt()?"⠶":"#";function AssistantMessage({content:e}){return J.createElement(oe,null,J.createElement(se,{color:mr},B_),J.createElement(oe,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},J.createElement(Markdown,null,e)))}function BashMessage({command:e,output:t,isPending:n=!1,hasError:r=!1}){let o=Xn.GREEN,s=Pe.tick,i="default",a=t||"(No output)";n&&(o=Xn.YELLOW,s=Pe.arrowRight,i=Xn.YELLOW,a="Executing…"),r&&(o=Xn.RED,s=Pe.cross,i=Xn.RED);const l=ne(()=>buildTreeConnectors(a),[a]);return J.createElement(oe,null,J.createElement(se,{color:o},s),J.createElement(oe,{flexDirection:"column",marginLeft:1},J.createElement(oe,null,J.createElement(se,{color:Xn.GRAY},"$ "),J.createElement(se,{color:o,bold:!0},e)),J.createElement(oe,{columnGap:1,marginLeft:1},J.createElement(se,{color:br},l),J.createElement(se,{color:i,wrap:"wrap"},a))))}function CommandResultMessage({message:e,details:t,hasError:n=!1}){const r=n?Xn.YELLOW:void 0,o=ne(()=>buildTreeConnectors(e),[e]);return J.createElement(oe,{flexDirection:"column",marginBottom:0,marginTop:-1},J.createElement(oe,{columnGap:1},J.createElement(se,{color:br},o),J.createElement(oe,{flexGrow:1,flexShrink:1,minWidth:0},J.createElement(se,{color:r},e))),t&&J.createElement(oe,{marginLeft:3},J.createElement(se,{color:Xn.DIM},"See ",t)))}function ErrorMessage({content:e}){const t=e.includes("Interrupted by user");return J.createElement(oe,null,J.createElement(se,{color:Xn.RED},t?Pe.pointer:Pe.warning),J.createElement(oe,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},t?J.createElement(se,{color:Xn.RED,wrap:"wrap"},e):J.createElement(Markdown,{color:Xn.RED},e)))}function IDEStatusMessage({status:e,ide:t,details:n}){return J.createElement(oe,{flexDirection:"column"},J.createElement(oe,null,"connected"===e&&J.createElement(se,null,J.createElement(se,{color:Xn.GREEN},Pe.tick),J.createElement(se,null," Connected to "),J.createElement(se,{color:Xn.CYAN},t)),"installed"===e&&J.createElement(se,null,J.createElement(se,{color:Xn.GREEN},Pe.tick),J.createElement(se,null," Installed for "),J.createElement(se,{color:Xn.CYAN},t)),"needs_reload"===e&&J.createElement(se,null,J.createElement(se,{color:Xn.YELLOW},Pe.circle),J.createElement(se,null," "),J.createElement(se,{color:Xn.CYAN},t),J.createElement(se,null," extension needs reload")),"failed"===e&&J.createElement(se,null,J.createElement(se,{color:Xn.RED},Pe.cross),J.createElement(se,null," Install failed")),"not_in_ide"===e&&J.createElement(se,null,J.createElement(se,{color:Xn.YELLOW},Pe.circle),J.createElement(se,null," Not in IDE"))),n?.map((e,t)=>J.createElement(se,{key:t,color:Xn.DIM}," ",e)))}function AutoCompactMessage({content:e}){return J.createElement(oe,{flexGrow:1,flexShrink:1,minWidth:0},J.createElement(se,{color:Xn.DIM},Pe.bullet," ",e))}function TasteSkipMessage(){return J.createElement(oe,null,J.createElement(oe,{flexShrink:0},J.createElement(se,{backgroundColor:er.BADGE_BG,color:er.BADGE_FG,bold:!0},Jv)),J.createElement(se,{color:Xn.DIM}," Skipped. Run "),J.createElement(se,{color:yr.CODE},"/learn-taste"),J.createElement(se,{color:Xn.DIM}," or "),J.createElement(se,{color:yr.CODE},"cmd learn-taste"),J.createElement(se,{color:Xn.DIM}," anytime."))}function HookWarningMessage({content:e}){return J.createElement(oe,null,J.createElement(se,{color:Xn.YELLOW},Pe.warning),J.createElement(oe,{marginLeft:1,flexGrow:1,flexShrink:1,minWidth:0},J.createElement(se,{color:Xn.YELLOW},e)))}function InfoMessage({content:e,metadata:t}){return t?.isTasteSkip?J.createElement(TasteSkipMessage,null):t?.isAutoCompact?J.createElement(AutoCompactMessage,{content:e}):t?.isHookWarning?J.createElement(HookWarningMessage,{content:e}):J.createElement(oe,{flexGrow:1,flexShrink:1,minWidth:0},J.createElement(se,{color:Xn.DIM},Pe.bullet," ",e))}__name(AssistantMessage,"AssistantMessage"),tn(),kr(),__name(BashMessage,"BashMessage"),tn(),kr(),__name(CommandResultMessage,"CommandResultMessage"),tn(),kr(),__name(ErrorMessage,"ErrorMessage"),tn(),kr(),__name(IDEStatusMessage,"IDEStatusMessage"),tn(),kr(),__name(AutoCompactMessage,"AutoCompactMessage"),__name(TasteSkipMessage,"TasteSkipMessage"),__name(HookWarningMessage,"HookWarningMessage"),__name(InfoMessage,"InfoMessage"),tn(),tn(),sn();kr(),tn(),oo();var U_="cmd";function getBinNames(){const e=getPackageJson();return e.bin&&"object"==typeof e.bin?Object.keys(e.bin):e.bin&&"string"==typeof e.bin?[e.name]:[U_]}function getInvokedCommandName(){try{const e=getBinNames(),n=process.argv[1];if(!n)return e[0]||U_;const r=t.basename(n).replace(/\.(m?[jt]s|cjs)$/,"");return e.includes(r)?r:e[0]||U_}catch{return U_}}function HelpMessage(){const e=getInvokedCommandName(),t=ne(()=>uC.filter(e=>!("/provider"===e.key&&!isInternalTeamFlagEnforced())),[]);return J.createElement(oe,{flexDirection:"column",paddingY:1},J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(oe,null,J.createElement(se,{bold:!0},"Command Code"),J.createElement(se,{color:Xn.GRAY}," v","0.22.9")),J.createElement(se,{color:Xn.GRAY},sC)),J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(se,{bold:!0},"Usage"),J.createElement(oe,{paddingLeft:2},J.createElement(se,null,e," <command> [options]"))),J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(se,{bold:!0},"Options"),J.createElement(oe,{flexDirection:"column",paddingLeft:2},cC.map(t=>J.createElement(oe,{key:t.key},J.createElement(se,null,t.key.replace(/^cmd/,e).padEnd(iC)),J.createElement(se,{color:Xn.GRAY},t.description))))),J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(se,{bold:!0},"Commands"),J.createElement(oe,{flexDirection:"column",paddingLeft:2},dC.map(t=>J.createElement(oe,{key:t.key},J.createElement(se,null,t.key.replace(/^cmd/,e).padEnd(iC)),J.createElement(se,{color:Xn.GRAY},t.description))))),J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(se,{bold:!0},"Slash Commands"),J.createElement(oe,{flexDirection:"column",paddingLeft:2},t.map(e=>J.createElement(oe,{key:e.key},J.createElement(se,null,e.key.padEnd(iC)),J.createElement(se,{color:Xn.GRAY},e.description))))),J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(se,{bold:!0},"Keyboard Shortcuts"),J.createElement(oe,{flexDirection:"column",paddingLeft:2},lC.map(e=>J.createElement(oe,{key:e.key},J.createElement(se,null,e.key.padEnd(iC)),J.createElement(se,{color:Xn.GRAY},e.description))))),J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(se,{bold:!0},"Examples"),J.createElement(oe,{flexDirection:"column",paddingLeft:2},pC.map(t=>J.createElement(oe,{key:t.key},J.createElement(se,null,t.key.replace(/^cmd/,e).padEnd(iC)),J.createElement(se,{color:Xn.GRAY},t.description))))),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.CYAN},Pe.pointer),J.createElement(se,{color:Xn.GRAY}," ",gC.replace(/cmd/,e))),J.createElement(oe,{flexDirection:"column"},J.createElement(se,{bold:!0},"Links"),J.createElement(oe,{flexDirection:"column",paddingLeft:2},mC.map(e=>J.createElement(oe,{key:e.key},J.createElement(se,null,e.key.padEnd(iC)),J.createElement(se,{color:Xn.CYAN},e.description))))))}function SystemMessage({content:e}){return e.includes("KEYBOARD SHORTCUTS")&&e.includes("COMMANDS")?J.createElement(HelpMessage,null):J.createElement(oe,{flexDirection:"column"},J.createElement(se,{wrap:"wrap"},J.createElement(Markdown,null,e)))}__name(getBinNames,"getBinNames"),__name(getInvokedCommandName,"getInvokedCommandName"),Vr(),__name(HelpMessage,"HelpMessage"),__name(SystemMessage,"SystemMessage"),tn(),Dn(),Hr(),kr();var z_={"Interrupted by user":"Interrupted by user","Insufficient credits":_n};function UserMessage({content:e,images:t,imageCount:n=0,ideHint:r}){const o="Interrupted by user"===e,s="Insufficient credits"===e,i=e.startsWith("Error:"),a=o||s||i,l=a&&z_[e]||e,u=null!=t?t.length:n,d=ee(null);null===d.current&&t&&t.length>0&&(d.current=t.map((e,t)=>saveTempImage(e,t+1)));const m=d.current??[];return J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{backgroundColor:a?void 0:dr.BG,paddingRight:1},J.createElement(se,{color:a?Xn.RED:dr.POINTER,bold:!a},Pe.pointer),J.createElement(oe,{marginLeft:1},J.createElement(se,{color:a?Xn.RED:Xn.WHITE,wrap:"wrap"},l))),u>0&&J.createElement(oe,{marginLeft:1},J.createElement(se,{color:Xn.DIM},"⎿"," ",Array.from({length:u},(e,t)=>{const n=m[t],r=`[Image #${t+1}]`;return null!=n?createOSC8Link(`file://${n}`,r,!1):r}).join(" "))),r&&!a&&J.createElement(oe,{marginLeft:2},J.createElement(se,{color:br},Qv),J.createElement(se,{color:Xn.DIM}," ","Selected ",r.lines," ",1===r.lines?"line":"lines"," from ",r.file," in ",r.ide)))}function renderFeedEntry(e,t){if("user"===e.role){const t=Array.isArray(e.metadata?.images)?e.metadata.images:void 0,n=e.metadata?.ideHint;return J.createElement(UserMessage,{content:e.input,images:t,ideHint:n})}return"assistant"===e.role?J.createElement(AssistantMessage,{content:e.input}):"tool"===e.role?J.createElement(ToolMessage,{name:xS(e.name||""),input:e.input,output:e.output||"",isPending:kS(e),hasError:vS(e),metadata:e.metadata,expandedOutput:t}):"bash"===e.role?J.createElement(BashMessage,{command:e.command||"",output:e.output||"",isPending:kS(e),hasError:vS(e)}):"system"===e.role?J.createElement(SystemMessage,{content:e.input}):"info"===e.role?J.createElement(InfoMessage,{content:e.input,metadata:e.metadata}):"error"===e.role?J.createElement(ErrorMessage,{content:e.input}):"command-result"===e.role?J.createElement(CommandResultMessage,{message:e.input,details:e.details,hasError:e.hasError??!1}):"ide-status"===e.role?J.createElement(IDEStatusMessage,{status:e.status,ide:e.ide,details:e.details}):null}function getModelShortName(e){const t=findModelById(e);return t?t.name.toLowerCase().replaceAll(" ","-"):e}function getProviderShortName(e){return e?Qt[e]?.shortLabel??e.slice(0,4):""}function TranscriptDivider({count:e,width:t}){const n=` ${e} hidden messages [ctrl+e to expand more] `,r=Math.max(0,Math.floor((t-n.length)/2)),o="─".repeat(r);return J.createElement(oe,{marginBottom:1},J.createElement(se,{color:ur},o),J.createElement(BracketedText,{text:n,color:ur}),J.createElement(se,{color:ur},o))}__name(UserMessage,"UserMessage"),__name(renderFeedEntry,"renderFeedEntry"),__name(getModelShortName,"getModelShortName"),__name(getProviderShortName,"getProviderShortName"),__name(TranscriptDivider,"TranscriptDivider");var H_=J.memo(({feed:e,showHeader:t=!1,staticKey:n,expandedToolOutput:r=!1,currentModel:o,currentProvider:s,hiddenCount:i=0})=>{const a=i>0?{role:"transcript-divider",count:i}:null,l=[...t?["header"]:[],...a?[a]:[],...e],u=useTerminalWidth(),d=ne(()=>CT(u),[u]),m=ne(()=>xT(u),[u]),g=ne(()=>getPackageJson().version||"0.0.0",[]),h=ne(()=>getGitHeaderInfo(),[]),f=ne(()=>{const e=process.cwd(),t=process.env.HOME??process.env.USERPROFILE??"";return e.replace(t,"~")},[]),y=o?getModelShortName(o):"sonnet-4.6",w="taste-1",S=isInternalTeamFlagEnforced()&&!process.env.CMD_DEMO,E=S?" · co":"",C=S&&s?` · ${getProviderShortName(s)}`:"";return J.createElement(ie,{items:l,key:n,style:{width:"100%"}},e=>{if("object"==typeof e&&"transcript-divider"===e.role)return J.createElement(TranscriptDivider,{key:"transcript-divider",count:e.count,width:u});if("header"===e)return"compact"===m?J.createElement(oe,{key:"header",marginBottom:1,flexDirection:"row"},J.createElement(oe,{width:TT,flexShrink:0},J.createElement(PT,null,kT)),J.createElement(oe,{flexDirection:"column",marginLeft:2},J.createElement(oe,null,J.createElement(se,{bold:!0},"Command Code"),J.createElement(se,{color:ur}," ","v",g)),J.createElement(se,{color:ur},"models: ",y," · ",w,E),J.createElement(se,{color:ur},f,h&&h.isLocal&&h.branch&&` (${h.branch})`))):J.createElement(oe,{key:"header",marginBottom:1,flexDirection:"column"},J.createElement(PT,null,d.trimEnd()),J.createElement(oe,{flexDirection:"column",marginTop:1},J.createElement(oe,null,J.createElement(se,{color:ur},"# "),J.createElement(se,{bold:!0},"Command Code"),J.createElement(se,{color:ur}," v",g)),J.createElement(se,{color:ur},"# models: ",y," · ",w,C,E),J.createElement(oe,null,J.createElement(se,{color:ur},"# ",f,h&&h.isLocal&&h.branch&&J.createElement(se,{color:ur}," ","(branch:"," ",h.branch,")")))));const t=e,n=renderFeedEntry(t,r);return J.createElement(oe,{key:t.id,paddingBottom:1,width:"90%"},n)})});tn(),MS(),Qr(),kr();var W_=X(__name(function LiveAgentStatusInner2({entry:e}){const t=xS(e.name||"Agent"),n=e.input||"",r=n.split(/[.\n]/)[0],o=r?r+(n.includes(".")||n.includes("\n")?".":""):n,s=e.metadata?.tokensUsed||0,i=e.metadata?.elapsedSeconds||0,a=e.metadata?.recentTools||[],[l,u]=Z(".");return te(()=>{const e=setInterval(()=>{u(e=>"..."===e?".":e+".")},500);return()=>clearInterval(e)},[]),J.createElement(oe,{flexDirection:"column",marginBottom:1,width:"90%"},J.createElement(oe,null,J.createElement(se,{backgroundColor:ar.BG,color:ar.FG,bold:!0},` ${t} `),o&&J.createElement(se,null," ","(",o,")")),J.createElement(oe,{columnGap:1,marginLeft:1},J.createElement(se,null,"⎿"," "),J.createElement(se,{color:Xn.GRAY},"Running (",formatTime2(i)," | ",formatTokens(s),")",l)),a.length>0&&J.createElement(oe,{flexDirection:"column",marginLeft:1},a.map((e,t)=>{const n=xS(e.name);return J.createElement(oe,{key:t,columnGap:1},J.createElement(se,{color:Xn.GRAY},"⎿"),J.createElement(se,{color:Xn.GRAY}," ",n),e.input&&J.createElement(se,{color:Xn.GRAY},"(",e.input,")"))})))},"LiveAgentStatusInner")),G_=X(__name(function LiveAgentStatus2({entry:e}){return"tool"!==e.role?null:J.createElement(W_,{entry:e})},"LiveAgentStatus"));function fuzzyMatch(e,t){let n=0;for(const r of e)if(r===t[n]&&(n++,n===t.length))return!0;return!1}function fuzzyScore(e,t){let n=0;for(const r of e)fuzzyMatch(r.text.toLowerCase(),t)&&(n+=r.weight);return n}function fuzzyFilter(e,t,n){if(!t.trim())return e;const r=t.toLowerCase().split("");return e.map(e=>({item:e,score:fuzzyScore(n(e),r)})).filter(({score:e})=>e>0).sort((e,t)=>t.score-e.score).map(({item:e})=>e)}function useListNavigation({items:e,onSelect:t,onCancel:n,validate:r,initialIndex:o=0,searchQuery:s,onSearchChange:i}){const[a,l]=Z(o),[u,d]=Z(null);te(()=>{s||l(o)},[o,s]);const m=e.length-1,g=__name(e=>{i(e),l(0)},"updateSearch");return le((o,i)=>{if(i.escape&&s)g("");else if(i.escape)n();else if(i.backspace||i.delete)g(s.slice(0,-1));else if(0!==e.length){if(i.upArrow)return d(null),void l(e=>e>0?e-1:m);if(i.downArrow)return d(null),void l(e=>e<m?e+1:0);if(i.return){const n=e[a];if(!n)return;if(r){const e=r(n);if(e)return void d(e)}return void t(n)}!i.ctrl&&!i.meta&&!i.tab&&o&&1===o.length&&o>=" "&&g(s+o)}}),{cursor:a,error:u}}tn(),sn(),tn(),__name(fuzzyMatch,"fuzzyMatch"),__name(fuzzyScore,"fuzzyScore"),__name(fuzzyFilter,"fuzzyFilter"),Fr(),Qr(),Vr(),tn(),__name(useListNavigation,"useListNavigation"),tn(),kr();var V_=__name(({query:e,resultCount:t,placeholder:n="Type to search..."})=>J.createElement(oe,{width:"100%"},J.createElement(se,{color:Xn.GRAY},Pe.pointerSmall," "),J.createElement(se,{color:e?Xn.WHITE:Xn.GRAY},e||n),e&&void 0!==t&&J.createElement(se,{dimColor:!0}," (",t," found)")),"SearchInput");tn(),sn(),kr();var Q_=__name(({model:e,providerId:t,isHighlighted:n,isCurrent:r,showProviderLabel:o})=>{const s=Qt[t],i=o??s?.showProviderLabelInSelector??!1,a=Vt[e.provider],l=e.id===Gt?`${e.label} (default)`:e.label;return J.createElement(oe,null,J.createElement(se,{color:n?Xn.CYAN:Xn.GRAY},n?`${Pe.pointer} `:" "),J.createElement(se,{color:n?Xn.CYAN:r?Xn.GREEN:Xn.WHITE},l.padEnd(32)),i&&J.createElement(se,{color:Xn.DIM},a),e.description&&J.createElement(se,{color:Xn.DIM},i?" · ":"",e.description),r&&J.createElement(se,{color:Xn.GREEN}," ",Pe.tick))},"ModelRow");kr();var K_=__name(e=>[{text:e.name,weight:100},{text:e.label,weight:50},{text:e.provider,weight:25},{text:e.description||"",weight:10}],"MODEL_SEARCH_FIELDS");function searchGroups(e,t){if(!t.trim())return e;const n=[];for(const r of e){const e=fuzzyFilter(r.models,t,K_);e.length>0&&n.push({...r,models:e})}return n}function flattenGroups(e){const t=[];for(const n of e)for(const e of n.models)t.push({providerId:n.providerId,model:e});return t}function groupByModelProvider(e,t){const n=new Map;for(const t of e){const e=Vt[t.provider]??t.provider,r=n.get(e)??[];r.push(t),n.set(e,r)}const r=[];for(const e of Object.values(Vt))n.has(e)&&!r.includes(e)&&r.push(e);return r.map(e=>({providerId:t,label:e,models:n.get(e)}))}__name(searchGroups,"searchGroups"),__name(flattenGroups,"flattenGroups"),__name(groupByModelProvider,"groupByModelProvider");var Y_=__name(({onSelect:e,onCancel:t,currentModel:n,currentProvider:r})=>{const[o,s]=Z(""),[i,a]=Z(null),[l,u]=Z(()=>new Set),d=ne(()=>isInternalTeamFlagEnforced(),[]),m=ne(()=>d?Kt:groupByModelProvider(Yt.flatMap(e=>e.models),Qt["command-code"].id),[d]),g=ne(()=>searchGroups(m,o),[m,o]),h=ne(()=>flattenGroups(g),[g]),f=d?Qt.anthropic.id:Qt["command-code"].id,y=r??f,w=n?Math.max(0,h.findIndex(e=>e.model.id===n&&e.providerId===y)):0,{cursor:S,error:E}=useListNavigation({items:h,onSelect:__name(t=>e(t.model.id,t.providerId),"onSelect"),onCancel:t,initialIndex:w,searchQuery:o,onSearchChange:s,validate:__name(e=>{if(l.has(e.providerId))return`Run /provider to authenticate with ${getProviderConfig(e.providerId)?.displayName??e.providerId} first`;if(!i||d)return null;const t=Qt[i]?.supportedModelProviders;return t&&!t.includes(e.model.provider)?`${Qt[i]?.label??i} does not support ${e.model.provider} models. Switch provider via /provider.`:null},"validate")});te(()=>{(async()=>{await isOAuthEnforced()&&a(await getConfiguredProvider())})()},[]),te(()=>{(async()=>{const e=new Set(m.map(e=>e.providerId)),t=new Set;for(const n of e){const e=getProviderConfig(n);e?.requiresAuth&&e.checkAuth&&(await e.checkAuth()||t.add(n))}u(t)})()},[m]);let C=0;return J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(oe,null,J.createElement(se,{color:Zn,bold:!0},"Select model")),J.createElement(oe,{marginBottom:1},J.createElement(se,{dimColor:!0},d?"Select a model and provider. Applies to this session and future sessions.":"Switch between Command Code models. Applies to this session and future sessions.")),J.createElement(oe,{marginBottom:2,flexDirection:"column",width:"100%"},J.createElement(V_,{query:o,resultCount:o?h.length:void 0,placeholder:"Type to search models..."})),0===h.length?J.createElement(oe,{marginY:1},J.createElement(se,{color:Xn.GRAY},'No models match "',o,'"')):J.createElement(oe,{flexDirection:"column"},g.map((e,t)=>{const r=C;return C+=e.models.length,J.createElement(oe,{key:`${e.providerId}-${e.label}`,flexDirection:"column",marginTop:t>0?1:0},d?J.createElement(se,{bold:!0,color:Zn},e.label):J.createElement(se,{bold:!0,dimColor:!0},e.label),e.models.map((t,o)=>J.createElement(Q_,{key:`${e.providerId}-${e.label}-${t.id}`,model:t,providerId:e.providerId,isHighlighted:r+o===S,isCurrent:t.id===n&&e.providerId===y,showProviderLabel:!!d&&void 0})))})),E&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.RED},E)),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"type to search . up/down navigate . Enter to select"),o?J.createElement(se,{color:Xn.DIM}," . Esc to clear"):J.createElement(se,{color:Xn.DIM}," . Esc to cancel")))},"ModelSelector");tn(),Vr(),kr();var J_=__name(({onSelect:e,onCancel:t,currentProvider:n})=>{const r=getProviderOptions(),o=__name(t=>{e(t.value)},"handleSelect");le((e,n)=>{n.escape&&t()});const s=n?r.findIndex(e=>e.value===n):0,i=n&&-1===s;return J.createElement(oe,{flexDirection:"column",paddingX:0,width:"100%"},J.createElement(oe,{marginBottom:1,flexDirection:"row",justifyContent:"space-between"},J.createElement(oe,null,J.createElement(se,{bold:!0},"Select AI Provider")),n&&J.createElement(oe,{flexDirection:"row"},J.createElement(se,{color:Xn.DIM},"Current: "),J.createElement(se,{color:Xn.GREEN},getProviderDisplayName(n)),i&&J.createElement(se,{color:Xn.YELLOW}," [OAuth enforced]"))),J.createElement(oe,{marginBottom:0},J.createElement(se,{color:Xn.DIM},"Available Providers:")),J.createElement(at,{items:r,onSelect:o,initialIndex:s>=0?s:0,indicatorComponent:({isSelected:e})=>J.createElement(se,{color:e?Xn.CYAN:Xn.GRAY,bold:e},e?Pe.triangleRightSmall:" "),itemComponent:({isSelected:e,label:t})=>J.createElement(se,{color:e?Xn.CYAN:Xn.GRAY,bold:e},` ${t}`)}),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press ESC to cancel")))},"ProviderSelector");function RetryMessage({attempt:e}){const[t,n]=Z(0);if(te(()=>{if(null===e)return;const t=setInterval(()=>{n(e=>(e+1)%4)},500);return()=>clearInterval(t)},[e]),null===e)return null;const r=".".repeat(t).padEnd(3," ");return J.createElement(oe,{marginBottom:1},J.createElement(se,{color:fr,dimColor:!0},"Connection Issue. Retrying (attempt ",e,")",r))}tn(),kr(),__name(RetryMessage,"RetryMessage"),tn(),Mo(),Dn(),kr();var X_=[{mode:"both",label:"Both",description:"Restore conversation and code (recommended)"},{mode:"conversation",label:"Conversation only",description:"Rewind conversation, keep current code"},{mode:"files",label:"Code only",description:"Restore code, keep conversation"}],Z_=__name(({checkpoints:e,onSelect:t,onCancel:n})=>{const r=ne(()=>[...e].sort((e,t)=>new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime()),[e]),[o,s]=Z(Math.max(0,r.length-1)),[i,a]=Z(Math.max(0,r.length-8)),[l,u]=Z("checkpoint"),[d,m]=Z(null),[g,h]=Z(0),f=ne(()=>{if(!d)return!0;const e=r.findIndex(e=>e.messageId===d.messageId);if(-1===e)return!0;for(let t=e;t<r.length;t++)if(r[t].filesModified.length>0)return!0;return!1},[d,r]),y=ne(()=>f?X_:X_.filter(e=>"conversation"===e.mode),[f]);if(te(()=>{if(r.length>0){const e=r.length-1;s(e),a(Math.max(0,r.length-8))}},[r.length,8]),le((e,f)=>{f.escape?"mode"===l?(u("checkpoint"),m(null),h(0)):n():"checkpoint"===l?f.upArrow?s(e=>{const t=Math.max(0,e-1);return t<i&&a(t),t}):f.downArrow?s(e=>{const t=Math.min(r.length-1,e+1);return t>=i+8&&a(t-8+1),t}):f.return&&r.length>0&&(m(r[o]),u("mode"),h(0)):"mode"===l&&(f.upArrow?h(e=>Math.max(0,e-1)):f.downArrow?h(e=>Math.min(y.length-1,e+1)):f.return&&d&&y[g]&&t({messageId:d.messageId,mode:y[g].mode}))}),0===r.length)return J.createElement(oe,{flexDirection:"column",paddingLeft:2,paddingTop:1},J.createElement(se,{color:Zn,bold:!0},"Rewind"),J.createElement(se,{color:Xn.DIM},"No checkpoints available. Start a conversation to create checkpoints."),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press "),J.createElement(se,{color:Xn.DIM,bold:!0},"Esc"),J.createElement(se,{color:Xn.DIM}," to close")));if("mode"===l&&d)return J.createElement(oe,{flexDirection:"column",paddingLeft:2,paddingTop:1},J.createElement(se,{color:Zn,bold:!0},"Rewind"),J.createElement(oe,{marginBottom:1},J.createElement(se,{color:Xn.DIM},"Restore to: "),J.createElement(se,{color:Xn.WHITE},truncateString({text:d.userPrompt||"checkpoint",maxChars:50}))),J.createElement(oe,{flexDirection:"column"},y.map((e,t)=>{const n=g===t,r=t===y.length-1;return J.createElement(oe,{key:e.mode,flexDirection:"column"},J.createElement(oe,{flexDirection:"row"},J.createElement(se,{color:n?Zn:void 0},n?`${Pn} `:" "),J.createElement(oe,{flexDirection:"column"},J.createElement(se,{color:n?Zn:Xn.WHITE},e.label),J.createElement(se,{color:Xn.DIM},e.description))),!r&&J.createElement(se,null," "))})),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press "),J.createElement(se,{color:Xn.DIM,bold:!0},"Enter"),J.createElement(se,{color:Xn.DIM}," to confirm, "),J.createElement(se,{color:Xn.DIM,bold:!0},"Esc"),J.createElement(se,{color:Xn.DIM}," to go back")));const w=r.slice(i,i+8);return J.createElement(oe,{flexDirection:"column",paddingLeft:2,paddingTop:1},J.createElement(se,{color:Zn,bold:!0},"Rewind"),J.createElement(se,{color:Xn.DIM},"Select a checkpoint to restore your session"),r.length>8&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Showing ",i+1,"-",Math.min(i+8,r.length)," ","of ",r.length)),J.createElement(oe,{marginTop:1}),J.createElement(oe,{flexDirection:"column"},w.map((e,t)=>{const n=i+t,s=o===n,a=e.filesModified.length,l=t===w.length-1,u=n===r.length-1;return J.createElement(oe,{key:e.messageId,flexDirection:"column"},J.createElement(oe,{flexDirection:"row"},J.createElement(se,{color:s?Zn:void 0},s?`${Pn} `:" "),J.createElement(oe,{flexDirection:"column"},J.createElement(oe,null,J.createElement(se,{color:s?Zn:Xn.WHITE},truncateString({text:e.userPrompt||"(no prompt)",maxChars:60})),J.createElement(se,{color:Xn.DIM}," • "),J.createElement(se,{color:Xn.DIM},getRelativeTimeString({timestamp:e.timestamp}),u&&" (latest)")),J.createElement(se,{color:Xn.DIM},a>0?`${a} file${a>1?"s":""} changed`:"No code changes"))),!l&&J.createElement(se,null," "))})),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Press "),J.createElement(se,{color:Xn.DIM,bold:!0},"Enter"),J.createElement(se,{color:Xn.DIM}," to select, "),J.createElement(se,{color:Xn.DIM,bold:!0},"Esc"),J.createElement(se,{color:Xn.DIM}," to cancel")))},"RewindSelector");tn(),Bn(),tn(),tn();var ex=__name(e=>{const[t,n]=Z(e),[r,o]=Z(null);return te(()=>{const t=__name(()=>{n(e.map(e=>({...e,active:!1,complete:!1,items:[],insights:[],message:""}))),o(null)},"handleReset"),r=__name(e=>{"error"!==e.type?n(t=>{if("step_start"===e.type){const n=t.findIndex(t=>t.id===e.step);return n<0?t:t.map((t,r)=>r<n?{...t,active:!1,complete:!0}:r===n?{...t,active:!0,message:e.message||"",...e.label&&{label:e.label},..."complete"===e.step&&{complete:!0},...void 0!==e.learningCount&&void 0!==e.categories&&void 0!==e.storage&&t.summary&&{summary:{learningCount:e.learningCount,categories:e.categories,storage:e.storage}}}:t)}if("progress"===e.type){const n=t.findIndex(e=>e.active);return n<0?t:t.map((t,r)=>r===n?{...t,items:[...t.items,e.message]}:t)}if("insight"===e.type){const n=t.findIndex(e=>"learning"===e.id);return n<0?t:t.map((t,r)=>r===n?{...t,insights:[...t.insights,e.message]}:t)}return t}):o(e.message)},"handleNewEvent");return Av.on("reset",t),Av.on("new-event",r),()=>{Av.off("reset",t),Av.off("new-event",r)}},[e]),{steps:t,importError:r,setImportError:o}},"useProgressEvents");async function createRequestClient(){const e=getApiBaseUrl(),t=new Jy({baseUrl:e}),n=await getConfiguredProvider(),r=await isOAuthEnforced();let o,s;try{const e=await getOAuthCredentials({provider:n});o=e.token,s=e.oauthProvider,validateOAuthToken({token:o,provider:n})}catch(e){dlog("Failed to get or validate OAuth token:",e instanceof Error?e.message:String(e))}const i={[Pt.PROJECT_SLUG]:_C.getCurrentProjectDirName(),[Pt.INTERNAL_TEAM_FLAG_HEADER]:r.toString()};return o&&(i[Pt.OAUTH_TOKEN]=`Bearer ${o}`,s&&(i[Pt.OAUTH_PROVIDER]=s)),{request:t,headers:i}}function splitPromptsIntoBatches(e){const t=[];let n=[],r=0;for(const o of e){const e=estimateTokens(o);e>2e3?(n.length>0&&(t.push(n),n=[],r=0),t.push([o])):r+e>2e3?(n.length>0&&t.push(n),n=[o],r=e):(n.push(o),r+=e)}return n.length>0&&t.push(n),t}tn(),tn(),gw(),Tw(),Bn(),tn(),sn(),Bn(),tn(),tn(),sn(),gw(),Tw(),Bn(),Fr(),Qr(),__name(createRequestClient,"createRequestClient"),tn(),__name(splitPromptsIntoBatches,"splitPromptsIntoBatches"),__name(function calculateObservationsPerBatch(e){return 4},"calculateObservationsPerBatch"),tn(),tn(),Bn(),kn(),tn();var tx="claude-haiku-4-5-20251001";function buildObserverPrompt(e,t){return`Produce ${t} varied observations for these prompts:\n\n${e.map((e,t)=>`${t+1}. ${e}`).join("\n")}\n\nVaried observations:`}function createInsightEmitter(){let e="",t=0;const n=__name(()=>{if(e.includes("\n")){const t=e.split("\n");for(let e=0;e<t.length-1;e++){const n=t[e].trim();n&&(dlog(`[ObserverAPI] emitting insight: ${n}`),Av.addEvent({type:"insight",message:n}))}e=t[t.length-1]}},"emitCompletedLines");return{addText:__name(r=>{t++,dlog(`[ObserverAPI] text chunk ${t}: "${r.substring(0,50)}..."`),e+=r,n()},"addText"),emitRemaining:__name(()=>{e.trim()&&(dlog(`[ObserverAPI] emitting final insight: ${e.trim()}`),Av.addEvent({type:"insight",message:e.trim()}))},"emitRemaining"),getChunkCount:__name(()=>t,"getChunkCount")}}async function callObserverAPI(e,t,n){dlog(`[ObserverAPI] calling ${At.ALPHA.GENERATE} with model: ${tx}`);const r={config:getEnvironmentContext(),memory:"",taste:"",skills:"",params:{tools:[],messages:[{role:"user",content:n}],model:tx,system:"You scan prompts and produce casual observations like a dev friend glancing at someone's work.\n\nPLAIN TEXT ONLY. No markdown, no formatting.\n\nBe natural and VARIED. Don't repeat the same sentence starters.\n\nGood (notice the variety):\npnpm over npm, nice\ndebugging that auth flow\nreact + typescript stack\ncircular deps came up\ntui flicker stuff\nah the classic memory leak\nsession persistence wip\nfighting with imports again\nhaiku model issues huh\n\nBad (too repetitive - NEVER do this):\nI see you prefer pnpm\nI see debugging auth\nI see react stack\nI see circular deps\noh, TUI issues\noh, memory leak\n\nRules:\n- plain text, lowercase is fine\n- vary your sentence starts - mix it up\n- max 6 words per observation\n- one observation per line\n- sound human, not robotic\n- output only the observations, no preamble",max_tokens:200,temperature:.7,stream:!0},threadId:Te()},o=await e.post({endpoint:At.ALPHA.GENERATE,body:r,headers:t,stream:!0});dlog("[ObserverAPI] got response stream");const s=createInsightEmitter();await consumeSSEStream(o,{onText:__name(e=>{s.addText(e)},"onText")}),dlog(`[ObserverAPI] stream complete, ${s.getChunkCount()} chunks received`),s.emitRemaining(),dlog("[ObserverAPI] done")}async function processBatch(e,t,n,r,o){let s=0;for(const e of n)s+=estimateTokens(e);dlog(`[Observer] batch ${r}/${o}: ${n.length} prompts`);const i=buildObserverPrompt(n,4);await callObserverAPI(e,t,i)}async function observeSessionPrompts(e){if(Av.observerHasRun)return;Av.markObserverRun();const{prompts:t}=e;try{const{request:e,headers:n}=await createRequestClient(),r={...n,[Pt.SESSION_ID]:`observer-${Te()}`},o=splitPromptsIntoBatches(t);dlog(`[Observer] ${t.length} prompts → ${o.length} batches`);const s=Math.min(o.length,6);for(let t=0;t<s;t++){if(Av.learningComplete){dlog(`[Observer] stopped at batch ${t} (learning complete)`);break}const n=o[t];try{await processBatch(e,r,n,t+1,o.length)}catch{}}dlog("[Observer] done")}catch(e){dlog(`[Observer] failed (non-critical): ${e instanceof Error?e.message:String(e)}`),Av.addEvent({type:"progress",message:"Continuing without live observations..."})}}sn(),__name(buildObserverPrompt,"buildObserverPrompt"),__name(createInsightEmitter,"createInsightEmitter"),__name(callObserverAPI,"callObserverAPI"),__name(processBatch,"processBatch"),__name(observeSessionPrompts,"observeSessionPrompts");var nx=class{static{__name(this,"SessionImporter")}static async findClaudeCodeSessions(t=0){const n=[];try{const r=e.join(y.homedir(),".claude","projects");await F.access(r);const o=process.cwd().replace(/\//g,"-");dlog(`[Import] scanning project: ${o}`);const s=(await F.readdir(r)).filter(e=>e===o);for(const o of s){const s=e.join(r,o);try{if(!(await F.stat(s)).isDirectory())continue;const r=(await F.readdir(s)).filter(e=>e.endsWith(".jsonl")&&!e.includes(".checkpoints"));dlog(`[Import] found ${r.length} sessions`);for(const o of r){const r=e.join(s,o),i=await F.stat(r),a=o.replace(".jsonl","");if(n.push({id:a,filePath:r,createdAt:i.birthtime,lastModified:i.mtime,messageCount:0,agent:"claude-code"}),t>0&&n.length>=t)break}if(t>0&&n.length>=t)break}catch{continue}}}catch{dlog("[Import] no claude sessions dir")}return n}static async findCodexSessions(e=0,t){try{Av.addEvent({type:"progress",message:"Scanning Codex sessions..."});const n=await findCodexSessions(process.cwd(),e=>{t?.(e),"reading"===e.phase&&Av.addEvent({type:"progress",message:`Scanning Codex: ${e.processedFiles}/${e.totalFiles} files (${e.matchedSessions} matched)`})},e);return dlog(`[Import] found ${n.length} Codex sessions`),n}catch(e){return dlog("[Import] no codex sessions",e),[]}}static async findCursorSessions(e=0){try{Av.addEvent({type:"progress",message:"Scanning Cursor sessions..."});const t=await findCursorSessions(process.cwd(),e);return dlog(`[Import] found ${t.length} Cursor sessions`),t}catch(e){return dlog("[Import] no cursor sessions",e),[]}}static async extractUserPrompts(e){const t=[];try{const n=(await F.readFile(e,"utf-8")).trim().split("\n");for(const e of n)if(e.trim())try{const n=JSON.parse(e);if("user"===n.type&&n.message){const e=n.message;let r="";e.content&&"string"==typeof e.content&&(r=e.content),r.trim()&&t.push(r.trim())}}catch{continue}t.length>0&&dlog(`[Import] extracted ${t.length} prompts from session`)}catch(t){dlog(`[Import] failed: ${e}`,t)}return t}static splitPromptsIntoBatches(e,t=15e4){const n=[];let r=[],o=0;for(const s of e){const e=estimateTokens(s);if(e>t){r.length>0&&(n.push(r),r=[],o=0);const e=this.splitLargePrompt(s,t);for(const t of e)n.push([t])}else o+e<=t?(r.push(s),o+=e):(r.length>0&&n.push(r),r=[s],o=e)}return r.length>0&&n.push(r),n}static splitLargePrompt(e,t){const n=[],r=e.split("\n");let o="",s=0;for(const e of r){const r=estimateTokens(e);s+r<=t?(o+=(o?"\n":"")+e,s+=r):(o&&n.push(o),o=e,s=r)}return o&&n.push(o),n}static async importAndLearn(){const e=[],t=[],n=[],r=[],o=[];try{Av.addEvent({type:"step_start",step:"importing",label:"Started Learning Taste",message:"Scanning for coding sessions..."});const s=await loadProjectSettings(),i=s.tasteOnboarding?.learnedSessions||{},a=i["claude-code"]?.length||0,l=i.codex?.length||0,u=i.cursor?.length||0;dlog(`[Import] loaded settings: claude-code=${a} learned, codex=${l} learned, cursor=${u} learned`);const d=await findNewSessions(i),m=d["claude-code"]||[],g=d.codex||[],h=d.cursor||[],f=m.length+g.length+h.length;if(dlog(`[Import] findNewSessions returned: claude-code=${m.length} new, codex=${g.length} new, cursor=${h.length} new`),0===f){const e=await this.findClaudeCodeSessions(),t=await findCodexSessions(process.cwd()),n=await findCursorSessions(process.cwd()),r=e.length+t.length+n.length,o=[{name:"Claude Code",count:e.length},{name:"Codex",count:t.length},{name:"Cursor",count:n.length}].filter(e=>e.count>0).sort((e,t)=>t.count-e.count).map(e=>`${e.count} ${e.name}`);Av.addEvent({type:"step_start",step:"complete",label:"Taste Already Learned",message:r>0?`From ${o.join(" + ")} sessions`:"No sessions found for this project"});const s=[];return e.length>0&&s.push({agent:"claude-code",sessionIds:e.map(e=>e.id),displayName:"Claude Code"}),t.length>0&&s.push({agent:"codex",sessionIds:t.map(e=>e.id),displayName:"Codex"}),n.length>0&&s.push({agent:"cursor",sessionIds:n.map(e=>e.id),displayName:"Cursor"}),{success:!1,totalPrompts:0,preferencesLearned:0,errors:[],totalSessions:r,learnedSessions:a+l+u,agentSessions:s,status:"already-learned"}}if(m.length>0){const e=(await this.findClaudeCodeSessions()).filter(e=>m.includes(e.id));n.push(...e)}if(g.length>0){const e=(await this.findCodexSessions()).filter(e=>g.includes(e.id));r.push(...e)}if(h.length>0){const e=(await this.findCursorSessions()).filter(e=>h.includes(e.id));o.push(...e)}const y=n.length+r.length+o.length;dlog(`[Import] total sessions: ${y} (claude-code: ${n.length}, codex: ${r.length}, cursor: ${o.length})`),Av.addEvent({type:"step_start",step:"batching",label:"Organizing your sessions",message:""});const w=[{name:"Claude Code",sessions:n,extractPrompts:this.extractUserPrompts},{name:"Codex",sessions:r,extractPrompts:extractCodexPrompts},{name:"Cursor",sessions:o,extractPrompts:extractCursorPrompts}].filter(e=>e.sessions.length>0).sort((e,t)=>t.sessions.length-e.sessions.length);for(const n of w){Av.addEvent({type:"progress",message:`${n.name}: ${n.sessions.length} sessions`});for(const r of n.sessions)try{const e=await n.extractPrompts(r.filePath);e.length>0&&t.push(...e)}catch(t){e.push(`${n.name} import failed: ${t instanceof Error?t.message:String(t)}`)}}if(0===t.length)return{success:!1,totalPrompts:0,preferencesLearned:0,errors:["No prompts found in sessions"]};const S=this.splitPromptsIntoBatches(t);dlog(`[Import] batched: ${t.length} prompts → ${S.length} batches`);const E=observeSessionPrompts({prompts:t}).catch(e=>{dlog(`[Import] observer error: ${e instanceof Error?e.message:String(e)}`)});Av.addEvent({type:"step_start",step:"learning",label:"Learning your coding taste",message:`Processing ${S.length} batch${1===S.length?"":"es"}`});try{const s=getApiBaseUrl(),i=new Jy({baseUrl:s});let a=!0;for(let e=0;e<S.length;e++){const t=S[e],n=e+1,r=S.length;r>1&&Av.addEvent({type:"progress",message:`Processing batch ${n}/${r}...`});const o=this.formatBatchLearning(t),s=new Nv({request:i,sessionId:crypto.randomUUID(),projectRoot:process.cwd()}),l=[{role:"user",content:o}];dlog(`[Import] batch ${n}/${r}: ${t.length} prompts`),(await s.checkAndProcess({messages:l})).success||(a=!1,dlog(`[Import] batch ${n}/${r} failed`))}if(dlog(`[Import] all batches complete, success: ${a}`),Av.markLearningComplete(),await E,a){if(n.length>0){const e=n.map(e=>e.id);await markSessionsAsLearned("claude-code",e),dlog(`[Import] marked ${e.length} claude-code sessions as learned`)}if(r.length>0){const e=r.map(e=>e.id);await markSessionsAsLearned("codex",e),dlog(`[Import] marked ${e.length} codex sessions as learned`)}if(o.length>0){const e=o.map(e=>e.id);await markSessionsAsLearned("cursor",e),dlog(`[Import] marked ${e.length} cursor sessions as learned`)}}else dlog("[Import] NOT marking sessions as learned due to batch failures");const l=await this.extractLearningSummary(),u=[];if(n.length>0&&u.push(`Claude Code (${n.length})`),r.length>0&&u.push(`Codex (${r.length})`),o.length>0&&u.push(`Cursor (${o.length})`),!a){const s=Av.getEvents().some(e=>"error"===e.type&&e.message?.toLowerCase().includes("insufficient credits")),i="Learning failed - sessions not marked as learned";return e.push(i),s||Av.addEvent({type:"error",message:i}),{success:!1,totalPrompts:t.length,preferencesLearned:l.totalLearnings,errors:e,totalSessions:y,agentSessions:[...n.length>0?[{agent:"claude-code",sessionIds:n.map(e=>e.id),displayName:"Claude Code"}]:[],...r.length>0?[{agent:"codex",sessionIds:r.map(e=>e.id),displayName:"Codex"}]:[],...o.length>0?[{agent:"cursor",sessionIds:o.map(e=>e.id),displayName:"Cursor"}]:[]]}}return Av.addEvent({type:"step_start",step:"complete",label:"Learning Complete",message:`Learned from ${u.join(" + ")}`,learningCount:l.totalLearnings,categories:l.categories,storage:".commandcode/taste/taste.md"}),{success:!0,totalPrompts:t.length,preferencesLearned:l.totalLearnings,errors:e,totalSessions:y,agentSessions:[...n.length>0?[{agent:"claude-code",sessionIds:n.map(e=>e.id),displayName:"Claude Code"}]:[],...r.length>0?[{agent:"codex",sessionIds:r.map(e=>e.id),displayName:"Codex"}]:[],...o.length>0?[{agent:"cursor",sessionIds:o.map(e=>e.id),displayName:"Cursor"}]:[]]}}catch(n){const r=`Learning agent failed: ${n instanceof Error?n.message:String(n)}`;return e.push(r),Av.addEvent({type:"error",message:r}),{success:!1,totalPrompts:t.length,preferencesLearned:0,errors:e}}}catch(t){const n=t instanceof Error?t.message:String(t);return e.push(n),{success:!1,totalPrompts:0,preferencesLearned:0,errors:e}}}static async extractLearningSummary(){try{const t=e.join(process.cwd(),".commandcode","taste","taste.md"),n=await F.readFile(t,"utf-8"),r=n.match(/^- .+Confidence:/gm),o=r?r.length:0;return{totalLearnings:o,categories:n.split("\n").filter(e=>e.startsWith("# ")).map(e=>e.replace(/^# /,"").trim()).filter(e=>e&&!e.toLowerCase().startsWith("taste"))}}catch{return{totalLearnings:0,categories:[]}}}static formatBatchLearning(e){return e.map((e,t)=>`${t+1}. ${e}`).join("\n\n")}},rx=__name(e=>new Promise((t,n)=>setTimeout(()=>n(new Error("Learning timed out. Try again with /learn-taste")),e)),"createTimeout"),ox=__name(e=>{const[t,n]=Z({isImporting:!0,waitingForInput:!1,alreadyLearned:!1,learnedSessionCount:0,totalSessionCount:0,agentSessions:[],error:null});return te(()=>{Av.reset(),Av.markImportStarted(),(async()=>{try{const t=await Promise.race([nx.importAndLearn(),rx(12e4)]);if(t.success)return void n(e=>({...e,isImporting:!1,waitingForInput:!0}));if("already-learned"===t.status)return void n(e=>({...e,isImporting:!1,alreadyLearned:!0,learnedSessionCount:t.learnedSessions||0,totalSessionCount:t.totalSessions||0,agentSessions:t.agentSessions||[],waitingForInput:!0}));const r=t.errors.join("\n");n(e=>({...e,isImporting:!1,waitingForInput:!0,error:r})),e&&e(r)}catch(t){const r=t instanceof Error?t.message:String(t);n(e=>({...e,isImporting:!1,waitingForInput:!0,error:r})),e&&e(r)}})()},[e]),t},"useImportProcess");tn();var sx=__name(({onEscape:e,onEnter:t,enabled:n=!0})=>{le((r,o)=>{n&&(o.escape&&e(),(o.return||"\n"===r)&&t())})},"useKeyboardInput");tn(),Bn();var ix=__name(({autoLearn:e,onShouldSkip:t})=>{const[n,r]=Z(null),[o,s]=Z(null),i=ee(!1);return te(()=>{if(i.current)return;let n=null;return(async()=>{try{i.current=!0,dlog("[Hook:Conditions] loading...");const n=await checkOnboardingConditions();r(n),n.shouldTrigger||e?dlog(`[Hook:Conditions] result: ${n.reason}, sessions: ${n.sessionCount}`):(dlog("[Hook:Conditions] no trigger, skipping"),t())}catch(e){const r=e instanceof Error?e.message:String(e);dlog("[Hook:Conditions] error",r),s(r),n=setTimeout(()=>t(),2e3)}})(),()=>{n&&clearTimeout(n)}},[e,t]),{conditions:n,error:o,isLoading:!n&&!o}},"useOnboardingConditions");async function completeOnboarding(e){try{await markOnboardingCompleted(),dlog("[Helper] onboarding marked complete")}catch(e){dlog(`[Helper] complete error: ${e instanceof Error?e.message:String(e)}`)}finally{Av.reset(),e()}}async function skipOnboarding(e){try{await markOnboardingSkipped(),dlog("[Helper] onboarding marked skipped")}catch(e){dlog(`[Helper] skip error: ${e instanceof Error?e.message:String(e)}`)}finally{Av.reset(),e()}}tn(),Bn(),tn(),Bn(),__name(completeOnboarding,"completeOnboarding"),__name(skipOnboarding,"skipOnboarding");var ax=__name(({onStepChange:e,onError:t,onCompleteCallback:n})=>{const r=ee(n),o=re(()=>{dlog("[Handler] import started → learning"),e("learning")},[e]),s=re(async()=>{dlog("[Handler] import complete → done"),e("done"),await completeOnboarding(()=>r.current())},[e]),i=re(e=>{dlog(`[Handler] import error: ${e}`),t(e)},[t]),a=re(async()=>{dlog("[Handler] error dismissed by user → done"),e("done"),await skipOnboarding(()=>r.current({skipped:!0}))},[e]),l=re(async()=>{dlog("[Handler] skipped → done"),e("done"),await skipOnboarding(()=>r.current({skipped:!0}))},[e]);return n!==r.current&&(r.current=n),{handleImportStart:o,handleImportComplete:s,handleImportError:i,handleErrorDismiss:a,handleSkip:l}},"useOnboardingHandlers");tn(),Bn();var lx=__name(({conditions:e,autoLearn:t})=>{const[n,r]=Z("checking"),o=ee(!1);return te(()=>{if(e&&!o.current){if(o.current=!0,t)return dlog("[Flow] autoLearn → learning"),void r("learning");dlog(`[Flow] → asking (${e.reason})`),r("asking")}},[e,t]),te(()=>{dlog(`[Flow] step: ${n}`)},[n]),{step:n,setStep:r}},"useOnboardingFlow");tn(),tn(),kr();var cx=__name(({error:e})=>J.createElement(oe,{padding:1},J.createElement(oe,{flexDirection:"column",borderColor:Xn.RED,padding:1},J.createElement(oe,{marginBottom:1},J.createElement(se,null,"Error initializing onboarding: ",e)),J.createElement(oe,null,J.createElement(se,null,"Continuing without onboarding...")))),"OnboardingError");tn(),tn(),sn(),kr();var ux=__name(()=>`(run /${jt.LEARN_TASTE} anytime)`,"getSkipHint"),dx=__name(()=>J.createElement(se,null,"Skip for now"," ",J.createElement(se,{color:Xn.DIM},ux())),"SkipOptionText"),mx=__name(({sessionCount:e,agentSessions:t,onImport:n,onSkip:r})=>{const[o,s]=Z(1);return le((e,t)=>{t.escape?r():t.upArrow||t.downArrow?s(e=>1===e?2:1):"1"!==e?"2"!==e?t.return&&(1===o?n():r()):r():n()}),J.createElement(oe,{flexDirection:"column",borderStyle:"single",borderColor:er.TEXT,paddingX:1,paddingY:0},J.createElement(se,{color:er.TEXT,bold:!0},"Build Your Coding Taste"),J.createElement(oe,{marginTop:1,flexDirection:"column"},J.createElement(se,null,"Found"," ",1===e?"one session":`${e} sessions`," ","from"," ",t.map(e=>e.displayName).join(", ")," ","for this project."),J.createElement(oe,{marginTop:1},J.createElement(se,null,"Want me to analyze"," ",1===e?"that session":"those sessions"," ","and build your coding taste profile?"))),J.createElement(oe,{marginTop:1,flexDirection:"column"},J.createElement(oe,null,J.createElement(se,{color:1===o?er.TEXT:Xn.GRAY},1===o?Pe.pointer:" "," 1. Yes, learn from my sessions (recommended)")),J.createElement(oe,null,J.createElement(se,{color:2===o?er.TEXT:Xn.GRAY},2===o?Pe.pointer:" "," 2."," ",J.createElement(dx,null)))),J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"Use arrow keys or numbers to select, Enter to confirm")))},"ImportChoice");tn(),tn(),kr();var px=__name(({error:e})=>J.createElement(oe,{flexDirection:"column",borderStyle:"single",borderColor:Xn.RED,paddingX:2,paddingY:1,marginBottom:2},J.createElement(se,{color:Xn.RED,bold:!0},"Oops, something went wrong:"),J.createElement(oe,{marginTop:1},J.createElement(se,null,e))),"ErrorSection");tn(),tn(),kr(),tn(),tn(),tn(),kr(),tn(),kr();var gx=__name(()=>J.createElement(se,{backgroundColor:er.BADGE_BG,color:er.BADGE_FG},Jv),"TasteBadge");tn(),kr(),tn();var hx=["percolating","excavating","deciphering","triangulating","osmosing","metabolizing","grokking","spelunking","interpolating","marinating","crystallizing","synthesizing","calibrating","fermenting","coalescing","transmuting","simmering","distilling","ruminating","perusing","assimilating","untangling","decoding","absorbing","harmonizing","digesting","contemplating","extrapolating","materializing","finalizing"],fx="⎿",yx=__name(()=>{const[e,t]=Z(()=>Math.floor(Math.random()*hx.length));return te(()=>{const e=setInterval(()=>{t(Math.floor(Math.random()*hx.length))},2e3);return()=>clearInterval(e)},[]),J.createElement(se,{color:Xn.YELLOW},hx[e],"...")},"PulsingText");tn(),kr();var wx=[Pe.bullet,Pe.squareSmallFilled,Pe.lozenge,Pe.star,Pe.triangleRight,Pe.triangleUp,Pe.circleFilled,Pe.pointer],Sx=__name(e=>String(e).padStart(3," "),"padNum"),bx=__name(e=>wx[e%wx.length],"getSymbol"),Ex=__name((e,t,n,r)=>r?`${e} observations (↑↓ scroll)`:`↑${Sx(t)} ↓${Sx(n)} (↑↓ scroll)`,"buildStatusLine"),Cx=__name(({insights:e})=>{const[t,n]=Z(0),[r,o]=Z(!0),s=e.length,i=s>10,a=Math.max(0,s-10);if(te(()=>{r&&i&&n(a)},[s,r,i,a]),le((e,t)=>{if(i)return t.upArrow?(o(!1),void n(e=>Math.max(0,e-1))):void(t.downArrow&&n(e=>{const t=Math.min(a,e+1);return t===a&&o(!0),t}))}),0===s)return null;const l=e.slice(t,t+10),u=t,d=s-t-10;return J.createElement(oe,{flexDirection:"column",marginLeft:4,marginBottom:0},i&&J.createElement(se,{color:Xn.DIM},Ex(s,u,d,r)),l.map((e,n)=>{const r=t+n;return J.createElement(oe,{key:r,marginBottom:0},J.createElement(se,{color:Xn.DIM},bx(r)," ",e))}))},"ScrollableInsights");tn(),kr();var vx=__name(()=>{const[e,t]=Z(!0);return te(()=>{const e=setInterval(()=>{t(e=>!e)},500);return()=>clearInterval(e)},[]),J.createElement(se,{color:Xn.YELLOW},e?Pe.circleFilled:Pe.circle)},"PulsingDot"),kx=__name(({label:e,message:t,active:n,complete:r,items:o,insights:s,isIntro:i,isAllComplete:a,summary:l})=>{if(i)return J.createElement(oe,{flexDirection:"column",marginBottom:0},J.createElement(gx,null),J.createElement(oe,{marginTop:0},J.createElement(se,{color:Xn.DIM},fx),J.createElement(oe,{marginLeft:2},a?J.createElement(se,{color:er.TEXT},"learned your coding taste"):J.createElement(yx,null))));const u=__name(()=>r?J.createElement(se,{color:sr.BG},Pe.square):n?J.createElement(vx,null):J.createElement(se,{color:Xn.DIM},Pe.circle),"getStatusIcon"),d=o.length>0||s.length>0||t||l&&l.learningCount>0;return!r||n||d?J.createElement(oe,{flexDirection:"column",marginBottom:0},(n||r)&&J.createElement(oe,{marginBottom:0},J.createElement(oe,{marginRight:1},u()),J.createElement(se,{color:r?Xn.WHITE:n?Xn.YELLOW:Xn.DIM},e)),r&&t&&(!l||0===l.learningCount)&&J.createElement(oe,{marginLeft:3,marginBottom:0},J.createElement(se,{color:Xn.DIM},t)),o.length>0&&J.createElement(oe,{flexDirection:"column",marginLeft:1,marginBottom:0},o.map((e,t)=>J.createElement(se,{key:t,color:Xn.DIM},`${Pe.bullet} ${e}`))),s.length>0&&J.createElement(Cx,{insights:s}),r&&l&&l.learningCount>0&&J.createElement(oe,{flexDirection:"column",marginLeft:1,marginBottom:0},J.createElement(oe,{marginBottom:1,flexDirection:"row"},J.createElement(se,null,fx),J.createElement(oe,{marginLeft:2},J.createElement(se,{color:er.TEXT},"Learned ",l.learningCount," preference",1===l.learningCount?"":"s",l.categories.length>0?` across ${l.categories.length} ${1===l.categories.length?"category":"categories"}`:""))),J.createElement(oe,{flexDirection:"column",marginLeft:1},J.createElement(se,{color:Xn.DIM},Pe.pointerSmall," Stored in"," ",l.storage),J.createElement(se,{color:Xn.DIM},"Command Code automatically uses & updates taste files.")))):null},"StepItem"),Tx=__name(({steps:e})=>{const t=e.find(e=>"complete"===e.id)?.complete??!1;return J.createElement(oe,{flexDirection:"column",marginBottom:1},e.map((e,n)=>J.createElement(oe,{key:e.id,marginLeft:0===n?0:3},J.createElement(kx,{label:e.label,message:e.message,active:e.active,complete:e.complete,items:e.items,insights:e.insights,summary:e.summary,isIntro:0===n,isAllComplete:t}))))},"StepsSection"),_x=__name(({steps:e})=>J.createElement(Tx,{steps:e}),"ProgressSection");tn(),kr();var xx=__name(({isImporting:e=!1,waitingForInput:t=!1})=>J.createElement(J.Fragment,null,e&&J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"ESC to cancel")),t&&J.createElement(oe,{marginTop:1},J.createElement(se,{bold:!0},"Press ENTER to continue"))),"HelpTextSection");tn();var Px=[{id:"importing",label:"Initializing Taste Profile",message:"",active:!1,complete:!1,items:[],insights:[]},{id:"batching",label:"Organizing your sessions",message:"",active:!1,complete:!1,items:[],insights:[]},{id:"learning",label:"Learning your coding taste",message:"",active:!1,complete:!1,items:[],insights:[]},{id:"complete",label:"Learned your coding taste!",message:"",active:!1,complete:!1,items:[],insights:[],summary:{learningCount:0,categories:[],storage:".commandcode/taste/taste.md"}}],Ax=__name(({onComplete:e,onError:t,onErrorDismiss:n})=>{const{steps:r,importError:o}=ex(Px),{isImporting:s,waitingForInput:i,error:a}=ox(t);return sx({onEscape:__name(()=>{i&&((a||o)&&n?n():e())},"onEscape"),onEnter:__name(()=>{i&&((a||o)&&n?n():e())},"onEnter"),enabled:s||i}),J.createElement(oe,{flexDirection:"column",padding:1},o&&J.createElement(px,{error:o}),!o&&J.createElement(_x,{steps:r}),J.createElement(xx,{isImporting:s,waitingForInput:i}))},"ImportProgress"),Ix=__name(({step:e,conditions:t,onImportStart:n,onImportComplete:r,onImportError:o,onErrorDismiss:s,onSkip:i})=>"asking"===e?t&&"has_sessions"===t.reason?J.createElement(mx,{sessionCount:t.sessionCount,agentSessions:t.agentSessions,onImport:n,onSkip:i}):null:"learning"===e?J.createElement(Ax,{onComplete:r,onError:o,onErrorDismiss:s}):null,"OnboardingStepRenderer"),Nx=__name(({onComplete:e,autoLearn:t=!1})=>{te(()=>(dlog("[UI:Onboarding] mounted"),()=>{dlog("[UI:Onboarding] unmounted")}),[]);const{conditions:n,error:r,isLoading:o}=ix({autoLearn:t,onShouldSkip:e}),{step:s,setStep:i}=lx({conditions:n,autoLearn:t}),{handleImportStart:a,handleImportComplete:l,handleImportError:u,handleErrorDismiss:d,handleSkip:m}=ax({onStepChange:__name(e=>{i(e)},"onStepChange"),onError:__name(()=>{},"onError"),onCompleteCallback:e});return dlog(`[UI:Onboarding] render: ${s}${n?.reason?` (${n.reason})`:""}${r?" ERROR":""}`),o?null:r?J.createElement(cx,{error:r}):"done"===s?null:J.createElement(Ix,{step:s,conditions:n,onImportStart:a,onImportComplete:l,onImportError:u,onErrorDismiss:d,onSkip:m})},"TasteOnboarding");function getEntryCharCount(e){return("input"in e?e.input??"":"").length+("output"in e?e.output??"":"").length+("command"in e?e.command??"":"").length}function getBudgetedFeed(e,t){if(0===e.length)return[];const n=[...e].reverse();let r=t;const o=[];for(const e of n)if(o.unshift(e),r-=getEntryCharCount(e),r<=0)break;return o}__name(getEntryCharCount,"getEntryCharCount"),__name(getBudgetedFeed,"getBudgetedFeed");var Rx=X(__name(function MainView2({feed:e,liveEntries:t,queuedMessages:n,isCmdCodeBusy:r,staticKey:o,transcriptMode:s,tasteOnboardingEntryId:i,autoLearnTaste:a,retryAttempt:l,input:u,setInput:d,fileSearchQuery:m,setFileSearchQuery:g,showFileList:h,setShowFileList:f,showProviderSelector:y,showModelSelector:w,showMemorySelector:S,showMcpManager:E,showAgentsConfig:C,showRewindSelector:v,showLoginOverlay:k,showUsageOverlay:T,showAddDirModal:_,showCompactModeSelector:x,authComponentInfo:P,status:A,currentProvider:I,currentModel:N,showProviderNotification:R,shareInfo:M,showShareNotification:L,unshareNotificationMessage:$,updateStatus:D,updateFailedInfo:O,creditWarning:F,permissionMode:q,hintMessage:j,pendingExitKey:B,tasteLearningEnabled:U,interactionTokens:z,contextUsage:H,historyManagerRef:W,executionState:G,contextEngineRef:V,onSubmit:Q,onCommand:K,onToggleAutoAccept:Y,onResetPendingExitKey:X,onDoubleEscapeEmpty:Z,onTasteOnboardingComplete:ee,permissionPanel:te,questionPanel:ie,onRewindSelect:ae,onRewindCancel:le,onLoginComplete:ce,onLoginCancel:ue,setShowProviderSelector:de,setShowModelSelector:me,setShowMemorySelector:pe,setShowMcpManager:ge,setShowAgentsConfig:he,setShowAddDirModal:fe,setShowUsageOverlay:ye,handleProviderSelect:we,handleProviderCancel:Se,handleModelSelect:be,handleModelCancel:Ee,handleCompactModeSelect:Ce,handleCompactModeCancel:ve,handleAuthSuccess:ke,handleAuthCancel:Te}){const _e=ne(()=>e.filter(e=>"taste-onboarding"!==e.role),[e]),xe=useTerminalWidth(),Pe=ne(()=>"off"===s?_e:getBudgetedFeed(_e,"limited"===s?15e3:5e4),[_e,s]),Ae=ne(()=>"off"===s?0:Math.max(0,_e.length-Pe.length),[_e.length,Pe.length,s]),Ie=ne(()=>0===Ae?Pe:Pe.filter(e=>"user"!==e.role),[Pe,Ae]),Ne=re(()=>he(!1),[he]),Re=re(()=>pe(!1),[pe]),Me=re(()=>ge(!1),[ge]),Le=re(()=>fe(!1),[fe]),$e=re(()=>me(!0),[me]),De=!("off"!==s||te||ie||y||w||P||S||E||C||v||k||T||_||x||i);return J.createElement(oe,{flexDirection:"column",width:"100%"},J.createElement(H_,{staticKey:o,feed:Ie,showHeader:!0,expandedToolOutput:"off"!==s,currentModel:N,currentProvider:I,hiddenCount:Ae}),i&&J.createElement(Nx,{onComplete:ee,autoLearn:a}),t.map(e=>e.metadata?.isAgent?J.createElement(G_,{key:e.id,entry:e}):J.createElement(oe,{key:e.id,marginBottom:1,width:"90%"},renderFeedEntry(e,"off"!==s))),J.createElement(RetryMessage,{attempt:l}),ie,te,"off"!==s&&J.createElement(oe,{flexDirection:"column",marginTop:1},J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},"─".repeat(xe))),J.createElement(oe,{paddingRight:1},J.createElement(se,{backgroundColor:sr.BG,color:sr.FG,bold:!0},`${Yv}DETAILED TRANSCRIPT${Yv}`),J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,{bold:!0},"ctrl+o"),J.createElement(se,{color:Xn.DIM}," to toggle"),J.createElement(se,{color:Xn.DIM}," · "),J.createElement(se,{bold:!0},"ctrl+e"),J.createElement(se,{color:Xn.DIM}," ","to"," ","limited"===s?"show all":"collapse"))),De&&J.createElement(O_,{queuedMessages:n,isProcessing:r,executionState:G,status:A,input:u,setInput:d,onSubmit:Q,showFileList:h,setShowFileList:f,fileSearchQuery:m,setFileSearchQuery:g,onCommand:K,outputTokens:z,contextUsage:H,tasteLearning:U,shareInfo:M,showShareNotification:L,unshareNotificationMessage:$,updateStatus:D,updateFailedInfo:O,creditWarning:F,currentProvider:I,showProviderInfo:R,permissionMode:q,onToggleAutoAccept:Y,hintMessage:j,historyManager:W.current,pendingExitKey:B,onResetPendingExitKey:X,onDoubleEscapeEmpty:Z,retryAttempt:l,onAltP:$e}),y&&J.createElement(oe,{marginY:1},J.createElement(J_,{onSelect:we,onCancel:Se,currentProvider:I})),w&&J.createElement(oe,{marginY:1},J.createElement(Y_,{onSelect:be,onCancel:Ee,currentModel:N,currentProvider:I})),x&&J.createElement(oe,{marginY:1},J.createElement(c_,{onSelect:Ce,onCancel:ve})),C&&J.createElement(oe,{marginY:1},J.createElement(a_,{onCancel:Ne})),S&&J.createElement(oe,{marginY:1},J.createElement(j_,{onClose:Re})),E&&J.createElement(oe,{marginY:1},J.createElement(q_,{onClose:Me})),v&&V.current&&J.createElement(oe,{marginY:1},J.createElement(Z_,{checkpoints:V.current.listCheckpoints(),onSelect:ae,onCancel:le})),P&&J.createElement(oe,{marginY:1},J.createElement(P.Component,{onSuccess:ke,onCancel:Te})),k&&J.createElement(oe,{marginY:1},J.createElement(F_,{onComplete:ce,onCancel:ue})),_&&J.createElement(oe,{marginY:1},J.createElement(WT,{onClose:Le})))},"MainView"));function renderView({feedState:e,sessionState:t,statusState:n,authState:r,uiOverlays:o,onboarding:s,exitState:i,pendingOps:a,permissionState:l,contextEngineRef:u,historyManagerRef:d,executionState:m,actionCallbacks:g,onSubmit:h,onCommand:f,input:y,setInput:w,fileSearchQuery:S,setFileSearchQuery:E,updateFailedInfo:C,creditWarning:v,handleTrust:k,handleNoTrust:T,handleToggleAutoAccept:_,handleDoubleEscapeEmpty:x,handleTasteOnboardingComplete:P,loadTasteStatus:A}){if(i.shouldExit)return null;if(s.checkingProject)return null;if(s.showTrustPrompt)return J.createElement(nT,{staticKey:o.staticKey,onTrust:k,onExit:T});if(o.showSessionSelector)return J.createElement(oT,{onSelectSession:g.onSelectSession,onNewSession:g.onNewSession});if(!s.projectTrusted)return null;const I=a.pendingQuestion?J.createElement(QuestionView,{pendingQuestion:a.pendingQuestion,permissionMode:l.permissionMode,setPermissionMode:l.setPermissionMode,setPendingQuestion:a.setPendingQuestion,setStatus:n.setStatus,setStaticKey:o.setStaticKey}):null,N=a.pendingPermission?J.createElement(hT,{pendingPermission:a.pendingPermission,permissionMode:l.permissionMode,setPendingPermission:a.setPendingPermission,setStatus:n.setStatus,respondToPrompt:l.respondToPrompt,showHintMessage:n.showHintMessage,handleToggleAutoAccept:_}):null;return o.showLearningFeed?J.createElement(LearningView,{setShowLearningFeed:o.setShowLearningFeed,setStaticKey:o.setStaticKey,onExit:()=>i.setShouldExit(!0)}):o.showTasteConfig?J.createElement(TasteConfigView,{staticKey:o.staticKey,setShowTasteConfig:o.setShowTasteConfig,loadTasteStatus:A}):o.showSkillsConfig?J.createElement(SkillsConfigView,{staticKey:o.staticKey,setShowSkillsConfig:o.setShowSkillsConfig}):o.showUsageOverlay?J.createElement(UsageView,{staticKey:o.staticKey,setShowUsageOverlay:o.setShowUsageOverlay}):o.showContextView?J.createElement(ContextConfigView,{staticKey:o.staticKey,contextEngineRef:u,setShowContextView:o.setShowContextView,setInput:w}):o.showStatusView?J.createElement(StatusConfigView,{staticKey:o.staticKey,setShowStatusView:o.setShowStatusView,setInput:w}):J.createElement(Rx,{feed:e.feed,liveEntries:e.liveEntries,queuedMessages:e.queuedMessages,isCmdCodeBusy:e.isCmdCodeBusy,staticKey:o.staticKey,transcriptMode:o.transcriptMode,tasteOnboardingEntryId:s.tasteOnboardingEntryId,autoLearnTaste:s.autoLearnTaste,retryAttempt:n.retryAttempt,input:y,setInput:w,fileSearchQuery:S,setFileSearchQuery:E,showFileList:o.showFileList,setShowFileList:o.setShowFileList,showProviderSelector:o.showProviderSelector,showModelSelector:o.showModelSelector,showMemorySelector:o.showMemorySelector,showMcpManager:o.showMcpManager,showAgentsConfig:o.showAgentsConfig,showRewindSelector:o.showRewindSelector,showLoginOverlay:o.showLoginOverlay,showUsageOverlay:o.showUsageOverlay,setShowUsageOverlay:o.setShowUsageOverlay,showAddDirModal:o.showAddDirModal,showCompactModeSelector:o.showCompactModeSelector,authComponentInfo:r.authComponentInfo,status:n.status,currentProvider:r.currentProvider,currentModel:r.currentModel,showProviderNotification:r.showProviderNotification,shareInfo:n.shareInfo,showShareNotification:n.showShareNotification,unshareNotificationMessage:n.unshareNotificationMessage,updateStatus:n.updateStatus,updateFailedInfo:C,creditWarning:v,permissionMode:l.permissionMode,hintMessage:n.hintMessage,pendingExitKey:i.pendingExitKey,tasteLearningEnabled:n.tasteLearningEnabled,interactionTokens:n.interactionTokens,contextUsage:n.contextUsage,historyManagerRef:d,executionState:m,contextEngineRef:u,onSubmit:h,onCommand:f,onToggleAutoAccept:_,onResetPendingExitKey:i.resetPendingExitKey,onDoubleEscapeEmpty:x,onTasteOnboardingComplete:P,permissionPanel:N,questionPanel:I,onRewindSelect:g.onRewindSelect,onRewindCancel:g.onRewindCancel,onLoginComplete:g.onLoginComplete,onLoginCancel:g.onLoginCancel,setShowProviderSelector:o.setShowProviderSelector,setShowModelSelector:o.setShowModelSelector,setShowMemorySelector:o.setShowMemorySelector,setShowMcpManager:o.setShowMcpManager,setShowAgentsConfig:o.setShowAgentsConfig,setShowRewindSelector:o.setShowRewindSelector,setShowLoginOverlay:o.setShowLoginOverlay,setShowAddDirModal:o.setShowAddDirModal,handleProviderSelect:g.handleProviderSelect,handleProviderCancel:g.handleProviderCancel,handleModelSelect:g.handleModelSelect,handleModelCancel:g.handleModelCancel,handleCompactModeSelect:g.handleCompactModeSelect,handleCompactModeCancel:g.handleCompactModeCancel,handleAuthSuccess:g.handleAuthSuccess,handleAuthCancel:g.handleAuthCancel})}__name(renderView,"renderView");var Mx=__name(({resume:e=!1,resumeSessionId:t,continue:n=!1,trust:r=!1,dangerouslySkipPermissions:o=!1,updateStatus:s,updateFailedInfo:i,initialPrompt:a,skipOnboarding:l=!1,initialPermissionMode:u,sessionTitleHolder:d})=>{const{exit:m}=ue(),{stdout:g}=ae(),[h,f]=Z(""),[y,w]=Z(""),S=ee(!1),E=ee(!1),C=ee(null),v=ee(null),k=useUiOverlays(),T=useFeed(),_=useSession(),x=useStatus(s),P=useAuth(),A=usePendingOps(),I=useOnboarding(),N=useExit(),{executeBash:R,executionState:M}=ZC(),L=usePermissionMode({initialPermissionMode:u,dangerouslySkipPermissions:o,setPendingPermission:A.setPendingPermission,setStatus:x.setStatus,contextEngineRef:v}),{createContextEngineCallbacks:$}=useContextEngine({sessionId:_.sessionId,sessionLoaded:_.sessionLoaded,showSessionSelector:k.showSessionSelector,projectTrusted:I.projectTrusted,setFeed:T.setFeed,setLiveEntries:T.setLiveEntries,setQueuedMessages:T.setQueuedMessages,queuedMessagesRef:T.queuedMessagesRef,setStatus:x.setStatus,pinnedStatusRef:x.pinnedStatusRef,setRetryAttempt:x.setRetryAttempt,setInteractionTokens:x.setInteractionTokens,setContextUsage:x.setContextUsage,setCurrentProvider:P.setCurrentProvider,shareInfoRef:x.shareInfoRef,permissionsService:L.permissionsService,permissionModeRef:L.permissionModeRef,setPendingQuestion:A.setPendingQuestion,contextEngineRef:v}),{onCommand:D}=useCommandCtx({feedState:T,sessionState:_,statusState:x,authState:P,uiOverlays:k,onboarding:I,exitState:N,permissionState:L,contextEngineRef:v,isSubmittingRef:S,executeBash:R,createContextEngineCallbacks:$,setInput:f}),{loadTasteStatus:O,loadCurrentProvider:F,onSubmit:q}=useStartup({resume:e,resumeSessionId:t,continueLatest:n,trust:r,initialPrompt:a,stdout:g,feedState:T,sessionState:_,statusState:x,authState:P,onboarding:I,uiOverlays:k,permissionState:L,contextEngineRef:v,isSubmittingRef:S,initialPromptSubmittedRef:E,historyManagerRef:C,executeBash:R,createContextEngineCallbacks:$,setInput:f,onCommand:D});useLifecycle({exit:m,feedState:T,exitState:N,statusState:x,authState:P,onboarding:I,uiOverlays:k,skipOnboarding:l,contextEngineRef:v,sessionTitleHolder:d});const{handleToggleAutoAccept:j,handleDoubleEscapeEmpty:B,handleTasteOnboardingComplete:U,handleTrust:z,handleNoTrust:H}=useHandlers({resume:e,feedState:T,onboarding:I,uiOverlays:k,exitState:N,pendingOps:A,permissionState:L,statusState:x,authState:P,contextEngineRef:v,loadTasteStatus:O,loadCurrentProvider:F,setInput:__name(e=>f(e),"setInput")}),W=useMainActionCallbacks({feedState:T,sessionState:_,statusState:x,authState:P,uiOverlays:k,permissionState:L,contextEngineRef:v,createContextEngineCallbacks:$,setInput:f}),{creditWarning:G}=useCreditWarning({interactionTokens:x.interactionTokens});return renderView({feedState:T,sessionState:_,statusState:x,authState:P,uiOverlays:k,onboarding:I,exitState:N,pendingOps:A,permissionState:L,contextEngineRef:v,historyManagerRef:C,executionState:M,actionCallbacks:W,onSubmit:q,onCommand:D,input:h,setInput:f,fileSearchQuery:y,setFileSearchQuery:w,updateFailedInfo:i,creditWarning:G,handleTrust:z,handleNoTrust:H,handleToggleAutoAccept:j,handleDoubleEscapeEmpty:B,handleTasteOnboardingComplete:U,loadTasteStatus:O})},"InteractiveCLI");$r(),Jn(),kr();var Lx=__name(e=>e.replace(/\x1B\[[0-9;]*[A-Za-z]/g,"").replace(/[\x00-\x1F\x7F]/g," ").trim(),"sanitizeTitleForOutput"),$x=me.hex(Xn.DIM),Dx=__name(e=>{const t=getInvokedCommandName(),n=Je([e]);return`${$x("To continue this session, run:")}\n${$x(`${t} --resume ${n}`)}\n`},"formatResumeHint"),Ox=__name(e=>e?{isValid:!0}:{isValid:!1,errorMessage:["Error: Interactive mode requires a TTY terminal.","Please run this command directly in your terminal, not through a pipe or redirect."].join("\n")},"validateTtyEnvironment"),Fx=__name(e=>Boolean(e.resume||e.continue),"shouldValidateSessions"),qx=__name(({isInitialized:e,sessionCount:t})=>e&&0===t?{canProceed:!1,exitCode:0,message:"No conversations found to resume."}:{canProceed:!0},"validateSessionAvailability"),jx=__name(({options:e,resumeSessionId:t,sessionTitleHolder:n})=>{let r;return e.permissionMode?r=e.permissionMode:e.plan&&(r="plan"),{resume:"boolean"==typeof e.resume?e.resume:void 0,resumeSessionId:t,continue:e.continue,trust:e.trust,dangerouslySkipPermissions:e.dangerouslySkipPermissions,initialPrompt:e.initialPrompt,skipOnboarding:e.skipOnboarding,initialPermissionMode:r,sessionTitleHolder:n}},"buildInteractiveCLIProps"),Bx=__name(()=>({stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,exitOnCtrlC:!1}),"getInkRenderOptions"),Ux=__name(()=>{enableBracketedPasteMode(),process.on("exit",()=>{disableBracketedPasteMode()})},"setupBracketedPasteMode"),zx=__name(()=>{Ux()},"initializeTerminal"),Hx=__name(async(e={})=>{const t=Ox(process.stdin.isTTY);let n;if(t.isValid||(console.error(t.errorMessage),process.exit(1)),zx(),"string"==typeof e.resume){const t=e.resume;await _C.isProjectInitialized()||(console.error("Project not initialized. Run cmd to start a conversation first."),process.exit(1));const r=await _C.findSessionByName(t);r||(console.error(`No session named "${t}" found.`),process.exit(1)),n=r.id}if(Fx(e)&&!n){const e=await _C.isProjectInitialized(),t=e?await _C.listSessions():[],n=qx({isInitialized:e,sessionCount:t.length});n.canProceed||(console.log(n.message),process.exit(n.exitCode))}startEarlyInputCapture();const r={},o=jx({options:e,resumeSessionId:n,sessionTitleHolder:r}),s=Bx(),i=ce(J.createElement(Mx,{...o}),s);registerInkControl({clear:i.clear,stdout:process.stdout,instance:await resolveInkInstance(process.stdout)}),await i.waitUntilExit();const a=await(r.loadTitle?.());if(a){const e=Lx(a);e&&process.stdout.write(Dx(e))}},"interactiveMode");dn(),tn(),sn(),xb(),wb();var Wx=__name(async()=>{try{return await runLogin(),!!await getAuthKey()||(console.error(`${Pe.cross} Authentication failed. Please try again with: cmd login`),!1)}catch(e){return isUserCancellation(e)||(console.error(`${Pe.cross} Login failed: ${getErrorMessage2(e)}`),console.error("Please try again with: cmd login")),!1}},"attemptLogin");async function ensureAuthenticated(){try{return!!await getAuthKey()||Wx()}catch(e){return console.error("Error checking authentication:",e),!1}}__name(ensureAuthenticated,"ensureAuthenticated");var Gx=__name(e=>e&&!e.startsWith("-")?e:void 0,"parsePrompt"),Vx=__name(async()=>{await ensureAuthenticated()||process.exit(1)},"requireAuth"),Qx=__name(e=>{const t={};return e.trust&&(t.trust=!0),e.dangerouslySkipPermissions&&(t.dangerouslySkipPermissions=!0,t.trust=!0),e.skipOnboarding&&(t.skipOnboarding=!0),e.plan&&(t.plan=!0),e.permissionMode&&(t.permissionMode=e.permissionMode),t},"buildRuntimeOptions"),Kx=__name(({options:e,runtimeOptions:t,initialPrompt:n})=>e.resume?{resume:e.resume,...t}:e.continue?{continue:!0,...t}:{...t,initialPrompt:n},"getInteractiveConfig"),Yx=__name((e,t)=>"string"==typeof e.print&&e.print.trim()?e.print:t&&!t.startsWith("-")?t:"","extractPrintQuery");async function interactiveModeAction(e,t){if(t.addDir&&t.addDir.length>0)for(const e of t.addDir)addDirectory(e);if(void 0!==t.print){const n=Yx(t,e);return void await printMode({query:n,dangerouslySkipPermissions:t.dangerouslySkipPermissions,maxTurns:t.maxTurns,verbose:t.verbose,model:t.model,benchmarkOutput:t.benchmarkOutput})}const n=Gx(e);await Vx();const r=Qx(t),o=Kx({options:t,runtimeOptions:r,initialPrompt:n});await Hx(o)}__name(interactiveModeAction,"interactiveModeAction"),tn(),Bn(),jo(),Fr(),fb(),xb(),globalThis.COMMAND_CODE_CWD=process.cwd();var Jx=__name(()=>process.cwd(),"getCwd"),Xx=__name(()=>process.argv.slice(2),"getArgs"),Zx=__name(e=>e.includes("--local")?"local":e.includes("--staging")?"staging":"production","getEnv"),eP=__name(()=>{const e=Jx(),t=Xx(),n=Zx(t);dlog(`[Startup] cwd: ${e}`),dlog(`[Startup] args: ${t.join(" ")}`),dlog(`[Startup] env: ${n}`),dlog(`[Startup] traceId: ${getTraceId()??"unavailable"}`)},"logStartupInfo");async function preRun(){eP(),process.argv.includes("--ide-setup")&&(formatSetupResult(await runIDESetup()).forEach(e=>console.log(e)),process.exit(0)),await maybeRunPendingUpdate(),await migrateDeprecatedModel(),await getAuthKey()&&detectAndTrackFirstInstall().catch(()=>{}),checkForUpdateAsync(),setTimeout(()=>ensureExtensionInstalled().catch(()=>{}),100)}__name(preRun,"preRun"),tn(),sn(),Bn(),oo(),Vr();var tP=getPackageJson(),nP=__name((e,t=[])=>[...t,e],"collectAddDir");function displayCustomHelp(){const e=tP.version,t=getInvokedCommandName(),n=uC.filter(e=>!("/provider"===e.key&&!isInternalTeamFlagEnforced()));console.log(),console.log(me.bold("Command Code")+me.gray(` v${e}`)),console.log(me.gray(sC)),console.log(),console.log(me.bold("Usage")),console.log(` ${t} <command> [options]`),console.log(),console.log(me.bold("Options"));for(const e of cC){const n=e.key.replace(/^cmd/,t);console.log(" "+n.padEnd(iC)+me.gray(e.description))}console.log(),console.log(me.bold("Commands"));for(const e of dC){const n=e.key.replace(/^cmd/,t);console.log(" "+n.padEnd(iC)+me.gray(e.description))}console.log(),console.log(me.bold("Slash Commands"));for(const e of n)console.log(" "+e.key.padEnd(iC)+me.gray(e.description));console.log(),console.log(me.bold("Keyboard Shortcuts"));for(const e of lC)console.log(" "+e.key.padEnd(iC)+me.gray(e.description));console.log(),console.log(me.bold("Examples"));for(const e of pC){const n=e.key.replace(/^cmd/,t);console.log(" "+n.padEnd(iC)+me.gray(e.description))}console.log(),console.log(me.cyan("❯")+" "+me.gray(gC.replace(/cmd/,t))),console.log(),console.log(me.bold("Links"));for(const e of mC)console.log(" "+e.key.padEnd(iC)+me.cyan(e.description));console.log()}function createProgram(){const e=new _e;return e.name(getInvokedCommandName()).description("Command Code with your coding taste.").version(tP.version,"-v, --version","display the version number").argument("[prompt]","Your prompt to run in interactive mode").option("-r, --resume [name]","Resume a session by name, or pick from history").option("-c, --continue"," Continue the most recent session in the current directory").option("-t, --trust","Trust the project (skip initial trust permission prompt)").addOption(new xe("--dangerously-skip-permissions","Bypass all permission prompts (use with caution)").hideHelp()).addOption(new xe("--yolo","Bypass all permission prompts (alias for --dangerously-skip-permissions)").implies({dangerouslySkipPermissions:!0})).option("--plan","Start in plan mode (read-only exploration and planning)").addOption(new xe("--auto-accept","Start in auto-accept mode").implies({permissionMode:"auto-accept"})).addOption(new xe("--permission-mode <mode>","Set permission mode").choices(["standard","plan","auto-accept"])).option("--skip-onboarding","Skip taste onboarding (for non-interactive/automated runs)").option("-p, --print [query]","Run in non-interactive mode, output response and exit").option("--max-turns <number>","Maximum conversation turns in print mode (default: 10)",e=>{const t=parseInt(e,10);if(isNaN(t)||t<1)throw new Error("--max-turns must be a positive integer");return t}).option("--verbose","Stream tool execution progress to stderr in print mode").option("--ide-setup",aC).option("--add-dir <directory>","Add directory to workspace context",nP,[]).addOption(new xe("--model <model>","Override model for this run").hideHelp()).addOption(new xe("--benchmark-output <path>","Path to write benchmark metrics JSON").hideHelp()).addOption(new xe("--experimental","Enable experimental features").hideHelp()).addOption(new xe(_t).hideHelp()).addOption(new xe(xt).hideHelp()).addOption(new xe("-d, --debug","Enable debug mode").hideHelp()).addOption(new xe("--local","Use local server").hideHelp()).addOption(new xe("--staging","Use staging server").hideHelp()).helpOption("-h, --help","Display help message").allowUnknownOption(),e.configureHelp({formatHelp:__name(()=>(displayCustomHelp(),""),"formatHelp")}),e}function setupCommanderHooks(e){e.hook("preAction",(e,t)=>{dlogSection("cmd");const n=t.name(),r=t.parent?.name();dlog(`[cmd] ${r&&r!==n?"subcommand":"running"}: ${n}`);const o=t.opts(),s=Object.entries(o).filter(([,e])=>void 0!==e&&!1!==e).map(([e,t])=>!0===t?`--${e}`:`--${e}=${t}`).join(" ");s&&dlog(`[cmd] options: ${s}`);const i=t.args;i.length>0&&dlog(`[cmd] arguments: ${i.join(" ")}`)}),e.hook("postAction",()=>{dlogSection("Done")})}function isTTY(){return Boolean(process.stdout.isTTY&&process.stdin.isTTY&&!process.env.CI)}__name(displayCustomHelp,"displayCustomHelp"),__name(createProgram,"createProgram"),__name(setupCommanderHooks,"setupCommanderHooks"),tn(),jo(),mo(),YS(),Pb(),jS(),oo(),xb(),tn(),__name(isTTY,"isTTY");var rP=!1;function setupTelemetry(){initTelemetry()&&(startSession(),trackSystemInfo(),trackCliSessionExistsEvent(),registerCleanupHandlers())}async function trackSystemInfo(){try{const e=process.version,t=y.platform(),n=y.arch();let r,o,s,i;try{const e=await getAuthenticatedEntity();e.success&&(r=e.user?.userName,o=e.user?.id,s=e.org?.login,i=e.org?.id)}catch{}if(!o)try{const e=await loadCredentials();o=e?.userId}catch{}systemInfo({userName:r,userId:o,orgLogin:s,orgId:i,nodeVersion:e,platform:t,arch:n})}catch{}}function registerCleanupHandlers(){process.on("beforeExit",async()=>{await shutdownTelemetry()}),process.on("exit",()=>{shutdownTelemetrySync()}),process.on("SIGINT",handleShutdownSignal),process.on("SIGTERM",handleShutdownSignal)}function handleShutdownSignal(){rP||(rP=!0,shutdownTelemetry().finally(()=>{process.exit(0)}))}async function trackCliSessionExistsEvent(){try{if(!await getAuthKey())return;const e=getSessionId();if(!e)return;const t=getPackageJson().version||"unknown",n=y.platform(),r=y.arch(),o=isTTY()?"interactive":"non-interactive";await trackLifecycleEvent({eventType:"cli_session_exists",metadata:{sessionId:e,cliVersion:t,mode:o,os:`${n}-${r}`}})}catch{}}async function openGitHubIssue(e){const t=buildGitHubIssueUrl(e),n=Ae("Opening GitHub issues...").start();try{await fe(t,{wait:!1,background:!0}),n.succeed(`Opened ${createOSC8Link(t,"GitHub issue")} in your browser`),console.log("")}catch(e){n.fail("Failed to open browser"),console.log(""),console.log(createOSC8Link(t,"Open GitHub issue manually")),console.log("")}}__name(setupTelemetry,"setupTelemetry"),__name(trackSystemInfo,"trackSystemInfo"),__name(registerCleanupHandlers,"registerCleanupHandlers"),__name(handleShutdownSignal,"handleShutdownSignal"),__name(trackCliSessionExistsEvent,"trackCliSessionExistsEvent"),xb(),tn(),Hr(),__name(openGitHubIssue,"openGitHubIssue");var oP=new _e("feedback").description("Open GitHub issues to share feedback or report bugs").argument("[title]","Optional issue title").action(openGitHubIssue);tn();var sP=new _e("help").description("Display help information").allowUnknownOption().allowExcessArguments().action(function(){this.parent?.help()});async function runInfo(e){const{waitUntilExit:t}=ce(J.createElement(qk,{verbose:e.verbose,text:e.text}));await t()}tn(),tn(),__name(runInfo,"runInfo");var iP=new _e("info").description("Display system information").option("--verbose","Show detailed CPU and network information").option("--text","Print plain text without colors").allowUnknownOption().allowExcessArguments().action(async e=>{await runInfo(e)});function runLearnTaste(){const{unmount:e}=ce(J.createElement(Ax,{onComplete:__name(()=>{e(),process.exit(0)},"onComplete"),onErrorDismiss:__name(()=>{e(),process.exit(1)},"onErrorDismiss")}))}tn(),sn(),tn(),__name(runLearnTaste,"runLearnTaste"),Bn(),jo();var aP=new _e(jt.LEARN_TASTE).description("Learn from your previous sessions - updates your taste profile").allowUnknownOption().allowExcessArguments().action(async()=>{try{runLearnTaste()}catch(e){trackError({error:sanitizeErrorForTelemetry({error:e instanceof Error?e:new Error(String(e)),label:"learn_taste_render_failed"}),context:{component:$o.LEARN_TASTE_COMMAND,heading:"Learn taste render failed"}}),dlog(`[/learn-taste] render failed: ${e instanceof Error?e.message:String(e)}`),await shutdownTelemetry(),process.exit(1)}});function addMcpCommand(){const e=new _e("add");return e.description("Add an MCP server").argument("<name>","Server name (unique identifier)").argument("[url]","Server URL (required for http transport)").option("-t, --transport <type>","Transport type (stdio or http)","stdio").addOption(new xe("-s, --scope <scope>","Configuration scope").choices(["local","project","user"]).default("local")).option("-e, --env <KEY=value>","Environment variable (repeatable)",collectKeyValue,{}).option("-H, --header <header>","HTTP header (repeatable, http only)",collectHeaders,{}).allowUnknownOption().allowExcessArguments().action(async(e,t,n,r)=>{const o=getInvokedCommandName();try{let s;/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(e)&&!e.includes("__")||(console.error(me.red(`Error: Invalid server name '${e}'`)),console.error(me.gray("Names must start with a letter or number, contain only letters, numbers, hyphens, and single underscores")),process.exit(1)),"stdio"!==n.transport&&"http"!==n.transport&&(console.error(me.red(`Error: Invalid transport type '${n.transport}'`)),console.error(me.gray("Valid options: stdio, http")),process.exit(1));let i=!1;if("http"===n.transport){t||(console.error(me.red("Error: URL is required for http transport")),console.error(me.gray("Usage: cmd mcp add --transport http <name> <url>")),process.exit(1));try{new URL(t)}catch{console.error(me.red(`Error: Invalid URL '${t}'`)),process.exit(1)}s={transport:"http",enabled:!0,url:t,...Object.keys(n.header).length>0&&{headers:n.header},...Object.keys(n.env).length>0&&{env:n.env}},console.log(me.gray("Checking server authentication requirements..."));const r=await checkServerAuthRequirements(t);if(r.error&&console.log(me.yellow(`Warning: ${r.error}`)),r.requiresAuth&&r.metadata){console.log(me.cyan("Server requires OAuth authentication."));let t,n="command-code";if(r.metadata.registrationEndpoint){console.log(me.gray("Registering OAuth client..."));const e=await registerOAuthClient({registrationEndpoint:r.metadata.registrationEndpoint,clientName:"Command Code CLI",redirectUris:[`http://127.0.0.1:${jw}/callback`]});e&&(n=e.clientId,t=e.clientSecret)}s.oauth={authorizationUrl:r.metadata.authorizationEndpoint,tokenUrl:r.metadata.tokenEndpoint,clientId:n,clientSecret:t,scopes:r.metadata.scopes},console.log(me.gray("A browser window will open for authentication.\n"));const o=await performOAuthFlow(e,{authorizationUrl:r.metadata.authorizationEndpoint,tokenUrl:r.metadata.tokenEndpoint,clientId:n,clientSecret:t,scopes:r.metadata.scopes},{onStatus:__name(e=>{console.log(me.gray(` ${e}`))},"onStatus")});o.success?console.log(me.green("✓ Successfully authenticated")):(i=!0,console.log(me.yellow(`Warning: Authentication failed: ${o.error}`)),console.log(me.gray("You can retry with: cmd mcp auth "+e)),console.log(me.gray("Or authenticate via the /mcp menu in a session")))}}else{const o=r.args,i=process.argv.indexOf("--");let a,l=[];if(-1!==i){const e=process.argv.slice(i+1);0===e.length&&(console.error(me.red("Error: Command is required for stdio transport")),console.error(me.gray("Usage: cmd mcp add --transport stdio <name> -- <command> [args...]")),process.exit(1)),a=e[0],l=e.slice(1)}else if(t){a=t;const n=o.indexOf(e);-1!==n&&o.length>n+2&&(l=o.slice(n+2))}else console.error(me.red("Error: Command is required for stdio transport")),console.error(me.gray("Usage: cmd mcp add --transport stdio <name> -- <command> [args...]")),console.error(me.gray(" or: cmd mcp add <name> <command> [args...]")),process.exit(1);s={transport:"stdio",enabled:!0,command:a,...l.length>0&&{args:l},...Object.keys(n.env).length>0&&{env:n.env}}}await addMcpServer({name:e,serverConfig:s,scope:n.scope});const a="user"===n.scope?"global":"project"===n.scope?"project":"local";if(i?console.log(me.yellow(`✓ Added MCP server '${e}' to ${a} config (authentication pending)`)):console.log(me.green(`✓ Added MCP server '${e}' to ${a} config`)),"http"===s.transport)console.log(me.gray(` URL: ${s.url}`));else{const e=[s.command,...s.args||[]].join(" ");console.log(me.gray(` Command: ${e}`))}console.log(""),console.log(me.cyan("Next steps:")),console.log(me.gray(`Start ${o} and run /mcp to manage configured MCP servers.`))}catch(e){console.error(me.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function collectKeyValue(e,t){const[n,...r]=e.split("=");return n&&0!==r.length||(console.error(me.red(`Error: Invalid format '${e}', expected KEY=value`)),process.exit(1)),t[n]=r.join("="),t}function collectHeaders(e,t){const n=e.indexOf(":");-1===n&&(console.error(me.red(`Error: Invalid header format '${e}', expected 'Header: value'`)),process.exit(1));const r=e.substring(0,n).trim(),o=e.substring(n+1).trim();return r||(console.error(me.red(`Error: Empty header name in '${e}'`)),process.exit(1)),t[r]=o,t}function listMcpCommand(){const e=new _e("list");return e.description("List configured MCP servers").action(async()=>{try{const e=await listMcpServers();if(0===e.length)return console.log(me.yellow("\nNo MCP servers configured\n")),console.log(me.gray("Add a server with:")),console.log(me.gray(" cmd mcp add --transport http <name> <url>")),console.log(me.gray(" cmd mcp add --transport stdio <name> -- <command>")),void console.log(me.gray("\nDocs: https://commandcode.ai/docs/mcp"));console.log(me.hex("#E4CCFF").bold("\nMCP Servers\n"));const t=Math.max(4,...e.map(e=>e.name.length)),n=5,r=7;console.log(me.dim(` ${"NAME".padEnd(t)} ${"TYPE".padEnd(n)} ${"SCOPE".padEnd(r)} AUTH STATUS`));for(const o of e){const e=o.config.enabled?me.green("enabled"):me.gray("disabled");let s;s=o.config.oauth?await hasTokens(o.name)?me.green(Pe.tick):me.red(Pe.cross):o.config.headers||o.config.env?me.green(Pe.tick):me.gray("-"),console.log(` ${me.white(o.name.padEnd(t))} ${me.cyan(o.config.transport.padEnd(n))} ${me.gray(o.scope.padEnd(r))} ${s} ${e}`)}console.log(me.dim(`\nTotal: ${e.length} server${1!==e.length?"s":""}\n`))}catch(e){console.error(me.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function getMcpCommand(){const e=new _e("get");return e.description("Show details for an MCP server").argument("<name>","Server name").action(async e=>{try{const t=await getMcpServer({name:e});t||(console.error(me.red(`Error: MCP server '${e}' not found`)),process.exit(1));const{config:n,scope:r}=t;if(console.log(me.hex("#E4CCFF").bold(`\nMCP Server: ${e}\n`)),console.log(` ${me.dim("Scope:")} ${r}`),console.log(` ${me.dim("Transport:")} ${n.transport}`),console.log(` ${me.dim("Status:")} ${n.enabled?me.green("enabled"):me.gray("disabled")}`),"http"===n.transport){if(console.log(` ${me.dim("URL:")} ${n.url}`),n.headers&&Object.keys(n.headers).length>0){console.log(` ${me.dim("Headers:")}`);for(const[e,t]of Object.entries(n.headers)){const n=e.toLowerCase().includes("auth")||e.toLowerCase().includes("token")||e.toLowerCase().includes("key")?"***":t;console.log(` ${e}: ${n}`)}}}else console.log(` ${me.dim("Command:")} ${n.command}`),n.args&&n.args.length>0&&console.log(` ${me.dim("Args:")} ${n.args.join(" ")}`);if(n.env&&Object.keys(n.env).length>0){console.log(` ${me.dim("Environment:")}`);for(const[e,t]of Object.entries(n.env)){const n=e.toLowerCase().includes("key")||e.toLowerCase().includes("secret")||e.toLowerCase().includes("token")||e.toLowerCase().includes("password")?"***":t;console.log(` ${e}=${n}`)}}console.log("")}catch(e){console.error(me.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function removeMcpCommand(){const e=new _e("remove");return e.description("Remove an MCP server").argument("<name>","Server name").addOption(new xe("-s, --scope <scope>","Scope to remove from (auto-detects if not specified)").choices(["local","project","user"])).action(async(e,t)=>{try{const n=await getMcpServer({name:e});n||(console.error(me.red(`Error: MCP server '${e}' not found`)),process.exit(1));const r=t.scope||n.scope;t.scope&&t.scope!==n.scope&&(console.error(me.red(`Error: Server '${e}' is defined in '${n.scope}' scope, not '${t.scope}'`)),process.exit(1)),await removeMcpServer({name:e,scope:r})||(console.error(me.red(`Error: Failed to remove server '${e}'`)),process.exit(1));const o="user"===r?"global":"project"===r?"project":"local";console.log(me.green(`✓ Removed MCP server '${e}' from ${o} config`))}catch(e){console.error(me.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function addJsonMcpCommand(){const e=new _e("add-json");return e.description("Add an MCP server from JSON configuration").argument("<name>","Server name (unique identifier)").argument("<json>","Server configuration as JSON string").addOption(new xe("-s, --scope <scope>","Configuration scope").choices(["local","project","user"]).default("local")).option("--client-secret <secret>","OAuth client secret (injected into oauth config)").action(async(e,t,n)=>{const r=getInvokedCommandName();try{let o,s;/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(e)&&!e.includes("__")||(console.error(me.red(`Error: Invalid server name '${e}'`)),console.error(me.gray("Names must start with a letter or number, contain only letters, numbers, hyphens, and single underscores")),process.exit(1));try{o=JSON.parse(t)}catch{console.error(me.red("Error: Invalid JSON")),console.error(me.gray("Make sure to quote the JSON string properly")),console.error(me.gray(`Example: ${r} mcp add-json github '{"type":"stdio","command":"npx"}'`)),process.exit(1)}o&&"object"==typeof o&&"type"in o&&!("transport"in o)&&(o.transport=o.type,delete o.type),o?.oauth?.callbackPort&&(s=o.oauth.callbackPort,delete o.oauth.callbackPort),n.clientSecret&&o?.oauth&&(o.oauth.clientSecret=n.clientSecret);const i=Aw.safeParse(o);if(!i.success){console.error(me.red("Error: Invalid server configuration"));for(const e of i.error.issues)console.error(me.gray(` ${e.path.join(".")}: ${e.message}`));process.exit(1)}const a=i.data;let l=!1;if("http"!==a.transport||a.url||(console.error(me.red("Error: URL is required for http type")),process.exit(1)),"stdio"!==a.transport||a.command||(console.error(me.red("Error: Command is required for stdio type")),process.exit(1)),await addMcpServer({name:e,serverConfig:a,scope:n.scope}),a.oauth){console.log(me.cyan("Starting OAuth authentication...")),console.log(me.gray("A browser window will open for authentication.\n"));const t={authorizationUrl:a.oauth.authorizationUrl,tokenUrl:a.oauth.tokenUrl,clientId:a.oauth.clientId,clientSecret:a.oauth.clientSecret,scopes:a.oauth.scopes},n=await performOAuthFlow(e,t,{...s&&{port:s},onStatus:__name(e=>{console.log(me.gray(` ${e}`))},"onStatus")});n.success?console.log(me.green(`\n✓ Successfully authenticated with '${e}'`)):(l=!0,console.error(me.yellow(`\nWarning: Authentication failed: ${n.error}`)),console.error(me.gray(`You can retry with: ${r} mcp auth ${e}`)),console.error(me.gray("Or authenticate via the /mcp menu in a session")))}const u="user"===n.scope?"global":"project"===n.scope?"project":"local";if(l?console.log(me.yellow(`✓ Added MCP server '${e}' to ${u} config (authentication pending)`)):console.log(me.green(`✓ Added MCP server '${e}' to ${u} config`)),"http"===a.transport)console.log(me.gray(` URL: ${a.url}`));else{const e=[a.command,...a.args||[]].join(" ");console.log(me.gray(` Command: ${e}`))}console.log(""),console.log(me.cyan("Next steps:")),console.log(me.gray(`Start ${r} and run /mcp to manage configured MCP servers.`))}catch(e){console.error(me.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function authMcpCommand(){const e=new _e("auth");return e.description("Manage OAuth authentication for MCP servers").argument("[server]","Server name to authenticate").option("--status","Check authentication status").option("--clear","Clear stored authentication").option("--list","List servers with stored authentication").action(async(e,t)=>{const n=getInvokedCommandName();try{if(t.list){const e=await listServersWithTokens();if(0===e.length)return void console.log(me.yellow("No servers with stored authentication."));console.log(me.hex("#E4CCFF").bold("\nAuthenticated MCP Servers\n"));for(const t of e){const e=await getTokens(t),n=!e||isTokenExpired(e)?me.yellow("expired"):me.green("valid");console.log(` ${t}: ${n}`)}return void console.log("")}if(e||(console.error(me.red("Error: Server name is required")),console.error(me.gray(`Usage: ${n} mcp auth <server>`)),console.error(me.gray(` ${n} mcp auth --list`)),process.exit(1)),t.status){if(!await hasTokens(e))return void console.log(me.yellow(`No authentication stored for '${e}'`));const t=await getTokens(e);if(!t)return void console.log(me.yellow(`No authentication stored for '${e}'`));if(isTokenExpired(t))console.log(me.yellow(`Authentication for '${e}' has expired`)),t.refreshToken&&console.log(me.gray(" A refresh token is available for re-authentication"));else{if(console.log(me.green(`Authentication for '${e}' is valid`)),t.expiresAt){const e=Math.round((t.expiresAt-Date.now())/1e3/60);console.log(me.gray(` Expires in ${e} minutes`))}t.scope&&console.log(me.gray(` Scopes: ${t.scope}`))}return}if(t.clear)return void(await deleteTokens(e)?console.log(me.green(`✓ Cleared authentication for '${e}'`)):console.log(me.yellow(`No authentication stored for '${e}'`)));const r=await getMcpServer({name:e});r||(console.error(me.red(`Error: MCP server '${e}' not found`)),console.error(me.gray(`Use "${n} mcp list" to see configured servers`)),process.exit(1)),r.config.oauth||(console.error(me.red(`Error: Server '${e}' does not have OAuth configured`)),console.error(me.gray(`Add OAuth config using "${n} mcp add-json" with oauth field`)),process.exit(1));const o={authorizationUrl:r.config.oauth.authorizationUrl,tokenUrl:r.config.oauth.tokenUrl,clientId:r.config.oauth.clientId,clientSecret:r.config.oauth.clientSecret,scopes:r.config.oauth.scopes};console.log(me.cyan(`Authenticating with '${e}'...`)),console.log(me.gray("A browser window will open for authentication.\n"));const s=await performOAuthFlow(e,o,{onStatus:__name(e=>{console.log(me.gray(` ${e}`))},"onStatus")});if(s.success)return console.log(me.green(`\n✓ Successfully authenticated with '${e}'`)),void console.log(me.gray("Restart the session to connect with the authenticated server."));console.error(me.red(`\nError: Authentication failed: ${s.error}`)),console.log(me.gray(`Try again with "${n} mcp auth ${e}"`)),process.exit(1)}catch(e){console.error(me.red(`Error: ${e instanceof Error?e.message:String(e)}`)),process.exit(1)}}),e}function createMcpCommand(){const e=new _e("mcp");return e.description("Manage MCP (Model Context Protocol) servers").allowUnknownOption().allowExcessArguments(),e.addCommand(addMcpCommand()),e.addCommand(listMcpCommand()),e.addCommand(getMcpCommand()),e.addCommand(removeMcpCommand()),e.addCommand(addJsonMcpCommand()),e.addCommand(authMcpCommand()),e}async function runCommand(e){return new Promise((t,n)=>{const r=D(e.cmd,e.args,{stdio:["ignore","pipe","pipe"],env:process.env});let o="",s="";r.stdout.on("data",e=>{o+=String(e)}),r.stderr.on("data",e=>{s+=String(e)}),r.on("error",n),r.on("close",r=>{0!==r?n(new Error(`${e.cmd} ${e.args.join(" ")} failed${s?`: ${s.trim()}`:""}`)):t({stdout:o,stderr:s})})})}async function detectDefaultBranch(e){try{const{stdout:t}=await runCommand({cmd:"git",args:["-C",e.repoDir,"symbolic-ref","refs/remotes/origin/HEAD","--short"]}),n=t.trim().replace(/^origin\//,"");if(n)return n}catch{}for(const t of["main","master"])try{return await runCommand({cmd:"git",args:["-C",e.repoDir,"rev-parse","--verify",t]}),t}catch{}try{const{stdout:t}=await runCommand({cmd:"git",args:["-C",e.repoDir,"rev-parse","--abbrev-ref","HEAD"]});return t.trim()}catch{return"main"}}async function findGitRoot4(e){try{const{stdout:t}=await runCommand({cmd:"git",args:["-C",e.dir,"rev-parse","--show-toplevel"]});return t.trim()}catch{return null}}async function countLearnings(e){try{return(await F.readFile(e,"utf-8")).split("\n").filter(e=>e.trim().startsWith("- ")&&e.includes("Confidence:")).length}catch{return 0}}async function resolveSource(t){const n=t.source.trim(),r=e.resolve(n);try{if(!(await F.stat(r)).isDirectory())throw new Error(`Source must be a repository directory: ${n}`);return{type:"local",displayName:r,repoDir:r,repoName:e.basename(r),github:await inferGitHubRepo({repoDir:r})}}catch(e){if(e instanceof Error&&e.message.startsWith("Source must be"))throw e}const o=parseGitHubSource({source:n});if(!o){const e=n.startsWith("git@")?" SSH URLs are not supported. Use HTTPS or owner/repo instead.":"";throw new Error(`Unsupported source '${n}'.${e} Use a local path, GitHub HTTPS URL, or owner/repo.`)}const s=String(t.maxCommits??200),i=`https://github.com/${o.owner}/${o.repo}.git`,a=await F.mkdtemp(e.join(y.tmpdir(),"taste-learn-"));try{await runCommand({cmd:"git",args:["clone","--depth",s,"--single-branch",...t.branch?["--branch",t.branch]:[],"--",i,a]})}catch{throw await F.rm(a,{recursive:!0,force:!0}).catch(()=>{}),new Error(`Repository not found: ${o.owner}/${o.repo}. Check the owner and repo name, or verify it's a public repository.`)}return{type:"github",displayName:`${o.owner}/${o.repo}`,repoDir:a,repoName:o.repo,github:o,cleanup:__name(async()=>{await F.rm(a,{recursive:!0,force:!0})},"cleanup")}}function getTastePathForDir(t){return e.join(t.projectRoot,".commandcode","taste")}async function resolveDisplayName(t){if(t.startsWith("/")||t.startsWith(".")){const n=e.resolve(t),r=await findGitRoot4({dir:n});return r?e.basename(r):e.basename(n)}return t}function parseGitHubSource(e){const t=e.source.match(/^([\w.-]+)\/([\w.-]+)$/);if(t)return{owner:t[1],repo:t[2].replace(/\.git$/,"")};try{const t=new URL(e.source);if("github.com"!==t.hostname)return null;const n=t.pathname.split("/").filter(Boolean);return n.length<2?null:{owner:n[0],repo:n[1].replace(/\.git$/,"")}}catch{return null}}async function inferGitHubRepo(e){try{const{stdout:t}=await runCommand({cmd:"git",args:["-C",e.repoDir,"remote","get-url","origin"]});return parseGitHubSource({source:t.trim()})??void 0}catch{return}}async function feedToLearningAgent(e){const t=await getConfiguredProvider(),n=await getOAuthCredentials({provider:t});if(await isOAuthEnforced()&&!n?.token)throw new Error("Authentication required. Run: cmd login");n?.token&&validateOAuthToken({token:n.token,provider:t});const r=getApiBaseUrl(),o=new Jy({baseUrl:r}),s=new Nv({request:o,sessionId:crypto.randomUUID(),projectRoot:e.outputDir}),i=[{role:"user",content:e.compiledContext}];await s.checkAndProcess({messages:i})}function logLearnSummary(e){const{summary:t}=e;console.log(me.cyan("\n ─── Results ───\n")),console.log(` Source: ${t.sourceName}`),console.log(` Signals: ${t.signalCount} extracted`),console.log(` Context: ${t.contextLength} chars compiled`),console.log(` Taste dir: ${t.tasteDir}`),console.log("")}function shouldContinueExtraction(e){return!(e.offset>=e.commitsLength||e.signalCount>=e.signalCap||e.commitsWithDiffs>=50)}async function extractAllSignals(e){e.onProgress?.("Collecting commits");const t=await collectCommits(e);if(0===t.length)return e.onProgress?.("No commits found"),{signals:[],commitCount:0};e.onProgress?.(`Found ${t.length} commits to analyze`);const n=e.maxSignals??50,r=[];let o=0;for(let s=0;shouldContinueExtraction({offset:s,commitsLength:t.length,signalCount:r.length,signalCap:n,commitsWithDiffs:o});s+=10){const i=t.slice(s,s+10);if(0===i.length)break;const a=await runBounded(5,i,async t=>({commit:t,subs:await getSubstitutions(e.repoDir,t.hash)}));for(const{commit:e,subs:t}of a){if(0===t.length)continue;o++;const s=groupCrossFilePatterns(t);for(const t of s.slice(0,5)){if(t.removed.length>200||t.added.length>200)continue;const o=[`Commit: ${e.subject}`];o.push(`File: ${t.file}`),t.context&&o.push(`In: ${t.context}`);const s=buildSnippet(t.codeBefore,t.added,t.codeAfter);if(s&&o.push(s),r.push({text:`${truncate2(t.removed,60)} → ${truncate2(t.added,60)}`,evidence:o,category:inferCategory(t.removed,t.added)}),r.length>=n)break}if(r.length>=n)break}}return e.onProgress?.(`Extracted ${r.length} diff signals from ${o} commits`),{signals:r,commitCount:t.length}}async function collectCommits(e){const t=buildAuthorPattern(e.author,e.authorAliases),n=t?.includes("|")??!1,r=t?[...n?["--extended-regexp"]:[],"--author",t,"--regexp-ignore-case"]:[],o=e.branch?[e.branch]:[],s=e.author?e.maxCommits:3*e.maxCommits,{stdout:i}=await runCommand({cmd:"git",args:["-C",e.repoDir,"log",...o,"--no-merges",...r,"--pretty=format:%H%x1f%aI%x1f%aN%x1f%s%x1e","-n",String(s)]});return i.split("").map(e=>e.trim()).filter(Boolean).map(e=>{const[t="",n="",r="",o=""]=e.split("");return{hash:t.trim(),subject:o.trim(),authorDate:n.trim(),authorName:r.trim()}}).filter(e=>!isDependencyBot(e.authorName,e.subject)).slice(0,e.maxCommits)}async function getSubstitutions(e,t){try{const{stdout:n}=await runCommand({cmd:"git",args:["-C",e,"show","--format=","-U3","--diff-algorithm=histogram","-b","--ignore-blank-lines","-M",t]}),r=[];let o="",s="",i=[],a=[],l=[];const u=2;let d=null;const m=__name(()=>{d&&(r.push({removed:d.removed,added:d.added,file:d.file,context:d.context,codeBefore:d.codeBefore.length>0?d.codeBefore:void 0,codeAfter:d.codeAfter.length>0?d.codeAfter:void 0}),d=null)},"commitPending"),g=__name(()=>{if(i.length>0&&a.length>0){const e=i.join("\n").trim(),t=a.join("\n").trim();e===t||isVersionBump(e,t)||isTrivialChange(e,t)||(m(),d={removed:e,added:t,file:o,context:s||void 0,codeBefore:[...l],codeAfter:[]})}i=[],a=[]},"flush");for(const e of n.split("\n")){if(e.startsWith("diff --git")){g(),m(),o=e.match(/b\/(.+)$/)?.[1]??"",s="",l=[],isNoiseFile(o)&&(o="");continue}if(e.startsWith("@@")){g(),m(),s=e.match(/@@ .+ @@\s*(.+)/)?.[1]?.trim()??"",l=[];continue}if(!o)continue;if(e.startsWith("-")&&!e.startsWith("---")){a.length>0&&g(),i.push(e.slice(1));continue}if(e.startsWith("+")&&!e.startsWith("+++")){a.push(e.slice(1));continue}g();const t=e.startsWith(" ")?e.slice(1):e;if(!t.trim())continue;const n=d;null!==n&&n.codeAfter.length<u&&(n.codeAfter.push(t),n.codeAfter.length>=u&&m()),l.push(t),l.length>u&&l.shift()}return g(),m(),r}catch(e){return process.env.DEBUG&&console.error(`[taste-learn] getSubstitutions failed for ${t}:`,e instanceof Error?e.message:e),[]}}function groupCrossFilePatterns(e){const t=new Map;for(const n of e){const e=`${n.removed.trim()}\0${n.added.trim()}`,r=t.get(e)??[];r.push(n),t.set(e,r)}const n=[];for(const[,e]of t)if(e.length>=2){const t=e.map(e=>e.file).join(", ");n.push({...e[0],file:t,context:`Same change across ${e.length} files`})}else n.push(e[0]);return n}tn(),tn(),__name(addMcpCommand,"addMcpCommand"),__name(collectKeyValue,"collectKeyValue"),__name(collectHeaders,"collectHeaders"),tn(),__name(listMcpCommand,"listMcpCommand"),tn(),__name(getMcpCommand,"getMcpCommand"),tn(),__name(removeMcpCommand,"removeMcpCommand"),tn(),__name(addJsonMcpCommand,"addJsonMcpCommand"),tn(),__name(authMcpCommand,"authMcpCommand"),__name(createMcpCommand,"createMcpCommand"),tn(),sn(),tn(),HS(),tn(),sn(),tn(),__name(runCommand,"runCommand"),tn(),__name(detectDefaultBranch,"detectDefaultBranch"),__name(findGitRoot4,"findGitRoot"),__name(countLearnings,"countLearnings"),__name(resolveSource,"resolveSource"),__name(getTastePathForDir,"getTastePathForDir"),__name(resolveDisplayName,"resolveDisplayName"),__name(parseGitHubSource,"parseGitHubSource"),__name(inferGitHubRepo,"inferGitHubRepo"),tn(),gw(),Tw(),Fr(),Qr(),__name(feedToLearningAgent,"feedToLearningAgent"),__name(logLearnSummary,"logLearnSummary"),tn(),tn(),__name(shouldContinueExtraction,"shouldContinueExtraction"),__name(extractAllSignals,"extractAllSignals"),__name(collectCommits,"collectCommits"),__name(getSubstitutions,"getSubstitutions"),__name(groupCrossFilePatterns,"groupCrossFilePatterns");var lP=5,cP=3;function buildSnippet(e,t,n){const r=e??[],o=n??[],s=t.split("\n").map(e=>e.trimEnd());if(0===s.length&&0===r.length&&0===o.length)return;let i,a=0;s.length>cP?(i=s.slice(0,cP-1),a=s.length-i.length):i=s;const l=i.length+(a>0?1:0),u=Math.max(0,lP-l),d=Math.min(r.length,Math.ceil(u/2)),m=Math.min(o.length,u-d),g=[];for(const e of r.slice(-d))g.push(` ${e.trimEnd()}`);for(const e of i)g.push(`→ ${e}`);a>0&&g.push(`→ ... (+${a} more changed ${1===a?"line":"lines"})`);for(const e of o.slice(0,m))g.push(` ${e.trimEnd()}`);return 0!==g.length?`Snippet:\n${g.join("\n")}`:void 0}__name(buildSnippet,"buildSnippet");var uP=[/package-lock\.json$/,/pnpm-lock\.yaml$/,/yarn\.lock$/,/CHANGELOG\.(md|yml|yaml)$/i,/\.versionbot\//,/\.min\.(js|css)$/,/dist\//,/\.map$/];function isNoiseFile(e){return uP.some(t=>t.test(e))}function isTrivialChange(e,t){return e.trim().length<3&&t.trim().length<3}function isVersionBump(e,t){const n=/^"?version"?\s*:\s*"?\d+\.\d+/;return n.test(e.trim())&&n.test(t.trim())}function inferCategory(e,t){const n=`${e} ${t}`.toLowerCase();return/import|require|from\s+['"]/.test(n)?"imports":/function|=>|async|return/.test(n)?"code-style":/class|interface|type\s+/.test(n)?"types":/test|describe|it\(|expect/.test(n)?"testing":/console|log|debug|error/.test(n)?"logging":/try|catch|throw|Error/.test(n)?"error-handling":"code-style"}function buildAuthorPattern(e,t){return t&&t.length>0?t.map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"):e??void 0}__name(isNoiseFile,"isNoiseFile"),__name(isTrivialChange,"isTrivialChange"),__name(isVersionBump,"isVersionBump"),__name(inferCategory,"inferCategory"),__name(buildAuthorPattern,"buildAuthorPattern");var dP=new Set(["renovate[bot]","renovate","dependabot[bot]","dependabot","greenkeeper[bot]","snyk-bot"]),mP=[/^update .+ digest to /i,/^update .+ action to /i,/^update .+ to v?\d/i,/^update lock file maintenance/i,/^update dependency .+ to /i,/^chore\(deps\)/i,/^bump .+ from .+ to /i,/^lock file maintenance/i];function isDependencyBot(e,t){const n=e.toLowerCase();return!!dP.has(n)||!(!n.includes("[bot]")||!mP.some(e=>e.test(t)))}function truncate2(e,t){const n=e.replace(/\n/g," ").trim();return n.length<=t?n:`${n.slice(0,t-3)}...`}async function runBounded(e,t,n){const r=[];let o=0;const s=__name(async()=>{for(;o<t.length;){const e=o++;r[e]=await n(t[e])}},"next");return await Promise.all(Array.from({length:Math.min(e,t.length)},()=>s())),r}function compileTasteContext(e){const{signals:t,repoName:n,author:r,commitCount:o}=e,s=r?`Target author: ${r}\n`:"",i=[];if(i.push(`# Dynamic Taste Analysis — Code Change Patterns\n\nRepository: ${n}\n${s}Commits analyzed: ${o}\nSignals extracted: ${t.length}\n\nThis analysis was generated by examining actual code changes (diffs, substitutions, refactoring patterns) rather than static file contents. Every signal below comes from real commits.`),t.length>0){const e=["## Correction Diffs — What Wrong→Right Looks Like"];for(const n of t.slice(0,50)){e.push(`\n**${n.text}**`);for(const t of n.evidence)e.push(`- ${t}`)}i.push(e.join("\n"))}const a=r?` for ${r}`:"";return i.push(`## Instructions for Taste Learning\n\nYou are analyzing code change patterns from a real repository${a}. Based on the correction diffs above, generate deeply personal and opinionated coding taste.\n\n**Critical guidelines:**\n\n1. **Be specific, not generic.** Instead of "Use TypeScript", write "Use branded types for IDs and explicit return types on every function. Prefer \`readonly\` arrays and objects by default."\n\n2. **Extract the WHY from patterns.** If you see verbose names being replaced with concise ones, don't just say "use short names" — say "Prefer concise variable names that derive meaning from context rather than encoding type information."\n\n3. **Look for recurring themes.** If multiple substitutions show the same pattern (e.g., nested if→guard clauses), that's a strong taste signal worth capturing.\n\n4. **Make it actionable.** Every taste entry should be specific enough that another developer could follow it and produce code that looks like it belongs in this repository.\n\n5. **Prioritize quality corrections** — these are the purest taste signals (wrong→right pairs with explicit WHY context from commit messages).\n\n6. **Capture anti-patterns too.** If you see code being removed in refactors, note what the developer avoids: "Never nest deeper than 2 levels — flatten with early returns."\n\n7. **Don't repeat generic tool preferences** like "Use pnpm" or "Use TypeScript" unless the substitutions show something specific about HOW they use those tools.\n\n8. **Prioritize opinionated preferences.** The goal is taste that makes someone's code distinctly theirs — not industry best practices.\n\nWrite the taste entries to the taste.md file using the standard format with confidence scores.`),i.join("\n\n")}async function runLearnPipeline(t){const n=__name(()=>({outputDir:"",tasteDir:"",sourceName:t.source,signalCount:0,contextLength:0}),"abortedResult");if(t.needsAuth){Av.addEvent({type:"auth_required",step:"auth",message:"Login to synthesize your taste profile",label:"Signing in"});try{await Av.waitForAuth()}catch{return Av.emitStepStart({step:"complete",label:"Login skipped",message:"Login skipped",learningCount:0,storage:""}),Av.markLearningComplete(),{summary:n()}}}t.isLocalSource||Av.emitStepStart({step:"cloning",label:"Cloning repository",message:`Cloning ${t.source}`});const r=await resolveSource({source:t.source,maxCommits:t.maxCommits});if(t.signal.aborted)return{summary:n(),resolved:r};const o="github"===r.type,s=r.repoName,i=await findGitRoot4({dir:r.repoDir});if(!i)throw new Error(`Not a git repository: ${r.repoDir}. Run inside a git repo or pass the path: npx taste learn /path/to/repo`);const a=o?e.resolve(process.cwd(),s):i;o&&Av.emitStepStart({step:"collecting",label:"Collecting commits",message:`Cloned ${r.displayName} → ${a}`});const l=t.branch??await detectDefaultBranch({repoDir:i});await F.mkdir(a,{recursive:!0}),Av.emitStepStart({step:"collecting",label:"Collecting commits",message:`Fetching up to ${t.maxCommits} commits from ${l}`});const{signals:u,commitCount:d}=await extractAllSignals({repoDir:i,maxCommits:t.maxCommits,maxSignals:t.maxSignals,branch:l,onProgress:__name(e=>{Av.emitProgress({step:"extracting",message:e})},"onProgress")});if(t.signal.aborted)return{summary:n(),resolved:r};if(0===u.length)throw new Error("No signals extracted. Check the repository has commit history.");Av.emitStepStart({step:"extracting",label:"Extracting taste signals",message:`${u.length} before/after code changes extracted`}),Av.emitStepStart({step:"compiling",label:"Compiling taste context",message:`Formatting ${u.length} signals for the learning agent`});const m=compileTasteContext({signals:u,repoName:s,commitCount:d});if(t.signal.aborted)return{summary:n(),resolved:r};Av.emitStepStart({step:"learning",label:"Learning taste",message:"Interpreting code change patterns with AI"}),await feedToLearningAgent({compiledContext:m,outputDir:a});const g=getTastePathForDir({projectRoot:a}),h=e.join(g,"taste.md"),f=await countLearnings(h);return Av.emitStepStart({step:"complete",label:"Taste learned",message:"Taste learned",learningCount:f,storage:h}),Av.markLearningComplete(),{summary:{outputDir:a,tasteDir:g,sourceName:r.displayName,signalCount:u.length,contextLength:m.length},resolved:r}}__name(isDependencyBot,"isDependencyBot"),__name(truncate2,"truncate"),__name(runBounded,"runBounded"),tn(),__name(compileTasteContext,"compileTasteContext"),__name(runLearnPipeline,"runLearnPipeline"),tn(),tn(),tn();var pP=[/MallocStackLogging: can't turn off malloc stack logging because it was not enabled/i];function shouldIgnoreChunk(e){return pP.some(t=>t.test(e))}function chunkToString(e){return"string"==typeof e?e:Buffer.isBuffer(e)?e.toString("utf-8"):""}async function withFilteredStderrNoise(e){const t=process.stderr.write.bind(process.stderr);process.stderr.write=(e,...n)=>{const r=chunkToString(e);return!(!r||!shouldIgnoreChunk(r))||("function"==typeof n[0]?t(e,n[0]):t(e,n[0],n[1]))};try{return await e()}finally{process.stderr.write=t}}function toRepoLearnErrorMessage(e){return e instanceof Error?e.message:String(e)}function isRepoLearnMetricLikeText(e){const t=e.trim().toLowerCase();return/^\d+\s/.test(t)||/^saved\s/.test(t)||/^output\s/.test(t)||/^target\s/.test(t)||/\bcandidates\b/.test(t)||/\bevidence records\b/.test(t)||/\bhistory and review signals\b/.test(t)}function truncateRepoLearnPanelText(e,t=12){return truncateString({text:e,maxChars:Math.min(96,getEffectiveWidth({padding:t}))})}__name(shouldIgnoreChunk,"shouldIgnoreChunk"),__name(chunkToString,"chunkToString"),__name(withFilteredStderrNoise,"withFilteredStderrNoise"),tn(),Mo(),__name(toRepoLearnErrorMessage,"toRepoLearnErrorMessage"),__name(isRepoLearnMetricLikeText,"isRepoLearnMetricLikeText"),__name(truncateRepoLearnPanelText,"truncateRepoLearnPanelText"),tn(),tn();var gP=[{id:"collecting",label:"Collecting commits from repository"},{id:"extracting",label:"Extracting taste signals from diffs"},{id:"compiling",label:"Compiling taste context"},{id:"learning",label:"Learning taste from change patterns"},{id:"complete",label:"Taste learned"}],hP=[{id:"cloning",label:"Cloning repository"},...gP],fP=[Pe.bullet,Pe.squareSmallFilled,Pe.lozenge,Pe.star,Pe.triangleRight,Pe.triangleUp];function createInitialRepoLearnSteps(e){return(e??gP).map(e=>({...e,status:"pending"}))}__name(createInitialRepoLearnSteps,"createInitialRepoLearnSteps"),tn();var yP={learningCount:0,storage:"",topLearnings:[]};function getStepStatus(e,t){return e<t?"complete":e===t?"active":"pending"}function deriveStepStates(e,t){return e.map((e,n)=>({...e,status:getStepStatus(n,t)}))}function parseSummaryMetric(e){if(e.startsWith("Maintainer: "))return{maintainerLabel:e.replace(/^Maintainer:\s+/,"")};const t=e.match(/^(\d+)\s+maintainer-specific preferences$/);if(t)return{maintainerCount:Number(t[1])};const n=e.match(/^(\d+)\s+repository conventions$/);return n?{repoCount:Number(n[1])}:null}__name(getStepStatus,"getStepStatus"),__name(deriveStepStates,"deriveStepStates"),__name(parseSummaryMetric,"parseSummaryMetric");var wP=__name(e=>e.map(e=>({...e,status:"complete"})),"markAllStepsComplete"),SP=__name(e=>e??yP,"withBase");function useRepoLearnState(e){const t=e??gP,[n,r]=Z(()=>createInitialRepoLearnSteps(t)),[o,s]=Z(""),[i,a]=Z([]),[l,u]=Z(null),[d,m]=Z(!1),[g,h]=Z(!1),[f,y]=Z(null),[w,S]=Z(0),E=ee(null),[C,v]=Z(null),k=re(()=>{E.current=Date.now()},[]);return te(()=>{const e=__name(()=>{r(createInitialRepoLearnSteps(t)),s(""),a([]),u(null),h(!1),y(null),S(0),E.current=null,v(null),m(!1)},"handleReset"),n=__name(e=>{if("error"===e.type)return y(e.message),h(!0),r(wP),void s("");if("auth_required"!==e.type){if("step_start"===e.type&&e.step){const n=t.findIndex(t=>t.id===e.step);return n>=0&&r(deriveStepStates(t,n)),s(e.message||e.label||""),void("complete"===e.step&&u(t=>{const n=SP(t);return{...n,learningCount:e.learningCount??n.learningCount,storage:e.storage??n.storage}}))}"progress"!==e.type||"complete"!==e.step?"progress"!==e.type?"insight"===e.type&&(isRepoLearnMetricLikeText(e.message)||("complete"!==e.step?(S(e=>e+1),a(t=>[...t,e.message].slice(-4))):u(t=>{const n=SP(t);return{...n,topLearnings:[...n.topLearnings,e.message].slice(0,3)}}))):s(e.message):u(t=>{const n=SP(t),r=parseSummaryMetric(e.message);return r?{...n,...r}:n})}else m(!0)},"handleEvent"),o=__name(()=>{h(e=>e||(r(wP),!0)),s(""),E.current&&v(Math.round((Date.now()-E.current)/1e3))},"handleComplete");return Av.on("reset",e),Av.on("new-event",n),Av.on("learning-complete",o),()=>{Av.off("reset",e),Av.off("new-event",n),Av.off("learning-complete",o)}},[t]),{steps:n,currentMessage:o,insights:i,insightCount:w,summary:l,done:g,error:f,showLogin:d,setShowLogin:m,elapsedSeconds:C,markStarted:k}}__name(useRepoLearnState,"useRepoLearnState"),tn(),tn(),kr();var bP=__name(({isComplete:e,hasError:t})=>J.createElement(oe,{flexDirection:"column",marginTop:1,marginBottom:0},J.createElement(gx,null),J.createElement(oe,{marginTop:0},J.createElement(se,{color:Xn.DIM},fx),J.createElement(oe,{marginLeft:2},t?J.createElement(se,{color:Xn.DIM},"learning interrupted"):e?J.createElement(se,{color:er.TEXT},"learned your coding taste"):J.createElement(yx,null)))),"RepoLearnTastePill");tn(),kr();var EP=__name(({status:e})=>"active"===e?J.createElement(oe,null,J.createElement(se,{color:Xn.YELLOW},J.createElement(Oe,{type:"dots"})),J.createElement(se,null," ")):"complete"===e?J.createElement(se,{color:sr.BG},Pe.square," "):J.createElement(se,{color:Xn.DIM},Pe.circle," "),"StepStatusIndicator"),CP=__name(({steps:e,currentMessage:t})=>J.createElement(oe,{flexDirection:"column",marginTop:1},e.map(e=>{const n="active"===e.status;return J.createElement(oe,{key:e.id,flexDirection:"column",marginBottom:0,marginLeft:3},J.createElement(oe,null,J.createElement(oe,{marginRight:1},J.createElement(EP,{status:e.status})),J.createElement(se,{bold:n,color:"complete"===e.status?Xn.WHITE:n?Xn.YELLOW:Xn.DIM},e.label)),n&&t?J.createElement(oe,{marginLeft:3},J.createElement(se,{color:Xn.DIM},truncateRepoLearnPanelText(t))):null)})),"RepoLearnStepList");tn(),kr();var vP=__name(({insights:e,insightCount:t})=>0===e.length?null:J.createElement(oe,{flexDirection:"column",marginTop:1,marginLeft:4},J.createElement(se,{color:Xn.CYAN},t>0?`Recent signals · ${t} ${1===t?"preference":"preferences"} learned`:"Recent signals"),e.map((e,t)=>J.createElement(se,{key:`${t}-${e}`,color:Xn.DIM},fP[t%fP.length]," ",truncateRepoLearnPanelText(e,14)))),"RepoLearnRollingInsights");tn(),kr();var kP=__name(({message:e})=>J.createElement(oe,{flexDirection:"column",borderStyle:"single",borderColor:Xn.RED,paddingX:2,paddingY:1,marginTop:1},J.createElement(se,{color:Xn.RED,bold:!0},"Oops, something went wrong:"),J.createElement(oe,{marginTop:1},J.createElement(se,null,e))),"RepoLearnErrorPanel");tn(),kr(),qr();var TP=__name(({summary:e,elapsedSeconds:n})=>{if(!e)return null;const r=t.relative(process.cwd(),e.storage),o=e.learningCount>0;return J.createElement(oe,{flexDirection:"column",marginLeft:3},J.createElement(oe,{marginBottom:1,flexDirection:"row"},J.createElement(se,{color:Xn.DIM},fx),J.createElement(oe,{marginLeft:2},J.createElement(se,{color:er.TEXT},o?`Learned ${e.learningCount} ${1===e.learningCount?"preference":"preferences"}`:"Taste profile initialized",n?` in ${n} ${1===n?"second":"seconds"}`:""))),J.createElement(oe,{flexDirection:"column",marginLeft:1},J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},Pe.pointerSmall," Taste stored in"," "),J.createElement(Dr,{url:`file://${e.storage}`,text:r||".commandcode/taste/taste.md",color:Xn.CYAN})),J.createElement(oe,null,J.createElement(se,{color:Xn.DIM},Pe.pointerSmall," Share your coding taste: ",J.createElement(se,{color:Xn.CYAN},"npx taste push --all")))),J.createElement(oe,{marginTop:1,marginLeft:1},J.createElement(se,{color:Xn.DIM},o?"Command Code automatically uses & updates taste files as you code.":"Command Code will learn your preferences as you code.")))},"RepoLearnCompletionSummary");tn(),kr();var _P=__name(({done:e,error:t})=>t?J.createElement(oe,{marginTop:1},J.createElement(se,{bold:!0},"Press ESC to exit")):e?J.createElement(oe,{marginTop:1},J.createElement(se,{bold:!0},"Press ENTER to continue")):J.createElement(oe,{marginTop:1},J.createElement(se,{color:Xn.DIM},"ESC to cancel")),"RepoLearnFooter");tn(),kr();var xP=__name(({text:e,repoName:t})=>{const n=useTerminalWidth(),r=ne(()=>CT(n),[n]);return J.createElement(oe,{flexDirection:"column"},J.createElement(oe,{flexDirection:"column",marginBottom:1},J.createElement(PT,null,r.trimEnd())),e?J.createElement(se,{color:Xn.WHITE},e):J.createElement(J.Fragment,null,J.createElement(se,{color:Xn.WHITE},"Learning your coding taste from ",J.createElement(se,{bold:!0,color:Xn.CYAN},t??"repository")),J.createElement(se,{color:Xn.DIM},"This may take a few minutes depending on repository size")))},"RepoLearnHeader");function StatusPanel({error:e,done:t,summary:n,elapsedSeconds:r,insights:o,insightCount:s}){return e?J.createElement(kP,{message:e}):t?J.createElement(TP,{summary:n,elapsedSeconds:r}):J.createElement(vP,{insights:o,insightCount:s})}function RepoLearnProgressApp({runTask:e,onExit:t,stepOrder:n,headerText:r,repoName:o}){const s=useRepoLearnState(n),i=ee(!1);return te(()=>{i.current||(i.current=!0,s.markStarted(),e().catch(()=>{}))},[e,s.markStarted]),le((e,n)=>{if(s.showLogin)return;const r=n.escape||""===e,o=n.return||"\n"===e||"\r"===e;r?t({published:!1,cancelled:!0}):(s.done||s.error)&&o&&t({published:!1,cancelled:!!s.error})}),s.showLogin?J.createElement(oe,{flexDirection:"column"},J.createElement(xP,{text:r,repoName:o}),J.createElement(F_,{onComplete:(e,t)=>{s.setShowLogin(!1),e?Av.resolveAuth():Av.rejectAuth(t)},onCancel:()=>{s.setShowLogin(!1),Av.rejectAuth("Login cancelled"),t({published:!1,cancelled:!0})}})):J.createElement(oe,{flexDirection:"column"},J.createElement(xP,{text:r,repoName:o}),J.createElement(bP,{isComplete:s.done&&!s.error,hasError:Boolean(s.error)}),J.createElement(CP,{steps:s.steps,currentMessage:s.currentMessage}),J.createElement(StatusPanel,{error:s.error,done:s.done,summary:s.summary,elapsedSeconds:s.elapsedSeconds,insights:s.insights,insightCount:s.insightCount}),J.createElement(_P,{done:s.done,error:s.error}))}async function runRepoLearnProgress(e){return withFilteredStderrNoise(()=>renderProgressUI(e))}function renderProgressUI(e){return new Promise((t,n)=>{Av.reset();const r=new AbortController;let o,s,i=!1,a=!1;const l=__name(async()=>{try{o=await e.runTask(r.signal)}catch(e){r.signal.aborted||(s=e,Av.addEvent({type:"error",message:toRepoLearnErrorMessage(e)}),Av.markLearningComplete())}},"handleRunTask"),u=__name(({published:e,cancelled:l})=>{a||(a=!0,i=e,r.abort(),d.unmount(),Av.reset(),s?n(s):t({result:o,published:i,cancelled:l}))},"handleExit"),d=ce(J.createElement(RepoLearnProgressApp,{stepOrder:e.stepOrder,headerText:e.headerText,repoName:e.repoName,runTask:l,onExit:u}));d.waitUntilExit().catch(e=>{Av.reset(),n(e)})})}__name(StatusPanel,"StatusPanel"),__name(RepoLearnProgressApp,"RepoLearnProgressApp"),__name(runRepoLearnProgress,"runRepoLearnProgress"),__name(renderProgressUI,"renderProgressUI"),xb();var PP=__name(e=>t=>{const n=parseInt(t,10);if(isNaN(n)||n<1)throw new Error(`${e} must be a positive integer`);return n},"parsePositiveInt");function createLearnCommand(){return new _e("learn").description("Learn coding taste from repository change history").argument("[source]","Local path, GitHub URL, or owner/repo (defaults to current directory)").option("--max-commits <number>","Maximum commits to analyze",PP("--max-commits"),200).addOption(new xe("--max-signals <number>","Maximum diff signals to extract").default(50).argParser(PP("--max-signals")).hideHelp()).option("--branch <name>","Branch to analyze (defaults to main/master)").action(async(e,t)=>{try{await learnTaste({source:e??".",maxCommits:t.maxCommits??200,maxSignals:t.maxSignals??50,branch:t.branch})}catch(e){const t=e instanceof Error?e.message:String(e);console.error(`Error: ${t}`),process.exit(1)}})}async function learnTaste(t){const n=await F.stat(e.resolve(t.source)).then(e=>e.isDirectory()).catch(()=>!1),r=isTTY(),o=await resolveDisplayName(t.source),s=!await getAuthKey();if(s&&!r)return console.log(""),console.log(" Login required to learn taste."),console.log(""),console.log(" Run: cmd login"),console.log(` Then: npx taste learn ${t.source}`),void console.log("");let i;const a=__name(()=>{i?.().finally(()=>process.exit(130))},"sigintHandler");process.once("SIGINT",a);let l=!1;try{const e=__name(async e=>{const{summary:r,resolved:o}=await runLearnPipeline({...t,isLocalSource:n,needsAuth:s,signal:e});return i=o?.cleanup,r},"runTask");if(r){const t=n?void 0:[...hP];({cancelled:l}=await runRepoLearnProgress({runTask:e,repoName:o,stepOrder:t}))}else logLearnSummary({summary:await e((new AbortController).signal)})}finally{process.off("SIGINT",a),i&&await i()}r&&!l||process.exit(0),BS(),await Hx({skipOnboarding:!0})}function getTastePath(t){const{target:n}=t;if("local-project"===n)return e.join(process.cwd(),".commandcode","taste");if("local-global"===n)return e.join(y.homedir(),".commandcode","taste");throw new Error(`Remote storage not yet implemented: ${n}`)}function getRootTasteFile(t){const{target:n}=t;return e.join(getTastePath({target:n}),"taste.md")}function getCategoryPath(t){const{target:n,category:r}=t;return e.join(getTastePath({target:n}),r)}function getCategoryTasteFile(t){const{target:n,category:r}=t;return e.join(getCategoryPath({target:n,category:r}),"taste.md")}__name(createLearnCommand,"createLearnCommand"),__name(learnTaste,"learnTaste"),tn(),tn(),tn(),sn(),__name(getTastePath,"getTastePath"),__name(getRootTasteFile,"getRootTasteFile"),__name(getCategoryPath,"getCategoryPath"),__name(getCategoryTasteFile,"getCategoryTasteFile"),tn(),tn();var AP=/confidence:/i;function findLookaheadEnd(e,t){const n=e.slice(t),r=n.findIndex(e=>{const t=e.trim();return t.startsWith("#")||t.startsWith("-")||AP.test(t)});if(-1===r)return{endIdx:e.length,inclusive:!1};const o=n[r].trim();return{endIdx:t+r,inclusive:AP.test(o)&&!o.startsWith("#")&&!o.startsWith("-")}}function joinMultiLineLearning(e,t,n){const{endIdx:r,inclusive:o}=findLookaheadEnd(e,t),s=o?r+1:r;return{combined:[n,...e.slice(t,s).map(e=>e.trim()).filter(e=>e.length>0)].join(" "),nextIdx:s}}function processRawLine(e,t){const n=e[t],r=t+1,o=n.trim();if(!o.startsWith("-"))return{entry:{text:n,originalLineNum:r},nextIdx:t+1};if(AP.test(o))return{entry:{text:n,originalLineNum:r},nextIdx:t+1};const{combined:s,nextIdx:i}=joinMultiLineLearning(e,t+1,n);return{entry:{text:s,originalLineNum:r},nextIdx:i}}function preprocessLines(e){const t=[];let n=0;for(;n<e.length;){const{entry:r,nextIdx:o}=processRawLine(e,n);t.push(r),n=o}return t}function validateLearningLine(e){const{line:t,lineNum:n}=e,r=[],o=t.substring(1).trim();if(!AP.test(o))return r.push({line:n,severity:"error",message:'Learning is missing "Confidence:" field',suggestion:'Format: "- Learning text. Confidence: 0.95" (value between 0.0 and 1.0)'}),r;const s=Array.from(o.matchAll(/confidence:\s*(\S+)/gi)),i=s.length>0?s[s.length-1]:null;if(!i)return r.push({line:n,severity:"error",message:"Confidence field is present but has no value",suggestion:'Add a number after "Confidence:" (e.g., Confidence: 0.95)'}),r;const a=i[1],l=parseFloat(a);if(isNaN(l))return r.push({line:n,severity:"error",message:`Confidence value "${a}" is not a valid number`,suggestion:"Use a decimal number between 0.0 and 1.0 (e.g., 0.95)"}),r;(l<0||l>1)&&r.push({line:n,severity:"error",message:`Confidence value ${l} is out of range`,suggestion:"Confidence must be between 0.0 and 1.0"}),l>=0&&l<=1&&0===l&&r.push({line:n,severity:"warning",message:"Confidence is 0.0 - this learning may not be useful",suggestion:"Consider removing learnings with 0 confidence"});const u=void 0!==i.index?o.substring(0,i.index).trim():o.trim();return u&&0!==u.length?(u.length<3&&r.push({line:n,severity:"warning",message:"Learning text is very short",suggestion:"Provide more descriptive text for clarity"}),r):(r.push({line:n,severity:"error",message:'Learning has no text before "Confidence:"',suggestion:'Add descriptive text (e.g., "Use pnpm for package management")'}),r)}function hasReferenceAfterCategory(e){const{lines:t,categoryLineIndex:n}=e,r=t.slice(n+1,n+4),o=r.findIndex(e=>e.trim().startsWith("# "));return(-1===o?r:r.slice(0,o)).some(e=>e.includes("See [")&&e.includes("taste.md"))}function buildResult(e){const{issues:t,filePath:n}=e,r=t.filter(e=>"error"===e.severity),o=t.filter(e=>"warning"===e.severity),s=0===r.length;if(0===t.length)return{valid:s,issues:[...t],summary:`${Pe.tick} ${n} is valid`};const i=[];r.length>0&&i.push(`${r.length} error${r.length>1?"s":""}`),o.length>0&&i.push(`${o.length} warning${o.length>1?"s":""}`);const a=r.length>0?Pe.cross:Pe.warning;return{valid:s,issues:[...t],summary:`${a} ${n} has ${i.join(", ")}`}}function formatSingleIssue(e,t){const n=[`${e.line?me.dim(` Line ${e.line}: `):" "}${t(e.message)}`];return e.suggestion&&n.push(me.dim(` → ${e.suggestion}`)),n}function formatIssueGroup(e,t,n){return 0===e.length?[]:[n,...e.flatMap(e=>formatSingleIssue(e,t)),""]}function formatValidationIssues(e){const{result:t,verbose:n=!0}=e;if(0===t.issues.length){const e=t.summary.charAt(0),n=t.summary.substring(2);return`${me.green(e)} ${me.dim(n)}`}if(!n)return t.summary;const r=t.issues.filter(e=>"error"===e.severity),o=t.issues.filter(e=>"warning"===e.severity);return[r.length>0?me.red(t.summary):me.yellow(t.summary),"",...formatIssueGroup(r,me.red,me.bold(me.red("Errors:"))),...formatIssueGroup(o,me.yellow,me.bold(me.yellow("Warnings:")))].join("\n").trim()}__name(findLookaheadEnd,"findLookaheadEnd"),__name(joinMultiLineLearning,"joinMultiLineLearning"),__name(processRawLine,"processRawLine"),__name(preprocessLines,"preprocessLines"),__name(validateLearningLine,"validateLearningLine"),__name(hasReferenceAfterCategory,"hasReferenceAfterCategory"),__name(buildResult,"buildResult"),tn(),__name(formatSingleIssue,"formatSingleIssue"),__name(formatIssueGroup,"formatIssueGroup"),__name(formatValidationIssues,"formatValidationIssues");var IP=new Set(["# Taste (Continuously Learned by [CommandCode][cmd])","# Taste (Continuously Learned by CommandCode.ai)","# Taste (Continuously Learned by CommandCode)"]);function warnIfEmptyCategory(e,t){!e.currentCategory||e.learningsInCurrentCategory>0||hasReferenceAfterCategory({lines:t,categoryLineIndex:e.categoryLineNumber-1})||e.issues.push({line:e.categoryLineNumber,severity:"warning",message:`Category '${e.currentCategory}' has no learnings`,suggestion:"Add at least one learning or remove this category"})}function processHeading(e){const{line:t,lineNum:n,state:r,rawLines:o}=e;IP.has(t.trim())||(r.hasAnyCategory=!0,warnIfEmptyCategory(r,o),r.currentCategory=t.trim().substring(2).trim(),r.categoryLineNumber=n,r.learningsInCurrentCategory=0)}function processLearning(e){const{line:t,lineNum:n,state:r}=e;r.currentCategory?(r.learningsInCurrentCategory++,r.issues.push(...validateLearningLine({line:t.trim(),lineNum:n}))):r.issues.push({line:n,severity:"error",message:"Learning found outside of any category",suggestion:'Add a category header (e.g., "# cli") before this learning'})}__name(warnIfEmptyCategory,"warnIfEmptyCategory"),__name(processHeading,"processHeading"),__name(processLearning,"processLearning");var NP=/^see \[[^\]]+\/taste\.md\]\([^\)]+\/taste\.md\)$/i,RP=/^\[cmd\]: https:\/\/commandcode\.ai\/$/i;function processLine(e){const{line:t,lineNum:n,state:r,rawLines:o}=e,s=t.trim();s&&(s.startsWith("# ")?processHeading({line:t,lineNum:n,state:r,rawLines:o}):s.startsWith("-")?processLearning({line:t,lineNum:n,state:r}):NP.test(s)||RP.test(s)||r.issues.push({line:n,severity:"error",message:"Invalid content - must be a category header (# name) or learning (- text)",suggestion:"Remove this line or format it as a category (# name) or learning (- text. Confidence: 0.XX)"}))}function checkFinalCategory(e){const{state:t,rawLines:n}=e;!t.currentCategory||t.learningsInCurrentCategory>0||!t.categoryLineNumber||hasReferenceAfterCategory({lines:n,categoryLineIndex:t.categoryLineNumber-1})||t.issues.push({line:t.categoryLineNumber,severity:"warning",message:`Category '${t.currentCategory}' has no learnings`,suggestion:"Add at least one learning or remove this category"})}function validateTasteFile(e){const{content:t,filePath:n}=e,r=[];if(!t.trim())return r.push({severity:"error",message:"File is empty",suggestion:"Add at least one category with learnings"}),buildResult({issues:r,filePath:n});const o=t.split("\n"),s=preprocessLines(o),i={currentCategory:null,categoryLineNumber:null,learningsInCurrentCategory:0,hasAnyCategory:!1,issues:r};for(const{text:e,originalLineNum:t}of s)processLine({line:e,lineNum:t,state:i,rawLines:o});return checkFinalCategory({state:i,rawLines:o}),buildResult({issues:r,filePath:n})}__name(processLine,"processLine"),__name(checkFinalCategory,"checkFinalCategory"),__name(validateTasteFile,"validateTasteFile");var MP=__name(e=>"local-global"===e?"global":"project","locationLabel"),LP=__name(({file:e,error:t})=>({success:!1,filesLinted:[],errors:[{file:e,error:t}],totalErrors:0,totalWarnings:0}),"failResult");function resolvePackageFile(e,t){const n=getCategoryTasteFile({target:t,category:e});return k(n)?{result:{path:n,displayName:`${e}/taste.md`}}:{error:{file:e,error:`Taste package '${e}' not found in ${MP(t)}`}}}function collectSpecificFiles(e){const{packages:t,target:n}=e,r=t.map(e=>resolvePackageFile(e,n));return{files:r.filter(e=>"result"in e).map(e=>e.result),errors:r.filter(e=>"error"in e).map(e=>e.error)}}async function collectAllFiles(e){const{tastePath:t,target:n}=e,r=[],o=getRootTasteFile({target:n});k(o)&&r.push({path:o,displayName:"taste.md"});const s=(await F.readdir(t,{withFileTypes:!0})).filter(e=>e.isDirectory()).map(e=>({entry:e,categoryFile:getCategoryTasteFile({target:n,category:e.name})})).filter(({categoryFile:e})=>k(e)).map(({entry:e,categoryFile:t})=>({path:t,displayName:`${e.name}/taste.md`}));return r.push(...s),r}async function lintFile(e){let t=await F.readFile(e.path,"utf-8");const n=migrateHeader({content:t});n!==t&&(await F.writeFile(e.path,n,"utf-8"),t=n);const r=validateTasteFile({content:t,filePath:e.displayName}),o=r.issues.filter(e=>"error"===e.severity).length,s=r.issues.filter(e=>"warning"===e.severity).length,i=formatValidationIssues({result:r});return{file:e.displayName,valid:r.valid,errors:o,warnings:s,formatted:i}}async function lintSpecificPackages(e){const{packages:t,target:n}=e,{files:r,errors:o}=collectSpecificFiles({packages:t,target:n});if(0===r.length&&o.length>0)return{success:!1,filesLinted:[],errors:o,totalErrors:0,totalWarnings:0};if(0===r.length)return LP({file:"all",error:`No taste files found in ${MP(n)}`});const s=await Promise.all(r.map(lintFile)),i=s.reduce((e,t)=>e+t.errors,0),a=s.reduce((e,t)=>e+t.warnings,0);return{success:s.every(e=>e.valid)&&0===o.length,filesLinted:s,errors:o,totalErrors:i,totalWarnings:a}}async function lintAllFiles(e){const{tastePath:t,target:n}=e,r=await collectAllFiles({tastePath:t,target:n});if(0===r.length)return LP({file:"all",error:`No taste files found in ${MP(n)}`});const o=await Promise.all(r.map(lintFile)),s=o.reduce((e,t)=>e+t.errors,0),i=o.reduce((e,t)=>e+t.warnings,0);return{success:o.every(e=>e.valid),filesLinted:o,errors:[],totalErrors:s,totalWarnings:i}}async function lint(e){const{packages:t,target:n}=e,r=getTastePath({target:n});return k(r)?t.length>0?lintSpecificPackages({packages:t,target:n}):lintAllFiles({tastePath:r,target:n}):LP({file:"all",error:`No taste directory found in ${MP(n)}`})}function resolveConflictStrategy(e){const t=[e.skip&&"skip",e.merge&&"merge",e.overwrite&&"overwrite"].filter(Boolean);return t.length>1&&exitWithError(`Cannot combine --${t[0]} and --${t[1]}. Choose one conflict strategy.`),t[0]}__name(resolvePackageFile,"resolvePackageFile"),__name(collectSpecificFiles,"collectSpecificFiles"),__name(collectAllFiles,"collectAllFiles"),__name(lintFile,"lintFile"),__name(lintSpecificPackages,"lintSpecificPackages"),__name(lintAllFiles,"lintAllFiles"),__name(lint,"lint"),tn(),jo(),__name(resolveConflictStrategy,"resolveConflictStrategy");var $P=me.bgGreen.black.bold(" TASTE ");function shortenPath(e){const t=process.env.HOME??process.env.USERPROFILE??"";return t&&e.startsWith(t)?`~${e.slice(t.length)}`:e}function exitWithError(e){console.error(`${me.red("Error:")} ${e.replace(/^Error:\s*/i,"")}`),process.exit(1)}function formatUsageLine(e){const t=e.match(/^(\s*(?:Usage:|or:)?\s*)(cmd)(\s+.+?)(\s+\(.*\))?$/);return t?`${me.dim(t[1])}${me.green(t[2])}${me.white(t[3]??"")}${t[4]?me.dim(t[4]):""}`:me.dim(e)}function exitWithUsage({message:e,usage:t}){console.error(`${me.red("Error:")} ${e.replace(/^Error:\s*/i,"")}`);for(const e of t)console.error(formatUsageLine(e));process.exit(1)}function resolveRemoteDefault(e){return e.global||e.remote?e:{...e,remote:!0}}__name(shortenPath,"shortenPath"),__name(exitWithError,"exitWithError"),__name(formatUsageLine,"formatUsageLine"),__name(exitWithUsage,"exitWithUsage"),__name(resolveRemoteDefault,"resolveRemoteDefault");var DP=__name((e,t)=>t,"linkFallback");function getPackageLink({owner:e,packageName:t}){return ht(`commandcode.ai/${e}/${t}`,`https://commandcode.ai/${e}/${t}`,{fallback:DP})}function getProfileLink(e){return ht(`commandcode.ai/${e}`,`https://commandcode.ai/${e}`,{fallback:DP})}function wrapLine(e,t=0){const n=(process.stdout.columns||80)-t;return gt(e,n,{trim:!1})}function formatMergeParts(e){const t=[];return e.added>0&&t.push(`${e.added} ${1===e.added?"learning":"learnings"} added`),e.updated>0&&t.push(`${e.updated} ${1===e.updated?"learning":"learnings"} updated`),e.unchanged>0&&t.push(`${e.unchanged} ${1===e.unchanged?"learning":"learnings"} unchanged`),t}function hasMergeConflictRisk(e){return(e.added>0||e.updated>0)&&e.unchanged>0}function hasMergeConflictRiskInRecord(e){return Object.values(e).some(hasMergeConflictRisk)}function logMergeReviewTip(){console.log(me.yellow("\nTip: Review merged learnings to ensure no conflicting rules."))}function parseOwnerPackage(e){if(!e.includes("/"))return;const[t,n]=e.split("/");return t&&n?{owner:t,packageName:n}:void 0}function handleResultErrors(e){for(const t of e){const e=t.error.replace(/^Taste package(?: '.*?')? /,`Taste package '${t.pkg}' `);console.error(`${me.red("Error:")} ${e}`)}process.exit(1)}function getTimeAgo(e){const t=Date.now()-e.getTime(),n=Math.floor(t/6e4),r=Math.floor(t/36e5),o=Math.floor(t/864e5);return n<1?"just now":n<60?`${n} minute${n>1?"s":""} ago`:r<24?`${r} hour${r>1?"s":""} ago`:`${o} day${o>1?"s":""} ago`}async function flushAndExit(e){await Promise.race([shutdownTelemetry(),new Promise(e=>setTimeout(e,500))]).catch(()=>{}),process.exit(e)}function withErrorHandler(e){return async(...t)=>{try{await e(...t),await flushAndExit(0)}catch(e){const t=e instanceof Error?e.message:String(e);console.error(me.red(`Error: ${t}`)),await flushAndExit(1)}}}function createLintCommand(){return new _e("lint").argument("[package]","Taste package name").option("-g, --global","Validate taste packages from global storage (~/.commandcode)").option("--all","Validate all taste packages").description(`Validate taste package format ${me.dim("(structure, style, etc.)")}`).action(withErrorHandler(async(e,t)=>runLint({packageName:e,options:t})))}function validateLintOptions({packageName:e,options:t}){e||t.all||exitWithUsage({message:"Specify a taste package name or use --all to validate everything",usage:["cmd taste lint <package> validate a taste package","cmd taste lint --all validate all taste packages"]}),e&&t.all&&exitWithError("Use either a package name or --all, not both")}function logLintResults(e){for(const t of e.filesLinted)console.log(t.formatted);e.filesLinted.length>1&&logLintSummary(e),e.success||process.exit(1)}function logLintSummary({filesLinted:e,totalErrors:t,totalWarnings:n}){if(console.log(""),0===t&&0===n)return void console.log(`${me.green(Pe.tick)} All ${me.green(e.length)} taste files are valid`);const r=[];t>0&&r.push(me.red(`${t} error${t>1?"s":""}`)),n>0&&r.push(me.yellow(`${n} warning${n>1?"s":""}`)),console.log(`Summary: ${r.join(", ")} across ${e.length} files`)}async function runLint({packageName:e,options:t}){console.log(""),validateLintOptions({packageName:e,options:t});const n=await lint({packages:e?[e]:[],target:t.global?"local-global":"local-project"});if(n.errors.length>0){for(const e of n.errors)console.error(me.red(`Error: ${e.error}`));process.exit(1)}logLintResults(n)}function parseSection(e){const{section:t,sourcePath:n}=e,r=t.split("\n"),o=r[0].trim(),s=r.map(e=>parseLearning({line:e})).filter(e=>null!==e);return 0===s.length?null:{category:normalizeCategory({category:o}),learnings:s,sourcePath:n}}function parsePackages(e){const{content:t,sourcePath:n}=e;return t.split(/^# /gm).filter(e=>e.trim()).filter(e=>!e.includes("See [")).map(e=>parseSection({section:e,sourcePath:n})).filter(e=>null!==e)}function parseLearning(e){const{line:t}=e,n=t.match(/^-?\s*(.+?)[\.:,]?\s*confidence:\s*(\d*\.?\d+)/i);if(!n)return null;const r=parseFloat(n[2]);return isNaN(r)||r<0||r>1?null:{text:n[1].trim(),confidence:r}}function normalizeCategory(e){const{category:t}=e;return t.toLowerCase().replace(/\s+/g,"-")}function denormalizeCategory(e){const{slug:t}=e;return t.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function formatPackage(e){const{pkg:t}=e;let n=`# ${denormalizeCategory({slug:t.category})}\n`;for(const e of t.learnings)n+=`- ${e.text}. Confidence: ${e.confidence.toFixed(2)}\n`;return n}async function readAndMigrateFile(e){const{filePath:t}=e,n=await F.readFile(t,"utf-8"),r=migrateHeader({content:n});return r===n?n:(await F.writeFile(t,r,"utf-8"),r)}function trimTrailingBlanks(e){const{lines:t,until:n}=e;let r=e.from;for(;r>n&&""===t[r].trim();)r--;return r}function findCategoryRange(e){const{lines:t,pattern:n}=e,r=t.findIndex(e=>n.test(e));if(-1===r)return null;const o=t.findIndex((e,t)=>t>r&&e.startsWith("# "));if(-1===o)return{start:r,end:t.length-1};const s=trimTrailingBlanks({lines:t,from:o-1,until:r});return{start:r,end:s}}function ensureHeader(e){if(!e)return Hb+"\n\n";const t=e.trim();return t.startsWith(Ub)||t.startsWith(Wb)||t.startsWith(Gb)?e:Hb+"\n\n"+e}function ensureTrailingNewlines(e){return e?e.endsWith("\n\n")?e:e.endsWith("\n")?e+"\n":e+"\n\n":e}__name(getPackageLink,"getPackageLink"),__name(getProfileLink,"getProfileLink"),__name(wrapLine,"wrapLine"),__name(formatMergeParts,"formatMergeParts"),__name(hasMergeConflictRisk,"hasMergeConflictRisk"),__name(hasMergeConflictRiskInRecord,"hasMergeConflictRiskInRecord"),__name(logMergeReviewTip,"logMergeReviewTip"),__name(parseOwnerPackage,"parseOwnerPackage"),__name(handleResultErrors,"handleResultErrors"),__name(getTimeAgo,"getTimeAgo"),__name(flushAndExit,"flushAndExit"),__name(withErrorHandler,"withErrorHandler"),__name(createLintCommand,"createLintCommand"),__name(validateLintOptions,"validateLintOptions"),__name(logLintResults,"logLintResults"),__name(logLintSummary,"logLintSummary"),__name(runLint,"runLint"),tn(),ts(),tn(),tn(),tn(),__name(parseSection,"parseSection"),__name(parsePackages,"parsePackages"),__name(parseLearning,"parseLearning"),__name(normalizeCategory,"normalizeCategory"),__name(denormalizeCategory,"denormalizeCategory"),tn(),__name(formatPackage,"formatPackage"),tn(),__name(readAndMigrateFile,"readAndMigrateFile"),__name(trimTrailingBlanks,"trimTrailingBlanks"),__name(findCategoryRange,"findCategoryRange"),__name(ensureHeader,"ensureHeader"),__name(ensureTrailingNewlines,"ensureTrailingNewlines");var OP="local-global";async function loadCategoryPackages(e){if(!e.isDirectory())return[];const t=getCategoryTasteFile({target:OP,category:e.name});return k(t)?parsePackages({content:await readAndMigrateFile({filePath:t}),sourcePath:t}).map(t=>({...t,category:e.name})):[]}async function getPackageInfo(e){try{const t=await F.stat(e.sourcePath);return{category:e.category,learningCount:e.learnings.length,lastUpdated:t.mtime,filePath:e.sourcePath}}catch{return{category:e.category,learningCount:e.learnings.length,lastUpdated:new Date,filePath:e.sourcePath}}}async function getAllPackages(){const e=getTastePath({target:OP});if(!k(e))return[];const t=await F.readdir(e,{withFileTypes:!0});return(await Promise.all(t.map(loadCategoryPackages))).flat()}async function getPackage(e){const{category:t}=e,n=getCategoryTasteFile({target:OP,category:t});return k(n)&&parsePackages({content:await readAndMigrateFile({filePath:n}),sourcePath:n})[0]||null}async function writePackage(t){const{pkg:n}=t,r=getTastePath({target:OP});await F.mkdir(r,{recursive:!0});const o=getCategoryTasteFile({target:OP,category:n.category}),s=e.dirname(o);await F.mkdir(s,{recursive:!0});const i=formatPackage({pkg:n});await F.writeFile(o,i,"utf-8")}async function listPackages(){const e=await getAllPackages();return await Promise.all(e.map(getPackageInfo))}__name(loadCategoryPackages,"loadCategoryPackages"),__name(getPackageInfo,"getPackageInfo"),__name(getAllPackages,"getAllPackages"),__name(getPackage,"getPackage"),__name(writePackage,"writePackage"),__name(listPackages,"listPackages"),tn(),tn();var FP="local-project";async function removeCategoryFromRoot(e){const{category:t,rootFile:n}=e;if(!k(n))return null;const r=migrateHeader({content:await F.readFile(n,"utf-8")}).split("\n"),o=findCategoryRange({lines:r,pattern:new RegExp(`^# ${t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}$`,"i")});if(!o)return null;const s=r.slice(0,o.start),i=o.end<r.length-1?r.slice(o.end+1):[],a={before:s.join("\n").trim(),after:i.join("\n").trim()},l=[...s,...i].join("\n").trim();return""===l&&await F.rm(n,{force:!0}),""!==l&&await F.writeFile(n,l+"\n","utf-8"),a}async function removePackage(t){const{category:n}=t,r=getRootTasteFile({target:FP}),o=await removeCategoryFromRoot({category:n,rootFile:r}),s=getCategoryTasteFile({target:FP,category:n}),i=e.dirname(s);return k(i)&&await F.rm(i,{recursive:!0,force:!0}),o}async function writeToRoot(e){const{pkg:t,rootFile:n,categoryPosition:r}=e,o=formatPackage({pkg:t});if(r){let e=ensureHeader(migrateHeader({content:r.before}));e=ensureTrailingNewlines(e);const t=r.after?"\n\n"+r.after:"";return e+=o.trim()+t,void await F.writeFile(n,e.trim()+"\n","utf-8")}let s="";k(n)&&(s=await F.readFile(n,"utf-8"),s=migrateHeader({content:s})),s=ensureHeader(s),s=ensureTrailingNewlines(s),s+=o,await F.writeFile(n,s.trim()+"\n","utf-8")}async function writeToSubdirectory(t){const{pkg:n,rootFile:r,categoryPosition:o}=t,s=getCategoryTasteFile({target:FP,category:n.category}),i=e.dirname(s);await F.mkdir(i,{recursive:!0});const a=formatPackage({pkg:n});await F.writeFile(s,a,"utf-8");const l=`# ${n.category}\nSee [${n.category}/taste.md](${n.category}/taste.md)\n`;if(o){let e=ensureHeader(migrateHeader({content:o.before}));e=ensureTrailingNewlines(e);const t=o.after?"\n\n"+o.after:"";return e+=l.trim()+t,void await F.writeFile(r,e.trim()+"\n","utf-8")}let u="";k(r)&&(u=await F.readFile(r,"utf-8"),u=migrateHeader({content:u})),u=ensureHeader(u),u=ensureTrailingNewlines(u),u+=l,await F.writeFile(r,u.trim()+"\n","utf-8")}__name(removeCategoryFromRoot,"removeCategoryFromRoot"),__name(removePackage,"removePackage"),__name(writeToRoot,"writeToRoot"),__name(writeToSubdirectory,"writeToSubdirectory");var qP="local-project";async function loadCategoryPackages2(e){if(!e.isDirectory())return[];const t=getCategoryTasteFile({target:qP,category:e.name});return k(t)?parsePackages({content:await readAndMigrateFile({filePath:t}),sourcePath:t}).map(t=>({...t,category:e.name})):[]}async function getAllPackages2(){const e=getTastePath({target:qP});if(!k(e))return[];const t=[],n=getRootTasteFile({target:qP});if(k(n)){const e=parsePackages({content:await readAndMigrateFile({filePath:n}),sourcePath:n});t.push(...e)}const r=await F.readdir(e,{withFileTypes:!0}),o=(await Promise.all(r.map(loadCategoryPackages2))).flat();return t.push(...o),t}async function getPackage2(e){const{category:t}=e;return(await getAllPackages2()).find(e=>e.category===t)||null}async function writePackage2(e){const{pkg:t}=e,n=getTastePath({target:qP});await F.mkdir(n,{recursive:!0});const r=getRootTasteFile({target:qP}),o=await removePackage({category:t.category});t.learnings.length<=5?await writeToRoot({pkg:t,rootFile:r,categoryPosition:o}):await writeToSubdirectory({pkg:t,rootFile:r,categoryPosition:o})}function exists2(){const e=getTastePath({target:qP});return k(e)}async function appendCategoryFile(e,t){const n=getCategoryTasteFile({target:"local-project",category:t.category});if(!k(n))return;const r=await F.readFile(n,"utf-8"),o=new Blob([r],{type:"text/markdown"}),s=new File([o],"taste.md",{type:"text/markdown"});e.append(`files[${t.category}/taste.md]`,s)}async function prepareUploadFormData(t){const{packageName:n,pkg:r,description:o,type:s="category",isPublic:i=!1,overwrite:a=!1}=t,l=new FormData;l.append("name",n),o&&l.append("description",o),l.append("type",s),l.append("isPublic",String(i)),l.append("overwrite",String(a));const u=formatPackage({pkg:r}),d=new Blob([u],{type:"text/markdown"}),m=new File([d],"taste.md",{type:"text/markdown"});if(l.append("files[taste.md]",m),"category"===s)return l;const g=getTastePath({target:"local-project"}),h=e.join(g,r.category);if(!k(h))return l;const f=getCategoryTasteFile({target:"local-project",category:r.category});if(!k(f))return l;const y=await F.readFile(f,"utf-8"),w=new Blob([y],{type:"text/markdown"}),S=new File([w],"taste.md",{type:"text/markdown"});return l.append(`files[${r.category}/taste.md]`,S),l}async function prepareMultiplePackagesUpload(e){const{pkgs:t,projectName:n,description:r,isPublic:o=!1,overwrite:s=!1}=e,i=new FormData;i.append("name",n),r&&i.append("description",r),i.append("type","project"),i.append("isPublic",String(o)),i.append("overwrite",String(s));const a=getRootTasteFile({target:"local-project"});if(k(a)){const e=await F.readFile(a,"utf-8"),t=new Blob([e],{type:"text/markdown"}),n=new File([t],"taste.md",{type:"text/markdown"});i.append("files[taste.md]",n)}const l=t.map(e=>appendCategoryFile(i,e));return await Promise.all(l),i}function parseLearningLine(e){const t=e.match(/^-\s+(.+?)\.\s+Confidence:\s+([\d.]+)/);if(!t)return null;const n=t[1].trim(),r=parseFloat(t[2]);return!n||isNaN(r)?null:{text:n,confidence:r}}function parseTasteContent(e){return e.split("\n").filter(e=>{const t=e.trim();return t&&!t.startsWith("#")&&t.startsWith("-")}).map(e=>parseLearningLine(e.trim())).filter(e=>null!==e)}async function parseApiError(e){const{response:t,fallback:n}=e;try{const e=await t.json();return e.error?.message||e.message||n}catch{return n}}function throwTrackedError(e){const{message:t,label:n,heading:r,status:o,extra:s}=e,i=new Error(t);throw trackError({error:sanitizeErrorForTelemetry({error:i,label:n}),context:{component:$o.TASTE_REMOTE_STORAGE,heading:r,"http.status":o,...s}}),i}async function requireAuthKey(){const e=await getAuthKey();if(!e)throw new Error("No API key found. Please authenticate with: cmd login");return e}async function downloadPackage(e){const{owner:t,packageName:n}=e,r=getApiBaseUrl(),o=await tryPublicDownload({baseUrl:r,owner:t,packageName:n});if(o)return o;const s=await getAuthKey();if(!s)throw new Error("Package not found. If this is a private package, please authenticate with `cmd login`");return tryAuthenticatedDownload({baseUrl:r,owner:t,packageName:n,apiKey:s})}async function tryPublicDownload(e){const{baseUrl:t,owner:n,packageName:r}=e,o=`${t}${At.INTERNAL.PROFILE.PACKAGE_DOWNLOAD.replace(":login",n).replace(":packageName",r)}`;let s;try{s=await fetch(o,{method:"GET"})}catch{return null}if(s.ok){const{data:e}=await s.json();return{type:e.type||"category",files:e.files||[],isPublic:!0}}if(404===s.status)return null;throwTrackedError({message:await parseApiError({response:s,fallback:`Failed to download taste package (${s.status})`}),label:"download_public_error",heading:"Failed to download taste package (public)",status:s.status})}async function tryAuthenticatedDownload(e){const{baseUrl:t,owner:n,packageName:r,apiKey:o}=e,s=`${t}${At.BETA.TASTE.PACKAGES.DOWNLOAD.replace(":namespace",n).replace(":packageName",r)}`,i=await fetch(s,{method:"GET",headers:{Authorization:`Bearer ${o}`}});if(i.ok){const{data:e}=await i.json();return{type:e.type||"category",files:e.files||[],isPublic:e.isPublic??!1}}if(404===i.status)return null;throwTrackedError({message:await parseApiError({response:i,fallback:"Failed to download taste package"}),label:"download_auth_error",heading:"Failed to download taste package (authenticated)",status:i.status})}async function fetchSinglePackage(e){try{return await getPackage3({category:e.name})}catch(t){const n=t instanceof Error?t:new Error(String(t));return trackError({error:sanitizeErrorForTelemetry({error:n,label:"download_package_error"}),context:{component:$o.TASTE_REMOTE_STORAGE,heading:"Failed to download package","package.name":e.name}}),console.warn(`Warning: Failed to download package '${e.name}': ${n.message}`),null}}async function getAllPackages3(){const e=await requireAuthKey(),t=`${getApiBaseUrl()}${At.BETA.TASTE.PACKAGES.LIST}`,n=await fetch(t,{method:"GET",headers:{Authorization:`Bearer ${e}`}});n.ok||throwTrackedError({message:await parseApiError({response:n,fallback:"Failed to list taste packages"}),label:"list_packages_error",heading:"Failed to list taste packages",status:n.status});const{data:r}=await n.json(),o=r.packages||[];if(0===o.length)return[];const s=[];for(let e=0;e<o.length;e+=5){const t=o.slice(e,e+5),n=await Promise.all(t.map(fetchSinglePackage));s.push(...n.filter(e=>null!==e))}return s}async function getPackage3(e){const{category:t}=e;let n;await requireAuthKey();try{n=await getAuthenticatedEntity()}catch(e){const n=e instanceof Error?e:new Error(String(e));throw dlog(`[Auth] getPackage: entity endpoint unavailable — ${n.message}`),trackError({error:sanitizeErrorForTelemetry({error:n,label:"get_entity_error"}),context:{component:$o.TASTE_REMOTE_STORAGE,heading:"getAuthenticatedEntity failed in getPackage"}}),new Error(`Could not resolve your account to fetch '${t}'. Check your connection and try again.`)}if(!n.success||!n.user?.userName)throw new Error("Failed to get authenticated user information");return downloadRemotePackage({owner:n.user.userName,packageName:t})}async function downloadRemotePackage(e){const{owner:t,packageName:n}=e,r=await downloadPackage({owner:t,packageName:n});if(!r)return null;const o=r.files||[];if(0===o.length)return null;const s=o.find(e=>"taste.md"===e.file);if(!s)throw new Error(`No taste.md file found in package '${n}'`);return{category:n,learnings:parseTasteContent(s.content),sourcePath:`remote:${n}`,isPublic:r.isPublic??!1}}async function writePackage3(e){const{pkg:t,owner:n,isPublic:r=!1,overwrite:o=!1}=e,s=await requireAuthKey(),i=await prepareUploadFormData({packageName:t.category,pkg:t,type:"category",isPublic:r,overwrite:o}),a=`${getApiBaseUrl()}${At.BETA.TASTE.PACKAGES.UPLOAD.replace(":namespace",n)}`,l=await fetch(a,{method:"POST",headers:{Authorization:`Bearer ${s}`},body:i});l.ok||throwTrackedError({message:await parseApiError({response:l,fallback:"Failed to upload taste package"}),label:"upload_package_error",heading:"Failed to upload taste package",status:l.status}),await l.json()}async function writePackages(e){const{packages:t,projectName:n,owner:r,isPublic:o=!1,overwrite:s=!1}=e,i=await requireAuthKey(),a=await prepareMultiplePackagesUpload({pkgs:t,projectName:n,isPublic:o,overwrite:s}),l=`${getApiBaseUrl()}${At.BETA.TASTE.PACKAGES.UPLOAD.replace(":namespace",r)}`,u=await fetch(l,{method:"POST",headers:{Authorization:`Bearer ${i}`},body:a});u.ok||throwTrackedError({message:await parseApiError({response:u,fallback:"Failed to upload taste packages"}),label:"upload_packages_error",heading:"Failed to upload taste packages",status:u.status,extra:{"package.count":t.length}}),await u.json()}async function listPackages2(){const e=await requireAuthKey(),t=`${getApiBaseUrl()}${At.BETA.TASTE.PACKAGES.LIST}`,n=await fetch(t,{method:"GET",headers:{Authorization:`Bearer ${e}`}});n.ok||throwTrackedError({message:await parseApiError({response:n,fallback:"Failed to list taste packages"}),label:"list_packages_error",heading:"Failed to list packages",status:n.status});const{data:r}=await n.json();return(r.packages||[]).map(e=>({category:e.name,learningCount:e.learningCount||0,lastUpdated:e.createdAt?new Date(e.createdAt):new Date,filePath:"",isPublic:e.isPublic??!1,starCount:e.starCount??0,downloadCount:e.downloadCount??0,type:e.type??"category"}))}async function list(e){const{location:t}=e;if("local-global"===t)return listPackages();if("remote-project"===t||"remote-user"===t)return listPackages2();if("local-project"===t){const e=getRootTasteFile({target:"local-project"}),t=await getAllPackages2();return Promise.all(t.map(async t=>{let n;if(t.sourcePath!==e)try{n=(await F.stat(t.sourcePath)).mtime}catch{}return{category:t.category,learningCount:t.learnings.length,lastUpdated:n,filePath:t.sourcePath}}))}throw new Error(`Invalid location: ${t}`)}function createListCommand(){return new _e("list").alias("ls").option("-g, --global","List global packages").addOption(new xe("-l, --local","Use local server").hideHelp()).option("--remote","List remote packages").addOption(new xe("--staging","Use staging environment").hideHelp()).description(`List available packages ${me.dim("(project, global, or remote)")}`).action(withErrorHandler(async e=>runList({options:e})))}__name(loadCategoryPackages2,"loadCategoryPackages"),__name(getAllPackages2,"getAllPackages"),__name(getPackage2,"getPackage"),__name(writePackage2,"writePackage"),__name(exists2,"exists"),tn(),Tw(),tn(),__name(appendCategoryFile,"appendCategoryFile"),__name(prepareUploadFormData,"prepareUploadFormData"),__name(prepareMultiplePackagesUpload,"prepareMultiplePackagesUpload"),sn(),tn(),__name(parseLearningLine,"parseLearningLine"),__name(parseTasteContent,"parseTasteContent"),Pb(),jo(),tn(),xb(),jo(),__name(parseApiError,"parseApiError"),__name(throwTrackedError,"throwTrackedError"),__name(requireAuthKey,"requireAuthKey"),tn(),Tw(),xb(),sn(),__name(downloadPackage,"downloadPackage"),__name(tryPublicDownload,"tryPublicDownload"),__name(tryAuthenticatedDownload,"tryAuthenticatedDownload"),Bn(),__name(fetchSinglePackage,"fetchSinglePackage"),__name(getAllPackages3,"getAllPackages"),__name(getPackage3,"getPackage"),__name(downloadRemotePackage,"downloadRemotePackage"),__name(writePackage3,"writePackage"),__name(writePackages,"writePackages"),__name(listPackages2,"listPackages"),__name(list,"list"),__name(createListCommand,"createListCommand");var jP={remote:{location:"remote-project",name:"remote",subtitle:"commandcode.ai account"},global:{location:"local-global",name:"global",subtitle:"~/.commandcode/taste"},project:{location:"local-project",name:"project",subtitle:".commandcode/taste"}};function resolveStorage(e){return e.remote?jP.remote:e.global?jP.global:jP.project}function getPackageDisplayLength(e){let t=e.category.length;return e.isPublic&&(t+=9),e.isPublic&&e.starCount&&(t+=` ${Pe.star}${e.starCount}`.length),e.downloadCount&&(t+=` ${Pe.arrowDown}${e.downloadCount}`.length),t}function formatPackageLine({pkg:e,maxLen:t}){const n=" ".repeat(t-getPackageDisplayLength(e)+2),r=e.lastUpdated?getTimeAgo(e.lastUpdated):null,o=r?`, updated ${r}`:"";return` ${me.white(e.category)}${e.isPublic?me.green(" [public]"):""}${e.isPublic&&e.starCount?me.yellow(` ${Pe.star}${e.starCount}`):""}${e.downloadCount?me.gray(` ${Pe.arrowDown}${e.downloadCount}`):""}${n}${me.dim.gray(`(${e.learningCount} learnings${o})`)}`}function validateListOptions(e){e.global&&e.remote&&exitWithError("Error: Cannot specify both --global and --remote flags")}async function fetchPackages({options:e}){const t=resolveStorage(e),n=e.remote?Ae(`Fetching ${t.name} packages`).start():null,r=await list({location:t.location});return n?.stop(),{packages:r,storage:t}}async function getStorageLabel({options:e,fallback:t}){if(!e.remote)return t;const n=await getUserName();return n?getProfileLink(n):t}function printPackageTable({packages:e,subtitle:t}){console.log(`\n${$P} Packages`),console.log(`${me.gray("⎿")} ${me.dim(t)}\n`);const n=Math.max(...e.map(getPackageDisplayLength));let r=0;for(const t of e)r+=t.learningCount,console.log(formatPackageLine({pkg:t,maxLen:n}));console.log(me.dim(`\nTotal: ${e.length} packages, ${r} learnings\n`))}async function runList({options:e}){console.log(""),validateListOptions(e);const{packages:t,storage:n}=await fetchPackages({options:e});0!==t.length?printPackageTable({packages:t,subtitle:await getStorageLabel({options:e,fallback:n.subtitle})}):console.log(me.yellow(`No taste packages found in ${n.name}`))}async function fetchAllPackages(e){const{target:t}=e;return"local-project"===t?getAllPackages2():"local-global"===t?getAllPackages():getAllPackages3()}function handleOpenError(e){return e instanceof Error&&e.message.includes("$EDITOR environment variable")?{success:!1,error:getEditorSetupInstructions()}:{success:!1,error:e instanceof Error?e.message:String(e)}}async function readCategoryLineNumber(t){const{filePath:n,category:r}=t,o=await F.readFile(n,"utf-8");if("taste.md"===e.basename(n)&&e.basename(e.dirname(n))===r)return 1;const s=o.split("\n").findIndex(e=>e.trim().toLowerCase()===`# ${r.toLowerCase()}`);return s>=0?s+1:1}async function findCategoryLineNumber(e){try{return await readCategoryLineNumber(e)}catch{return 1}}async function openPackage(e){const{packageName:t,target:n}=e,r=(await fetchAllPackages({target:n})).find(e=>e.category===t);if(!r){let e="project";return"local-global"===n&&(e="global"),"remote-project"!==n&&"remote-user"!==n||(e="remote"),{success:!1,error:`Taste package '${t}' not found in ${e}`}}const o=r.sourcePath,s=await findCategoryLineNumber({filePath:o,category:t});return await dt([{file:o,line:s}]),{success:!0,filePath:o,lineNumber:s}}__name(resolveStorage,"resolveStorage"),__name(getPackageDisplayLength,"getPackageDisplayLength"),__name(formatPackageLine,"formatPackageLine"),__name(validateListOptions,"validateListOptions"),__name(fetchPackages,"fetchPackages"),__name(getStorageLabel,"getStorageLabel"),__name(printPackageTable,"printPackageTable"),__name(runList,"runList"),tn(),tn(),__name(fetchAllPackages,"fetchAllPackages"),__name(handleOpenError,"handleOpenError"),__name(readCategoryLineNumber,"readCategoryLineNumber"),__name(findCategoryLineNumber,"findCategoryLineNumber"),__name(openPackage,"openPackage");var BP=new Set(["local-project","local-global","remote-project","remote-user"]);async function open11(e){const{package:t,target:n}=e;if(!BP.has(n))return{success:!1,error:`Invalid target: ${n}`};try{return await openPackage({packageName:t,target:n})}catch(e){return handleOpenError(e)}}function getEditorSetupInstructions(){const e=ft.platform;if("win32"===e)return'Error: No default editor found\n\nTo permanently set your default editor, run one of these commands:\n\nCommand Prompt (as Administrator):\n setx EDITOR "code" # VS Code\n setx EDITOR "notepad" # Notepad\n setx EDITOR "vim" # Vim (if installed via WSL/Git Bash)\n\nPowerShell:\n [Environment]::SetEnvironmentVariable("EDITOR", "code", "User")\n\nThen restart your terminal.';const t="darwin"===e?"~/.zshrc":"~/.bashrc";return`Error: No default editor found\n\nTo permanently set your default editor, run one of these commands:\n echo 'export EDITOR="code"' >> ${t} # VS Code\n echo 'export EDITOR="vim"' >> ${t} # Vim\n echo 'export EDITOR="nano"' >> ${t} # Nano\n echo 'export EDITOR="subl"' >> ${t} # Sublime Text\n\nFor bash users ${"darwin"===e?"(or ~/.bash_profile for bash)":"(or ~/.zshrc for zsh)"}, replace ${t} with the appropriate file.\n\nThen restart your terminal or run: source ${t}`}function createOpenCommand(){return new _e("open").argument("[package]","Taste package name, or owner/package to open in browser").option("-g, --global","Open taste package from global storage (~/.commandcode)").description(`Open a taste package in your editor ${me.dim("(use owner/package to open in browser)")}`).action(withErrorHandler(async(e,t)=>runOpen({packageName:e,options:t})))}function validateOpenOptions(e){e||exitWithUsage({message:"Specify a taste package name to open",usage:["cmd taste open <package> open taste package in editor","cmd taste open <package> -g open global taste package in editor","cmd taste open owner/package open package page in browser"]})}async function runOpen({packageName:e,options:t}){console.log(""),validateOpenOptions(e);const n=parseOwnerPackage(e);n?await openInBrowser(n):await openInEditor3({packageName:e,options:t})}async function openInBrowser(e){const t=`https://commandcode.ai/${e.owner}/${e.packageName}`;await fe(t);const n=getPackageLink({owner:e.owner,packageName:e.packageName});console.log(`${me.green(Pe.tick)} Opened ${n} in browser`)}async function openInEditor3({packageName:e,options:t}){const n=t.global?"local-global":"local-project",r=await open11({package:e,target:n});r.success||exitWithError(r.error??"Unknown error"),console.log(`${me.green(Pe.tick)} Opened ${me.green(`'${e}'`)} taste package from ${t.global?"global":"project"}`)}__name(open11,"open"),__name(getEditorSetupInstructions,"getEditorSetupInstructions"),__name(createOpenCommand,"createOpenCommand"),__name(validateOpenOptions,"validateOpenOptions"),__name(runOpen,"runOpen"),__name(openInBrowser,"openInBrowser"),__name(openInEditor3,"openInEditor"),tn(),tn(),tn(),tn();var UP=null,zP=!1;function setActiveSpinner(e){UP=e}function stopActiveSpinner(e){UP&&(UP.stop(e),UP=null)}function setPrompted(e){zP=e}function wasPrompted(){return zP}function beginPrompt(e,t){stopActiveSpinner(),Fe.intro(me.dim(e)),t&&Fe.log.message(me.dim(t)),setPrompted(!0)}function handleCancel(e){Fe.isCancel(e)&&(Fe.cancel("Operation cancelled"),process.exit(0))}function startStrategySpinner(e){if("skip"===e){const e=Fe.spinner();return e.start("Skipping"),void e.stop("Skipped")}const t="merge"===e?"Merging":"Overwriting",n="merge"===e?"Merged":"Overwritten",r=Fe.spinner();r.start(t),setActiveSpinner({stop:__name(e=>r.stop(e??n),"stop"),cancel:__name(e=>r.cancel(e),"cancel"),error:__name(e=>r.error(e),"error")})}async function promptMergeStrategy(e){const{packageName:t,owner:n,localPkg:r,remoteLearningsCount:o}=e,s="This package already exists locally";if(!process.stdout.isTTY||!process.stdin.isTTY)return stopActiveSpinner(s),setPrompted(!0),Fe.log.warn("Non-interactive terminal detected, using default merge strategy"),"merge";beginPrompt(`Pulling ${me.green(`'${t}'`)} from ${n}`,s),Fe.log.message(`Local: ${r.learnings.length} learnings\nRemote: ${o} learnings ${me.dim(`(from ${n})`)}`);const i=await Fe.select({message:"What would you like to do?",options:[{value:"merge",label:"Merge",hint:"Combine both versions intelligently (default)"},{value:"overwrite",label:"Overwrite",hint:`Replace local with remote (${r.learnings.length} → ${o} learnings)`},{value:"skip",label:"Skip",hint:"Keep local version, ignore remote"}],initialValue:"merge"});handleCancel(i);const a=i;return startStrategySpinner(a),a}async function promptGlobalPushStrategy(e){const{packageName:t,localLearningsCount:n,globalPkg:r}=e,o="This package already exists in global storage";if(!process.stdout.isTTY||!process.stdin.isTTY)return stopActiveSpinner(o),setPrompted(!0),Fe.log.warn("Non-interactive terminal detected, using default merge strategy"),"merge";beginPrompt(`Pushing ${me.green(`'${t}'`)} to global`,o),Fe.log.message(`Local: ${n} learnings\nGlobal: ${r.learnings.length} learnings`);const s=await Fe.select({message:"What would you like to do?",options:[{value:"merge",label:"Merge",hint:"Combine both versions intelligently (default)"},{value:"overwrite",label:"Overwrite",hint:`Replace global with local (${r.learnings.length} → ${n} learnings)`},{value:"skip",label:"Skip",hint:"Keep global version, cancel push"}],initialValue:"merge"});handleCancel(s);const i=s;return startStrategySpinner(i),i}async function promptGlobalPullStrategy(e){const{packageName:t,localPkg:n,globalLearningsCount:r}=e,o="This package already exists locally";if(!process.stdout.isTTY||!process.stdin.isTTY)return stopActiveSpinner(o),setPrompted(!0),Fe.log.warn("Non-interactive terminal detected, using default merge strategy"),"merge";beginPrompt(`Pulling ${me.green(`'${t}'`)} from global`,o),Fe.log.message(`Local: ${n.learnings.length} learnings\nGlobal: ${r} learnings`);const s=await Fe.select({message:"What would you like to do?",options:[{value:"merge",label:"Merge",hint:"Combine both versions intelligently (default)"},{value:"overwrite",label:"Overwrite",hint:`Replace local with global (${n.learnings.length} → ${r} learnings)`},{value:"skip",label:"Skip",hint:"Keep local version, ignore global"}],initialValue:"merge"});handleCancel(s);const i=s;return startStrategySpinner(i),i}async function promptTypeMismatchStrategy(e){const{packageName:t,owner:n,localLearningsCount:r,remoteLearningsCount:o}=e,s=`Pushing local project taste to individual package '${t}'`;if(!process.stdout.isTTY||!process.stdin.isTTY)return stopActiveSpinner(s),setPrompted(!0),Fe.log.warn("Non-interactive terminal detected, skipping push"),"skip";const i=ht(`commandcode.ai/${n}/${t}`,`https://commandcode.ai/${n}/${t}`,{fallback:__name((e,t)=>t,"fallback")});beginPrompt(`Pushing ${me.green(`'${t}'`)} to ${n}`,s),Fe.log.message(`Local: ${t} (${r} learnings)\nRemote: ${t} (${o} learnings) in ${n}`),Fe.log.info(`Current package: ${me.cyan(i)} ${me.dim("(review)")}`);const a=await Fe.select({message:"What would you like to do?",options:[{value:"skip",label:"Skip",hint:"Keep remote version, cancel push"},{value:"overwrite",label:"Overwrite",hint:"Replace individual remote package with local project taste"}],initialValue:"skip"});handleCancel(a);const l=a;return startStrategySpinner(l),l}async function promptSameTypeStrategy(e){const{packageName:t,owner:n,localLearningsCount:r,remoteLearningsCount:o}=e,s=`This package already exists in ${n}`;if(!process.stdout.isTTY||!process.stdin.isTTY)return stopActiveSpinner(s),setPrompted(!0),Fe.log.warn("Non-interactive terminal detected, skipping push"),"skip";const i=ht(`commandcode.ai/${n}/${t}`,`https://commandcode.ai/${n}/${t}`,{fallback:__name((e,t)=>t,"fallback")});beginPrompt(`Pushing ${me.green(`'${t}'`)} to ${n}`,s),Fe.log.message(`Local: ${r} learnings\nRemote: ${o} learnings`),Fe.log.info(`Current package: ${me.cyan(i)} ${me.dim("(review)")}`);const a=await Fe.select({message:"What would you like to do?",options:[{value:"skip",label:"Skip",hint:"Keep remote version, cancel push"},{value:"overwrite",label:"Overwrite",hint:`Replace remote with local (${o} → ${r} learnings)`}],initialValue:"skip"});handleCancel(a);const l=a;return startStrategySpinner(l),l}function mergeSingleLearning(e,t,n,r){const o=t.get(e.text);return o?e.confidence>o.confidence?(n.set(e.text,e),void r.updated++):void r.unchanged++:(n.set(e.text,e),void r.added++)}function mergePackages(e){const{source:t,target:n}=e,r={added:0,updated:0,unchanged:0},o=new Map(n.map(e=>[e.text,e])),s=new Map(o);for(const e of t)mergeSingleLearning(e,o,s,r);const i=new Set(t.map(e=>e.text)),a=n.filter(e=>!i.has(e.text)).length;return r.unchanged+=a,{merged:Array.from(s.values()),details:r}}function validateSinglePackage(e,t){const n=validateTasteFile({content:formatPackage({pkg:e}),filePath:`${e.category}/taste.md`});if(!n.valid){const r=formatValidationIssues({result:n,verbose:!0});return{pkg:e.category,error:`Validation failed for taste package in ${t}:\n${r}`}}return n.issues.filter(e=>"warning"===e.severity).length>0&&(console.warn(`\nWarning: Taste package '${e.category}' in ${t} has validation warnings:\n`),console.warn(formatValidationIssues({result:n,verbose:!0})+"\n")),null}function validateSingleRemoteFile(e,t){const n=validateTasteFile({content:e.content,filePath:e.file});if(!n.valid){const r=formatValidationIssues({result:n,verbose:!0});return{pkg:t,error:`Validation failed for ${e.file}:\n${r}`}}return n.issues.filter(e=>"warning"===e.severity).length>0&&(console.warn(`\nWarning: File '${e.file}' has validation warnings:\n`),console.warn(formatValidationIssues({result:n,verbose:!0})+"\n")),null}function validatePackages(e){const{packages:t,label:n}=e;return t.map(e=>validateSinglePackage(e,n)).filter(e=>null!==e)}function validateRemoteFiles(e){const{files:t,packageName:n}=e;return t.map(e=>validateSingleRemoteFile(e,n)).filter(e=>null!==e)}function mergeOrKeep(e){const{source:t,existing:n}=e;if(!n)return{pkg:t,details:{added:t.learnings.length,updated:0,unchanged:0}};const r=mergePackages({source:t.learnings,target:n.learnings});return{pkg:{...t,learnings:r.merged},details:r.details}}async function resolveRemotePullStrategy(e){const{flagStrategy:t,overwrite:n,existingPkg:r,tastePkg:o,owner:s}=e;return"skip"===t?r?"skip":"merge":"merge"===t?"merge":"overwrite"===t||n?"overwrite":r?promptMergeStrategy({packageName:o.category,owner:s,localPkg:r,remoteLearningsCount:o.learnings.length}):"merge"}async function executePackageStrategy(e){const{tastePkg:t,owner:n,overwrite:r,flagStrategy:o,result:s}=e,i=await getPackage2({category:t.category}),a=await resolveRemotePullStrategy({flagStrategy:o,overwrite:r,existingPkg:i,tastePkg:t,owner:n});if("skip"===a)return void s.skipped?.push(t.category);if("overwrite"===a&&(await writePackage2({pkg:t}),s.packagesPulled.push(t.category),s.overwritten.push(t.category)),"merge"===a){const{pkg:e,details:n}=mergeOrKeep({source:t,existing:i});await writePackage2({pkg:e}),s.packagesPulled.push(t.category),s.mergeDetails[t.category]=n}const l=getCategoryTasteFile({target:"local-project",category:t.category});s.filePaths[t.category]=l}async function processPackage(e){const{tastePkg:t,result:n}=e;try{await executePackageStrategy(e)}catch(e){n.success=!1,n.errors.push({pkg:t.category,error:e instanceof Error?e.message:String(e)})}}async function pullProjectPackage(e){const{files:t,packageName:n,owner:r,overwrite:o,flagStrategy:s,result:i}=e,a=t.find(e=>"taste.md"===e.file);if(a){const e=parsePackages({content:a.content,sourcePath:`remote:${n}/taste.md`});for(const t of e)await processPackage({tastePkg:t,owner:r,overwrite:o,flagStrategy:s,result:i})}const l=t.filter(e=>"taste.md"!==e.file);for(const e of l){const t=e.file.replace("/taste.md",""),a={category:t,learnings:parseTasteContent(e.content),sourcePath:`remote:${n}/${t}`};await processPackage({tastePkg:a,owner:r,overwrite:o,flagStrategy:s,result:i})}}async function pullCategoryPackage(e){const{files:t,packageName:n,owner:r,overwrite:o,flagStrategy:s,result:i}=e,a=t.find(e=>"taste.md"===e.file);if(!a)return i.success=!1,void i.errors.push({pkg:n,error:"No taste.md file found in category package"});const l={category:n,learnings:parseTasteContent(a.content),sourcePath:`remote:${n}`};await processPackage({tastePkg:l,owner:r,overwrite:o,flagStrategy:s,result:i})}__name(setActiveSpinner,"setActiveSpinner"),__name(stopActiveSpinner,"stopActiveSpinner"),__name(setPrompted,"setPrompted"),__name(wasPrompted,"wasPrompted"),__name(beginPrompt,"beginPrompt"),__name(handleCancel,"handleCancel"),__name(startStrategySpinner,"startStrategySpinner"),__name(promptMergeStrategy,"promptMergeStrategy"),__name(promptGlobalPushStrategy,"promptGlobalPushStrategy"),__name(promptGlobalPullStrategy,"promptGlobalPullStrategy"),__name(promptTypeMismatchStrategy,"promptTypeMismatchStrategy"),__name(promptSameTypeStrategy,"promptSameTypeStrategy"),tn(),tn(),__name(mergeSingleLearning,"mergeSingleLearning"),__name(mergePackages,"mergePackages"),__name(validateSinglePackage,"validateSinglePackage"),__name(validateSingleRemoteFile,"validateSingleRemoteFile"),__name(validatePackages,"validatePackages"),__name(validateRemoteFiles,"validateRemoteFiles"),__name(mergeOrKeep,"mergeOrKeep"),tn(),__name(resolveRemotePullStrategy,"resolveRemotePullStrategy"),__name(executePackageStrategy,"executePackageStrategy"),__name(processPackage,"processPackage"),__name(pullProjectPackage,"pullProjectPackage"),__name(pullCategoryPackage,"pullCategoryPackage");var HP=__name(({pkg:e,error:t})=>({success:!1,packagesPulled:[],errors:[{pkg:e,error:t}],mergeDetails:{},overwritten:[],filePaths:{}}),"fail"),WP=__name(()=>({success:!0,packagesPulled:[],skipped:[],errors:[],mergeDetails:{},overwritten:[],filePaths:{}}),"emptyResult"),GP=__name(e=>"local-global"===e?"global":"remote-project"===e?"remote project":"remote-user"===e?"remote":"source","sourceName");async function resolvePullStrategy(e){const{flagStrategy:t,overwrite:n,existingPkg:r,source:o,tastePkg:s}=e;return"skip"===t?r?"skip":"merge":"merge"===t?"merge":"overwrite"===t||n?"overwrite":r&&"local-global"===o?promptGlobalPullStrategy({packageName:s.category,localPkg:r,globalLearningsCount:s.learnings.length}):"merge"}async function executePullStrategy(e){const{tastePkg:t,source:n,flagStrategy:r,overwrite:o,result:s}=e,i=await getPackage2({category:t.category}),a=await resolvePullStrategy({flagStrategy:r,overwrite:o,existingPkg:i,source:n,tastePkg:t});if("skip"===a)return void s.skipped.push(t.category);if("overwrite"===a&&(await writePackage2({pkg:t}),s.packagesPulled.push(t.category),s.overwritten.push(t.category)),"merge"===a){const{pkg:e,details:n}=mergeOrKeep({source:t,existing:i});await writePackage2({pkg:e}),s.packagesPulled.push(t.category),s.mergeDetails[t.category]=n}const l=getCategoryTasteFile({target:"local-project",category:t.category});s.filePaths[t.category]=l}async function pullSinglePackage(e){const{tastePkg:t,result:n}=e;try{await executePullStrategy(e)}catch(e){n.success=!1,n.errors.push({pkg:t.category,error:e instanceof Error?e.message:String(e)})}}async function pull(e){const{packages:t,source:n,overwrite:r=!1,strategy:o}=e;if("local-global"!==n&&"remote-project"!==n&&"remote-user"!==n)return HP({pkg:"all",error:`Invalid source: ${n}`});const s=GP(n);let i;try{i="local-global"===n?await getAllPackages():await getAllPackages3()}catch(e){return HP({pkg:"all",error:e instanceof Error?e.message:String(e)})}if(0===i.length)return HP({pkg:"all",error:`No taste packages found in ${s}`});const a=validatePackages({packages:i,label:s});if(a.length>0)return{success:!1,packagesPulled:[],errors:[...a],mergeDetails:{},overwritten:[],filePaths:{}};const l=t.length>0?i.filter(e=>t.includes(e.category)):i;if(t.length>0&&0===l.length)return{success:!1,packagesPulled:[],errors:t.map(e=>({pkg:e,error:`Taste package not found in ${s}`})),mergeDetails:{},overwritten:[],filePaths:{}};const u=WP();for(const e of l)await pullSinglePackage({tastePkg:e,source:n,flagStrategy:o,overwrite:r,result:u});return u}async function executePullRemote(e){const{owner:t,packageName:n,overwrite:r,flagStrategy:o,result:s}=e,i=await downloadPackage({owner:t,packageName:n});if(!i)return HP({pkg:n,error:"Taste package not found in remote"});const{type:a,files:l}=i,u=validateRemoteFiles({files:l,packageName:n});if(u.length>0)return{success:!1,packagesPulled:[],errors:[...u],mergeDetails:{},overwritten:[],filePaths:{}};const d={files:l,packageName:n,owner:t,overwrite:r,flagStrategy:o,result:s};return"project"===a?(await pullProjectPackage(d),s):(await pullCategoryPackage(d),s)}async function pullRemote(e){const{owner:t,packageName:n,overwrite:r=!1,strategy:o}=e,s=WP();try{return await executePullRemote({owner:t,packageName:n,overwrite:r,flagStrategy:o,result:s})}catch(e){return HP({pkg:n,error:e instanceof Error?e.message:String(e)})}}function logResult(e){if(wasPrompted())return Fe.outro(e),void setPrompted(!1);console.log(e)}function buildPullMessage(e){const{pkgName:t,sourceName:n,filePath:r,options:o,mergeDetails:s}=e,i=wasPrompted()?"":`${Pe.tick} `,a=r?me.dim(`\n ${shortenPath(r)}`):"";if(o.overwrite)return`${me.green(i)}Replaced ${me.green(`'${t}'`)} taste package in project`+a;if(s){const e=formatMergeParts(s);return`${me.green(i)}Pulled ${me.green(`'${t}'`)} taste package from ${n} ${me.gray(`(${e.join(", ")})`)}`+a}return`${me.green(i)}Pulled ${me.green(`'${t}'`)} taste package from ${n}`+a}function logPullSingleSuccess(e){const{result:t,sourceName:n,options:r}=e;if(1!==t.packagesPulled.length)return!1;const o=t.packagesPulled[0],s=t.filePaths?.[o],i=t.mergeDetails?.[o];return logResult(buildPullMessage({pkgName:o,sourceName:n,filePath:s,options:r,mergeDetails:i})),!r.overwrite&&!!i&&hasMergeConflictRisk(i)}function logPullSummary(e){const{result:t,sourceName:n}=e,r=t.overwritten??[],o=t.skipped??[],s=t.packagesPulled.filter(e=>!r.includes(e)),i=t.packagesPulled.length+o.length,a=`${i} ${1===i?"package":"packages"}`,l=[];return s.length>0&&l.push(wrapLine(`${me.green("Pulled")} (${s.length}) ${s.join(", ")}`,wasPrompted()?4:0)),r.length>0&&l.push(wrapLine(`${me.yellow("Overwritten")} (${r.length}) ${r.join(", ")}`,wasPrompted()?4:0)),o.length>0&&l.push(wrapLine(`${me.dim("Skipped")} (${o.length}) ${me.dim(o.join(", "))}`,wasPrompted()?4:0)),wasPrompted()?(l.length>0&&Fe.log.message(l.join("\n")),Fe.outro(`${a} from ${n}`),setPrompted(!1),hasMergeConflictRiskInRecord(t.mergeDetails??{})):(console.log(`${me.green(Pe.tick)} ${a} from ${n}`),l.length>0&&console.log(l.join("\n")),hasMergeConflictRiskInRecord(t.mergeDetails??{}))}function logPullSuccess(e){const{result:t,sourceName:n,options:r}=e,o=t.skipped??[];t.packagesPulled.length+o.length>1?logPullSummary({result:t,sourceName:n})&&logMergeReviewTip():o.length>0?logResult(me.yellow(`Skipped '${o[0]}' — kept local version`)):logPullSingleSuccess({result:t,sourceName:n,options:r})&&logMergeReviewTip()}function createPullCommand(){return new _e("pull").argument("[package]","Taste package name, or owner/package to pull from remote").option("-g, --global","Pull taste package from global storage (~/.commandcode)").addOption(new xe("--local","Use local server").hideHelp()).option("--remote","Pull taste package from commandcode.ai remote").option("--all","Pull all taste packages from global").option("--overwrite","Replace local package without prompting").option("--skip","Keep local package, skip conflicting pull").option("--merge","Auto-merge conflicting learnings without prompting").addOption(new xe("--staging","Use staging environment").hideHelp()).description(`Pull taste packages from remote or global into the project ${me.dim("(prompts on conflicts)")}`).action(withErrorHandler(async(e,t)=>{setPrompted(!1);const n=resolveRemoteDefault(t),{result:r,owner:o}=await runPull({packageName:e,options:n});r.success||handleResultErrors(r.errors),logPullSuccess({result:r,sourceName:n.remote?o??"remote":"global",options:n})}))}function validatePullOptions(e){const{packageName:t,options:n}=e;n.global&&n.remote&&exitWithError("--global and --remote are mutually exclusive — pick one source"),n.remote&&n.all&&exitWithUsage({message:"--all is not supported for remote pull — specify a package instead",usage:["cmd taste pull <owner>/<package> pull a taste package from remote"]}),n.remote&&!t&&exitWithUsage({message:"Specify a taste package to pull from remote",usage:["cmd taste pull <owner>/<package> pull a taste package from remote","cmd taste pull <package> -g pull a taste package from global","cmd taste pull --all -g pull all taste packages from global"]}),n.remote&&t&&!t.includes("/")&&exitWithUsage({message:`Remote pull requires owner/package format — got '${t}'`,usage:["cmd taste pull <owner>/<package> e.g. cmd taste pull ahmadawais/code-style"]}),t||n.all||exitWithUsage({message:"Specify a taste package name or use --all to pull everything",usage:["cmd taste pull <owner>/<package> pull a taste package from remote","cmd taste pull <package> -g pull a taste package from global","cmd taste pull --all -g pull all taste packages from global"]}),t&&n.all&&exitWithError("Use either a package name or --all, not both"),resolveConflictStrategy(n)}async function runPull(e){const{packageName:t,options:n}=e;console.log("");const r=resolveRemoteDefault(n);validatePullOptions({packageName:t,options:r});const o=resolveConflictStrategy(r);return r.remote&&t?pullRemoteSingle({packageName:t,options:r,strategy:o}):pullGlobal({packageName:t,options:r,strategy:o})}async function pullRemoteSingle(e){const{packageName:t,options:n,strategy:r}=e,o=parseOwnerPackage(t);o||exitWithError("Invalid format — use owner/package (e.g. ahmadawais/code-style)"),setActiveSpinner(Ae("Pulling taste package").start());const s=await pullRemote({owner:o.owner,packageName:o.packageName,overwrite:n.overwrite,strategy:r});return stopActiveSpinner(),{result:s,owner:o.owner}}async function pullGlobal(e){const{packageName:t,options:n,strategy:r}=e;setActiveSpinner(Ae("Pulling taste package").start());const o=n.all||!t?[]:[t],s=await pull({packages:o,source:"local-global",overwrite:n.overwrite,strategy:r});return stopActiveSpinner(),{result:s}}async function fetchUserNamespaces(){const e=getApiBaseUrl(),t=new Jy({baseUrl:e}),n=await t.get({endpoint:At.ALPHA.NAMESPACES});if(!n.success)throw new Error("Failed to fetch namespaces");if("org"===n.type)return{userName:n.org.login,orgs:[]};const r=n.orgs.map(e=>({id:e.id,login:e.login,name:e.name}));return{userName:n.user.userName,orgs:r}}function logResult2(e){if(wasPrompted())return Fe.outro(e),void setPrompted(!1);console.log(e)}function logPushAllSuccess(t){const{result:n,options:r}=t;if(!r.all)return!1;if(0===n.packagesPushed.length){const e=n.skipped?.length??0;if(e>0){const t=wasPrompted()?"":`${Pe.tick} `,n=`${e} ${1===e?"package":"packages"}`;logResult2(`${me.green(t)}Skipped ${n}`)}return!1}const o=n.packagesPushed.length,s=`${o} ${1===o?"package":"packages"}`,i=n.filePaths?.[n.packagesPushed[0]],a=r.global&&i?shortenPath(e.dirname(e.dirname(i))):i,l=wasPrompted()?"":`${Pe.tick} `;if(!a)return logResult2(`${me.green(l)}Pushed ${s} to remote`),!1;if(r.overwrite||Boolean(n.overwritten?.length)){let e=0;if(n.mergeDetails)for(const t of Object.values(n.mergeDetails))e+=t.updated??0;const t=e>0?` ${me.gray(`(${e} ${1===e?"learning":"learnings"} replaced)`)}`:"";return logResult2(`${me.green(l)}Replaced ${s} in ${a}${t}`),!1}if(!n.mergeDetails||0===Object.keys(n.mergeDetails).length)return logResult2(`${me.green(l)}Pushed ${s} to ${a}`),!1;let u=0,d=0,m=0;for(const e of Object.values(n.mergeDetails))u+=e.added??0,d+=e.updated??0,m+=e.unchanged??0;const g=formatMergeParts({added:u,updated:d,unchanged:m}),h=g.length>0?` ${me.gray(`(${g.join(", ")})`)}`:"";return logResult2(`${me.green(l)}Pushed ${s} to ${a}${h}`),(u>0||d>0)&&m>0}function logPushSingleSuccess(e){const{result:t,options:n}=e;if(n.all)return!1;if(1!==t.packagesPushed.length)return!1;const r=t.packagesPushed[0],o=t.filePaths?.[r],s=n.remote&&o,i=s?o:"global",a=wasPrompted()?"":`${Pe.tick} `,l=!s&&o?me.dim(`\n ${shortenPath(o)}`):"";if(n.overwrite)return logResult2(`${me.green(a)}Replaced ${me.green(`'${r}'`)} taste package in ${i}`+l),!1;if(t.mergeDetails?.[r]){const e=t.mergeDetails[r],n=formatMergeParts(e);return logResult2(`${me.green(a)}Pushed ${me.green(`'${r}'`)} taste package to ${i} ${me.gray(`(${n.join(", ")})`)}`+l),hasMergeConflictRisk(e)}return logResult2(`${me.green(a)}Pushed ${me.green(`'${r}'`)} taste package to ${i}`+l),!1}function logPushMultiSuccess(e){const{result:t,options:n}=e;if(n.all)return!1;if(t.packagesPushed.length<=1)return!1;const r=n.remote?"remote":"global",o=wasPrompted()?"":`${Pe.tick} `;return logResult2(wrapLine(`${me.green(o)}Pushed ${me.green(t.packagesPushed.length)} taste packages ${me.green(`(${t.packagesPushed.join(", ")})`)} to ${r}`)),!(n.overwrite||!t.mergeDetails)&&hasMergeConflictRiskInRecord(t.mergeDetails)}function logPushUrls(e){const{result:t,options:n}=e;if(!n.remote||!t.filePaths)return;const r=new Set;for(const e of t.packagesPushed){const n=t.filePaths[e];if(!n||!n.includes("/"))continue;const[o,s]=n.split("/");if(!o||!s)continue;const i=getPackageLink({owner:o,packageName:s});r.has(i)||(r.add(i),console.log(me.gray(` ${i}`)))}}function logConflictSummary(e){const{result:t}=e,n=t.overwritten??[],r=t.skipped??[],o=t.packagesPushed.filter(e=>!n.includes(e)),s=t.packagesPushed.length+r.length,i=[];o.length>0&&i.push(wrapLine(`${me.green("Merged")} (${o.length}) ${o.join(", ")}`,4)),n.length>0&&i.push(wrapLine(`${me.yellow("Overwritten")} (${n.length}) ${n.join(", ")}`,4)),r.length>0&&i.push(wrapLine(`${me.dim("Skipped")} (${r.length}) ${me.dim(r.join(", "))}`,4)),i.length>0&&Fe.log.message(i.join("\n"));const a=`${s} ${1===s?"package":"packages"}`;Fe.outro(a)}function logPushBreakdown(e){const t=e.overwritten??[],n=e.skipped??[];if(0===n.length&&0===t.length)return;const r=e.packagesPushed.filter(e=>!t.includes(e)),o=[];r.length>0&&o.push(wrapLine(`${me.green("Pushed")} (${r.length}) ${r.join(", ")}`)),t.length>0&&o.push(wrapLine(`${me.yellow("Overwritten")} (${t.length}) ${t.join(", ")}`)),n.length>0&&o.push(wrapLine(`${me.dim("Skipped")} (${n.length}) ${me.dim(n.join(", "))}`)),o.length>0&&console.log(o.join("\n"))}function logPushSuccess(e){const{result:t,options:n}=e;if(wasPrompted())return setPrompted(!1),logConflictSummary({result:t}),void logPushUrls({result:t,options:n});const r=logPushAllSuccess({result:t,options:n})||logPushSingleSuccess({result:t,options:n})||logPushMultiSuccess({result:t,options:n});n.all&&logPushBreakdown(t),logPushUrls({result:t,options:n}),r&&logMergeReviewTip()}__name(resolvePullStrategy,"resolvePullStrategy"),__name(executePullStrategy,"executePullStrategy"),__name(pullSinglePackage,"pullSinglePackage"),__name(pull,"pull"),__name(executePullRemote,"executePullRemote"),__name(pullRemote,"pullRemote"),tn(),__name(logResult,"logResult"),__name(buildPullMessage,"buildPullMessage"),__name(logPullSingleSuccess,"logPullSingleSuccess"),__name(logPullSummary,"logPullSummary"),__name(logPullSuccess,"logPullSuccess"),__name(createPullCommand,"createPullCommand"),__name(validatePullOptions,"validatePullOptions"),__name(runPull,"runPull"),__name(pullRemoteSingle,"pullRemoteSingle"),__name(pullGlobal,"pullGlobal"),tn(),Bn(),tn(),Tw(),gw(),sn(),__name(fetchUserNamespaces,"fetchUserNamespaces"),tn(),__name(logResult2,"logResult"),__name(logPushAllSuccess,"logPushAllSuccess"),__name(logPushSingleSuccess,"logPushSingleSuccess"),__name(logPushMultiSuccess,"logPushMultiSuccess"),__name(logPushUrls,"logPushUrls"),__name(logConflictSummary,"logConflictSummary"),__name(logPushBreakdown,"logPushBreakdown"),__name(logPushSuccess,"logPushSuccess"),tn(),Pb(),tn();var VP=__name(({pkg:e,error:t})=>({success:!1,packagesPushed:[],skipped:[],errors:[{pkg:e,error:t}],mergeDetails:{},overwritten:[],filePaths:{}}),"fail"),QP=__name(e=>e.reduce((e,t)=>t.file.endsWith("taste.md")?e+parseTasteContent(t.content).length:e,0),"countRemoteLearnings");async function resolvePushAllStrategy(e){const{flagStrategy:t,overwrite:n,existingProject:r,packagesToPush:o,projectName:s,owner:i}=e;if("skip"===t)return"skip";if("overwrite"===t||n)return"overwrite";if("merge"===t)return"overwrite";if(!r)return"overwrite";const a=r.type??"category",l=o.reduce((e,t)=>e+t.learnings.length,0),u=QP(r.files);return"project"!==a?promptTypeMismatchStrategy({packageName:s,owner:i,localLearningsCount:l,remoteLearningsCount:u}):promptSameTypeStrategy({packageName:s,owner:i,localLearningsCount:l,remoteLearningsCount:u})}async function executePushAllRemote(t){const{packagesToPush:n,owner:r,overwrite:o,isPublic:s,isPublicExplicitlySet:i,flagStrategy:a}=t,l=e.basename(process.cwd()),u={success:!0,packagesPushed:[],skipped:[],errors:[],mergeDetails:{},overwritten:[],filePaths:{}},d=await downloadPackage({owner:r,packageName:l}),m=await resolvePushAllStrategy({flagStrategy:a,overwrite:o,existingProject:d,packagesToPush:n,projectName:l,owner:r});if("skip"===m)return u.skipped.push(...n.map(e=>e.category)),u;await writePackages({packages:n,projectName:l,owner:r,isPublic:i?s:d?.isPublic??!1,overwrite:"overwrite"===m});for(const e of n)u.packagesPushed.push(e.category),u.filePaths[e.category]=`${r}/${l}`,u.mergeDetails[e.category]={added:e.learnings.length,updated:0,unchanged:0};return d&&u.overwritten.push(...n.map(e=>e.category)),u}async function pushAllRemote(e){try{return await executePushAllRemote(e)}catch(e){return VP({pkg:"all",error:e instanceof Error?e.message:String(e)})}}__name(resolvePushAllStrategy,"resolvePushAllStrategy"),__name(executePushAllRemote,"executePushAllRemote"),__name(pushAllRemote,"pushAllRemote");var KP=__name(({pkg:e,error:t})=>({success:!1,packagesPushed:[],skipped:[],errors:[{pkg:e,error:t}],mergeDetails:{},overwritten:[],filePaths:{}}),"fail"),YP=__name(()=>({success:!0,packagesPushed:[],skipped:[],errors:[],mergeDetails:{},overwritten:[],filePaths:{}}),"emptyResult");async function writePkg(e){const{pkg:t,target:n,owner:r,isPublic:o,overwrite:s}=e;if("local-global"!==n){if(!r)throw new Error("Failed to get owner for remote push");await writePackage3({pkg:t,owner:r,isPublic:o,overwrite:s})}else await writePackage({pkg:t})}__name(writePkg,"writePkg");var JP=__name(e=>{const{target:t,category:n,owner:r}=e;return"local-global"===t?getCategoryTasteFile({target:"local-global",category:n}):"remote-project"!==t&&"remote-user"!==t||!r?void 0:`${r}/${n}`},"getDestPath");async function getUserOwner(){try{const e=await getAuthenticatedEntity();if(e.success&&e.user?.userName)return e.user.userName}catch{}}async function resolveSinglePushStrategy(e){const{flagStrategy:t,overwrite:n,existingPkg:r,target:o,tastePkg:s}=e;return"skip"===t?r?"skip":"merge":"merge"===t?"merge":"overwrite"===t||n?"overwrite":r&&"local-global"===o?promptGlobalPushStrategy({packageName:s.category,localLearningsCount:s.learnings.length,globalPkg:r}):"merge"}async function executePushStrategy(e){const{tastePkg:t,target:n,flagStrategy:r,overwrite:o,userOwner:s,isPublic:i,result:a}=e,l="local-global"===n?await getPackage({category:t.category}):await getPackage3({category:t.category}),u=await resolveSinglePushStrategy({flagStrategy:r,overwrite:o,existingPkg:l,target:n,tastePkg:t});if("skip"===u)return void a.skipped.push(t.category);if("overwrite"===u&&(await writePkg({pkg:t,target:n,owner:s,isPublic:i,overwrite:!0}),a.packagesPushed.push(t.category),a.overwritten.push(t.category),a.mergeDetails[t.category]={added:0,updated:t.learnings.length,unchanged:0}),"merge"===u){const{pkg:e,details:r}=mergeOrKeep({source:t,existing:l});await writePkg({pkg:e,target:n,owner:s,isPublic:i}),a.packagesPushed.push(t.category),a.mergeDetails[t.category]=r}const d=JP({target:n,category:t.category,owner:s});d&&(a.filePaths[t.category]=d)}async function pushSinglePackage(e){const{tastePkg:t,result:n}=e;try{await executePushStrategy(e)}catch(e){n.success=!1,n.errors.push({pkg:t.category,error:e instanceof Error?e.message:String(e)})}}async function push(e){const t=void 0!==e.isPublic,{packages:n,target:r,overwrite:o=!1,isPublic:s=!1,strategy:i}=e;if(!exists2())return KP({pkg:"all",error:"No taste directory found in project"});const a=await getAllPackages2();if(0===a.length)return KP({pkg:"all",error:"No taste packages found in project"});const l=validatePackages({packages:a,label:"project"});if(l.length>0)return{success:!1,packagesPushed:[],skipped:[],errors:[...l],mergeDetails:{},overwritten:[],filePaths:{}};const u=n.length>0?a.filter(e=>n.includes(e.category)):a;if(n.length>0&&0===u.length)return{success:!1,packagesPushed:[],skipped:[],errors:n.map(e=>({pkg:e,error:"Taste package not found in project"})),mergeDetails:{},overwritten:[],filePaths:{}};const d="remote-project"===r||"remote-user"===r?e.owner??await getUserOwner():void 0;if("remote-project"===r&&0===n.length)return d?pushAllRemote({packagesToPush:u,owner:d,overwrite:o,isPublic:s,isPublicExplicitlySet:t,flagStrategy:i}):KP({pkg:"all",error:"Failed to get owner for remote push"});if("local-global"!==r&&"remote-project"!==r&&"remote-user"!==r)return KP({pkg:"all",error:`Invalid target: ${r}`});const m=YP();for(const e of u)await pushSinglePackage({tastePkg:e,target:r,flagStrategy:i,overwrite:o,userOwner:d,isPublic:s,result:m});return m}async function executeRemotePush(e){const t=void 0!==e.isPublic,{owner:n,packageName:r,overwrite:o=!1,isPublic:s=!1,strategy:i}=e,a=await getPackage2({category:r});if(!a)return KP({pkg:r,error:`Taste package '${r}' not found in local project`});const l=validateTasteFile({content:formatPackage({pkg:a}),filePath:`${a.category}/taste.md`});if(!l.valid){const e=formatValidationIssues({result:l,verbose:!0});return KP({pkg:r,error:`Validation failed:\n${e}`})}l.issues.filter(e=>"warning"===e.severity).length>0&&(console.warn(`\nWarning: Taste package '${r}' has validation warnings:\n`),console.warn(formatValidationIssues({result:l,verbose:!0})+"\n"));const u=await downloadRemotePackage({owner:n,packageName:r}),d=await resolveSinglePushStrategy({flagStrategy:i,overwrite:o,existingPkg:u,target:"remote-project",tastePkg:a}),m=t?s:u?.isPublic??!1,g=YP();if("skip"===d)return g.skipped.push(r),g;if("overwrite"===d&&(await writePackage3({pkg:a,owner:n,isPublic:m,overwrite:!0}),g.packagesPushed.push(r),g.overwritten.push(r)),"merge"===d){const{pkg:e,details:t}=mergeOrKeep({source:a,existing:u});await writePackage3({pkg:e,owner:n,isPublic:m}),g.packagesPushed.push(r),g.mergeDetails[r]=t}return g.filePaths[r]=`${n}/${r}`,g}async function pushRemote(e){const{packageName:t}=e;if(!exists2())return KP({pkg:t,error:"No taste directory found in project"});try{return await executeRemotePush(e)}catch(e){return KP({pkg:t,error:e instanceof Error?e.message:String(e)})}}async function promptOwnerSelection(e){const{userName:t,orgs:n}=e;if(0===n.length)return t;const r=[{value:t,label:t,hint:"Personal"},...n.map(e=>({value:e.login,label:e.name||e.login,hint:"Organization"}))],o=await Fe.select({message:"Owner",options:r,initialValue:t});return Fe.isCancel(o)&&(Fe.cancel("Operation cancelled"),process.exit(0)),o}function createPushCommand(){return new _e("push").description(`Push taste packages to remote ${me.dim("(commandcode.ai)")} or global ${me.dim("(~/.commandcode)")}`).argument("[package]","Taste package name to push (omit with --all)").option("--all","Push all taste packages to remote").option("--remote","Push to commandcode.ai remote (default)").option("-g, --global","Push to local global storage (~/.commandcode)").addOption(new xe("--local","Use local server").hideHelp()).option("--public","Make package publicly discoverable on commandcode.ai").option("--private","Make package private (not publicly discoverable)").option("--owner <owner>","Push under a specific owner or organization").option("--overwrite","Replace existing package without prompting").option("--skip","Keep existing package, skip conflicting push").option("--merge","Auto-merge conflicting learnings without prompting").addOption(new xe("--staging","Push to staging environment").hideHelp()).action(withErrorHandler(async(e,t)=>{setPrompted(!1);const n=resolveRemoteDefault(t),r=await runPush({packageName:e,options:n});r.success||handleResultErrors(r.errors),logPushSuccess({result:r,options:n})}))}function validatePushOptions(e){const{packageName:t,options:n}=e;n.global&&n.remote&&exitWithError("--global and --remote are mutually exclusive — pick one destination"),n.public&&n.private&&exitWithError("--public and --private are mutually exclusive — pick one visibility"),n.owner&&n.global&&exitWithError("--owner only applies to remote pushes, not --global"),t||n.all||exitWithUsage({message:"Specify a taste package name or use --all to push everything",usage:["cmd taste push <package> push a taste package to remote (default)","cmd taste push --all push all taste packages to remote","cmd taste push <package> -g push a taste package to global (~/.commandcode)"]}),t&&n.all&&exitWithError("Use either a package name or --all, not both"),resolveConflictStrategy(n)}__name(getUserOwner,"getUserOwner"),__name(resolveSinglePushStrategy,"resolveSinglePushStrategy"),__name(executePushStrategy,"executePushStrategy"),__name(pushSinglePackage,"pushSinglePackage"),__name(push,"push"),__name(executeRemotePush,"executeRemotePush"),__name(pushRemote,"pushRemote"),tn(),__name(promptOwnerSelection,"promptOwnerSelection"),__name(createPushCommand,"createPushCommand"),__name(validatePushOptions,"validatePushOptions");var XP=__name(e=>!!e.public||!e.private&&void 0,"resolveVisibility");async function validateOwnerAccess(e){let t;try{t=await fetchUserNamespaces()}catch(e){return void dlog(`[Auth] validateOwnerAccess: namespace service unavailable, skipping — ${e instanceof Error?e.message:String(e)}`)}const n=[t.userName,...t.orgs.map(e=>e.login)];n.includes(e)||exitWithError(`No push access to '${e}'. Available: ${n.join(", ")}`)}async function resolveOwnerForPush(e){const{packageName:t,owner:n}=e,r=parseOwnerPackage(t);if(r)return await validateOwnerAccess(r.owner),r;if(n)return await validateOwnerAccess(n),{owner:n,packageName:t};Fe.intro(me.dim(`pushing ${t}`)),setPrompted(!0);const o=Fe.spinner();o.start("Resolving"),(await list({location:"local-project"})).some(e=>e.category===t)||(o.error("Failed"),Fe.outro(me.red(`Taste package '${t}' not found in project`)),process.exit(1));const s=await fetchUserNamespaces();return o.stop(s.orgs.length>0?"Select owner to push to":""),{owner:s.orgs.length>0?await promptOwnerSelection(s):s.userName,packageName:t}}async function runPush(e){const{packageName:t,options:n}=e;console.log("");const r=resolveRemoteDefault(n);validatePushOptions({packageName:t,options:r});const o=resolveConflictStrategy(r);return r.remote&&r.all?pushRemoteAll({options:r,strategy:o}):r.remote?pushRemoteSingle({packageName:t,options:r,strategy:o}):pushGlobal({packageName:t,options:r,strategy:o})}async function pushRemoteAll(t){const{options:n,strategy:r}=t;n.owner&&await validateOwnerAccess(n.owner);const o=(await getAllPackages2()).length,s=`${o} ${1===o?"package":"packages"}`,i=e.basename(process.cwd()),a=resolveStrategyLabel({strategy:r,isRemote:!0});console.log(me.dim(` Pushing ${s} to ${i} (remote)${a}`)),console.log(""),setActiveSpinner(Ae("Pushing taste packages").start());const l=await push({packages:[],target:"remote-project",overwrite:n.overwrite,isPublic:XP(n),strategy:r,owner:n.owner});return stopActiveSpinner(),l}async function pushRemoteSingle(e){const{packageName:t,options:n,strategy:r}=e,{owner:o,packageName:s}=await resolveOwnerForPush({packageName:t,owner:n.owner});startPushSpinner({owner:o,pkgName:s});const i=await pushRemote({owner:o,packageName:s,overwrite:n.overwrite,isPublic:XP(n),strategy:r});return stopActiveSpinner(`Pushed to ${o}/${s}`),i}function resolveStrategyLabel(e){const{strategy:t,isRemote:n=!1}=e;return"overwrite"===t?" · overwrite":"skip"===t?" · skip conflicts":"merge"===t?" · auto-merge":n?"":" · will prompt on conflicts"}function startPushSpinner(e){const{owner:t,pkgName:n}=e;if(wasPrompted()){const e=Fe.spinner();return e.start(`Pushing to ${t}/${n}`),void setActiveSpinner(e)}setActiveSpinner(Ae("Pushing taste package").start())}async function pushGlobal(e){const{packageName:t,options:n,strategy:r}=e,o=n.all||!t?[]:[t],s=await getAllPackages2(),i=o.length>0?o.length:s.length,a=`${i} ${1===i?"package":"packages"}`,l=shortenPath(getTastePath({target:"local-global"})),u=resolveStrategyLabel({strategy:r});console.log(me.dim(` Pushing ${a} to ${l}${u}`)),console.log(""),setActiveSpinner(Ae("Pushing taste packages").start());const d=await push({packages:o,target:"local-global",overwrite:n.overwrite,strategy:r});return stopActiveSpinner(),d}function createTasteCommand(){const e=new _e(jt.TASTE);return e.description("Manage taste learning packages").allowUnknownOption().allowExcessArguments(),e.addCommand(createPushCommand()),e.addCommand(createPullCommand()),e.addCommand(createListCommand()),e.addCommand(createLintCommand()),e.addCommand(createOpenCommand()),isExperimentalEnabled()&&e.addCommand(createLearnCommand()),e}function formatVersion(e,t,n=!1){const r=n?pe.bold(pe.green(t)):pe.white(t);return`${pe.dim(e)} ${r}`}function showVersionDetails(e){console.log(formatVersion("Current:",e.currentVersion)),console.log(formatVersion("Latest: ",e.latestVersion,!0)),console.log(""),console.log(`Run ${pe.bold(pe.green("cmd update"))} to install.`)}function showUpdateSuccessHint(){console.log(pe.dim(`Run ${pe.cyan("cmd")} to start using the new version.`))}function showManualUpdateHint(e){console.log(pe.dim("Try updating manually:")),console.log(pe.cyan(`npm i -g command-code@${e}`))}function showCheckFailure(){console.log(pe.dim("Please check your internet connection or try again later."))}async function checkAction(){const e=Ae("Checking for updates...").start(),t=await checkForUpdateAvailable();if(!t)return e.fail("Failed to check for updates"),void showCheckFailure();t.updateAvailable?(e.stop(),console.log(""),console.log(`${pe.green(Pe.tick)} Update available`),showVersionDetails(t)):e.succeed(`Up to date ${pe.dim(`(${t.currentVersion})`)}`)}async function performUpdateAction(){const e=Ae("Checking for updates...").start(),t=await checkForUpdateAvailable();if(!t)return e.fail("Failed to check for updates"),void showCheckFailure();t.updateAvailable?(e.text=`Updating ${t.currentVersion} ${Pe.arrowRight} ${t.latestVersion}...`,(await performAutoUpdate({silent:!0,updateInfo:t})).success||(e.fail("Update failed"),trackError({error:sanitizeErrorForTelemetry({error:new Error("Update failed"),label:"cli_update_failed"}),context:{component:$o.UPDATE_COMMAND,heading:"CLI update failed","update.current_version":t.currentVersion,"update.target_version":t.latestVersion}}),showManualUpdateHint(t.latestVersion),await shutdownTelemetry(),process.exit(1)),e.succeed(`Updated to v${t.latestVersion}`),showUpdateSuccessHint()):e.succeed(`Up to date ${pe.dim(`(${t.currentVersion})`)}`)}async function updateAction(e){e.checkOnly?await checkAction():await performUpdateAction()}__name(validateOwnerAccess,"validateOwnerAccess"),__name(resolveOwnerForPush,"resolveOwnerForPush"),__name(runPush,"runPush"),__name(pushRemoteAll,"pushRemoteAll"),__name(pushRemoteSingle,"pushRemoteSingle"),__name(resolveStrategyLabel,"resolveStrategyLabel"),__name(startPushSpinner,"startPushSpinner"),__name(pushGlobal,"pushGlobal"),Fr(),__name(createTasteCommand,"createTasteCommand"),tn(),sn(),jo(),__name(formatVersion,"formatVersion"),__name(showVersionDetails,"showVersionDetails"),__name(showUpdateSuccessHint,"showUpdateSuccessHint"),__name(showManualUpdateHint,"showManualUpdateHint"),__name(showCheckFailure,"showCheckFailure"),__name(checkAction,"checkAction"),__name(performUpdateAction,"performUpdateAction"),__name(updateAction,"updateAction");var ZP=new _e("update").description("Update Command Code to the latest version").option("--check-only","Check for updates without installing").allowUnknownOption().allowExcessArguments().action(updateAction);tn(),xb(),Pb();var eA=__name((e,t)=>`${Pe.info} ${e}: ${pe.cyan(t)}`,"formatInfoLine"),tA=__name(e=>pe.bold(`${e}:`),"formatSectionHeader"),nA=__name(e=>pe.red(e),"formatError"),rA=__name(e=>e instanceof Error?e.message:"Unknown error","formatErrorMessage"),oA=__name(e=>["",tA("User Information"),eA("Name",e.name),eA("Email",e.email),eA("Username",e.userName)],"buildUserOutput"),sA=__name(e=>["",tA("Organization"),eA("Name",e.name),eA("Login",e.login)],"buildOrgOutput"),iA=__name(e=>{e.forEach(e=>console.log(e))},"printLines"),aA=__name((e,t)=>{iA(oA(e)),t&&iA(sA(t)),console.log("")},"displayUserInfo"),lA=__name(e=>null!==e&&e.length>0,"validateApiKey"),cA=__name(e=>e.success&&null!==e.user,"validateUserData");async function whoamiAction(){const e=Ae("Fetching user information...").start();try{const t=await getAuthKey();lA(t)||(e.fail(nA('Not authenticated. Please login using "cmd auth login"')),process.exit(1));const n=await getAuthenticatedEntity();cA(n)||(e.fail(nA("Failed to fetch user info")),process.exit(1)),e.succeed("User information loaded"),aA(n.user,n.org)}catch(t){e.fail(nA(`Error: ${rA(t)}`)),process.exit(1)}}__name(whoamiAction,"whoamiAction");var uA=new _e("whoami").description("Display current user information").allowUnknownOption().allowExcessArguments().action(whoamiAction);function normalizeGitUrl(e){let t=e.trim();const n=t.match(/^git@([^:]+):(.+?)(?:\.git)?$/);return n?`https://${n[1]}/${n[2]}`:(t=t.replace(/\.git$/,""),t)}function validateGitRepo(){try{if("true"!==L("git rev-parse --is-inside-work-tree",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim())throw new Error("Not inside a git repository.")}catch{throw new Error("Sandbox requires a git repository with a GitHub remote.")}let e;try{e=L("git remote get-url origin",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{throw new Error("No GitHub remote found. Add one with: git remote add origin https://github.com/you/repo")}const t=normalizeGitUrl(e);let n;try{n=L("git branch --show-current",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{throw new Error("Failed to determine current branch.")}if(!n)throw new Error("Detached HEAD state. Please checkout a branch first.");if(!/^[\w./-]+$/.test(n))throw new Error("Branch name contains invalid characters. Please use a simpler branch name.");try{if(!L(`git ls-remote --heads origin ${n}`,{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim())throw new Error(`Branch "${n}" not found on remote. Push it first: git push -u origin ${n}`)}catch(e){if(e instanceof Error&&e.message.includes("not found on remote"))throw e;throw new Error(`Branch "${n}" not found on remote. Push it first: git push -u origin ${n}`)}return{repoUrl:t,branch:n,isClean:""===L("git status --porcelain",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}}function getGitHubToken(){const e=process.env.GITHUB_TOKEN;if(e)return e;try{return L("gh auth token",{encoding:"utf-8",stdio:["pipe","pipe","pipe"]}).trim()}catch{throw new Error("GitHub authentication required.\nEither set GITHUB_TOKEN or run: gh auth login")}}tn(),tn(),sn(),gw(),Tw(),un(),Vr(),tn(),__name(normalizeGitUrl,"normalizeGitUrl"),__name(validateGitRepo,"validateGitRepo"),tn(),__name(getGitHubToken,"getGitHubToken"),tn(),Tw(),xb(),tn();var dA=["completed","failed","cancelled","timed_out"];function isTerminalStatus(e){return dA.includes(e)}__name(isTerminalStatus,"isTerminalStatus");var mA={setting_up:"Setting up sandbox...",cloning:"Cloning repository..."};function stopAllSpinners({state:e}){e.workingSpinner&&(e.workingSpinner.stop(),e.workingSpinner=null),e.currentSpinner&&(e.currentSpinner.stop(),e.currentSpinner=null)}function renderStatusEvent({event:e,state:t}){const n=e.data.status,r=mA[n],o="setup"===t.phase;if(t.isResume&&o&&!isTerminalStatus(n)&&"running"!==n)r&&t.workingSpinner&&(t.workingSpinner.text=r);else{if(r&&o&&(t.currentSpinner&&t.currentSpinner.succeed(),t.currentSpinner=Ae({stream:process.stderr,text:r}).start()),"running"===n)return t.currentSpinner&&(t.currentSpinner.succeed(),t.currentSpinner=null),t.phase="running",void(t.workingSpinner||(t.workingSpinner=Ae({stream:process.stderr}).start()));if("completed"===n){t.workingSpinner&&(t.workingSpinner.succeed("Session completed"),t.workingSpinner=null),t.currentSpinner&&(t.currentSpinner.succeed(),t.currentSpinner=null),t.phase="done";const n=e.data.prUrl;return void(n&&console.error(`PR: ${pe.cyan(n)}`))}if("failed"===n){t.workingSpinner&&(t.workingSpinner.fail("Session failed"),t.workingSpinner=null),t.currentSpinner&&(t.currentSpinner.fail(),t.currentSpinner=null),t.phase="done";const n=e.data.message||"Unknown error";return void console.error(`${Pe.cross} ${pe.red(n)}`)}if("timed_out"===n)return t.workingSpinner&&(t.workingSpinner.fail("Session timed out"),t.workingSpinner=null),t.currentSpinner&&(t.currentSpinner.fail("Timed out"),t.currentSpinner=null),void(t.phase="done");"cancelled"===n&&(stopAllSpinners({state:t}),t.phase="done",console.error(`\n${pe.yellow("Cancelled.")}`))}}function renderEvent({event:e,state:t}){if("status"!==e.type){if("pty"===e.type){const n=e.data.content;return void(n&&(t.workingSpinner&&t.workingSpinner.stop(),process.stdout.write(n),t.workingSpinner&&t.workingSpinner.start()))}if("error"===e.type){t.currentSpinner&&(t.currentSpinner.fail(),t.currentSpinner=null);const n=e.data.message;console.error(`${Pe.cross} ${pe.red(n)}`)}}else renderStatusEvent({event:e,state:t})}function setupInputHandling({callbacks:e}){const t=__name(t=>{3===t[0]?e.onCancel():4===t[0]&&e.onDetach()},"onStdinData"),n=process.rawListeners("SIGINT").slice();return process.removeAllListeners("SIGINT"),process.stdin.isTTY?(process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.on("data",t),process.on("SIGINT",()=>{})):process.on("SIGINT",()=>e.onCancel()),()=>{process.stdin.isTTY&&(process.stdin.removeListener("data",t),process.stdin.setRawMode(!1),process.stdin.pause()),process.removeAllListeners("SIGINT");for(const e of n)process.on("SIGINT",e)}}function setupResizeForwarding({ws:e}){const t=__name(()=>{e.readyState===WebSocket.OPEN&&e.send(JSON.stringify({action:"resize",cols:process.stdout.columns,rows:process.stdout.rows}))},"onResize");return process.stdout.on("resize",t),()=>process.stdout.removeListener("resize",t)}function sendTerminalSize({ws:e}){e.send(JSON.stringify({action:"resize",cols:process.stdout.columns||120,rows:process.stdout.rows||30}))}async function streamSession({sessionId:e,prompt:t,lastEventId:n=0,isResume:r=!1}){const o=getApiBaseUrl().replace(/^http/,"ws"),s=await getAuthKey();if(!s)throw new Error("Not authenticated. Run: cmd login");const i=new URLSearchParams({token:s,...n>0?{lastEventId:String(n)}:{}}),a=`${o}/alpha/sandbox/stream/${e}?${i.toString()}`;return new Promise((t,o)=>{const s=new WebSocket(a),i={currentSpinner:null,workingSpinner:null,phase:"setup",lastEventId:n,isResume:r};r&&(i.currentSpinner=Ae({stream:process.stderr,text:"Reconnecting..."}).start());const l=__name(()=>{i.phase="done",stopAllSpinners({state:i}),s.close(),console.error(`\n${pe.yellow("Detached.")} Session still running.`),console.error(`Resume with: ${pe.cyan(`cmd --experimental sandbox --id ${e}`)}`),g(),t()},"detach"),u=__name(()=>{i.phase="done",stopAllSpinners({state:i}),s.readyState===WebSocket.OPEN&&s.send(JSON.stringify({action:"cancel"})),s.close(),console.error(`\n${pe.yellow("Sandbox stopped.")}`),g(),t()},"cancelSandbox"),d=setupResizeForwarding({ws:s}),m=setupInputHandling({callbacks:{onCancel:u,onDetach:l}});process.once("SIGTERM",l);const g=__name(()=>{d(),m(),process.removeListener("SIGTERM",l)},"teardown");s.addEventListener("open",()=>{sendTerminalSize({ws:s}),i.currentSpinner&&(i.currentSpinner.stop(),i.currentSpinner=null),console.error(""),console.error(`${pe.yellow("[Ctrl+C]")} ${pe.dim("stop")} ${pe.yellow("[Ctrl+D]")} ${pe.dim("detach")}`),console.error(`${pe.dim("Session:")} ${pe.gray(e)}`),console.error(""),r&&(i.workingSpinner=Ae({stream:process.stderr}).start())}),s.addEventListener("message",e=>{try{const n="string"==typeof e.data?e.data:e.data.toString(),r=JSON.parse(n);renderEvent({event:r,state:i}),void 0!==r.id&&(i.lastEventId=r.id),"status"===r.type&&isTerminalStatus(r.data.status)&&(s.close(),g(),t())}catch{}}),s.addEventListener("error",()=>{g(),i.currentSpinner&&(i.currentSpinner.fail("Connection error"),i.currentSpinner=null),o(new Error("WebSocket connection failed"))}),s.addEventListener("close",()=>{"done"!==i.phase&&(i.phase="done",stopAllSpinners({state:i}),g(),console.error(`\n${pe.yellow("Disconnected.")} Session still running.`),console.error(`Resume with: ${pe.cyan(`cmd --experimental sandbox --id ${e}`)}`),t())})})}function readLocalConfigFiles(){let e="",t="";try{e=C.readFileSync(getAuthFile(),"utf-8")}catch{}try{t=C.readFileSync(getConfigFile(),"utf-8")}catch{}return{auth:e,config:t}}async function askQuestion(e){const t=rt.createInterface({input:process.stdin,output:process.stderr});return new Promise(n=>{t.question(e,e=>{t.close(),n(e)})})}async function startSandboxSession({repoUrl:e,branch:t,prompt:n,ghToken:r,isInternalTeam:o,configFiles:s}){return new Jy({baseUrl:getApiBaseUrl()}).post({endpoint:At.ALPHA.SANDBOX.START,body:{repoUrl:e,branch:t,prompt:n,ghToken:r,isInternalTeam:o,configFiles:s}})}async function sandboxMode({prompt:e,resume:t}){t&&(await streamSession({sessionId:t,isResume:!0}),process.exit(0)),await ensureAuthenticated()||process.exit(1);const n=validateGitRepo();n.isClean||console.error(pe.yellow("Warning: You have uncommitted changes. The sandbox clones from remote, so local changes won't be included."));const r=getGitHubToken(),o=isInternalTeamFlagPresent(),s=readLocalConfigFiles(),i=e||await askQuestion(`${pe.bold("What do you want to do?")}\n${pe.cyan(">")} `);if(!i.trim())return void console.error(pe.yellow("No prompt provided. Aborting."));const a=i.trim().slice(0,Bt.MAX_PROMPT_CHARS),l=Ae({stream:process.stderr,text:"Starting sandbox session..."}).start();try{const e=await startSandboxSession({repoUrl:n.repoUrl,branch:n.branch,prompt:a,ghToken:r,isInternalTeam:o,configFiles:s});l.succeed("Sandbox started"),await streamSession({sessionId:e.sessionId,prompt:a}),process.exit(0)}catch(e){l.fail("Failed to start session");const t=e instanceof Error?e.message:"Unknown error";t.includes("401")||t.toLowerCase().includes("unauthorized")?console.error(pe.red("Authentication failed. Try logging in again: cmd login")):console.error(pe.red(t)),process.exit(1)}}function createSandboxCommand(){return new _e("sandbox").description("Run a task autonomously in a sandbox").argument("[prompt]","Task description").option("--id <sessionId>","Resume an existing sandbox session").enablePositionalOptions().action(async(e,t)=>{try{await sandboxMode({prompt:e,resume:t.id})}catch(e){const t=e instanceof Error?e.message:"Unknown error";console.error(pe.red(t)),process.exit(1)}})}function validateSafeString(e,t){if(e.includes("..")||e.includes("\\"))throw new Error(`Invalid ${t}: path traversal sequences are not allowed.\nExpected format: owner/repo or owner/repo/path`);if(!/^[a-zA-Z0-9._/-]+$/.test(e))throw new Error(`Invalid ${t}: contains unsupported characters.\nOnly letters, numbers, hyphens, underscores, dots, and slashes are allowed.`)}function parseGitHubRepo(e){let t,n=e.replace(/^https?:\/\/github\.com\//,"");const r=n.lastIndexOf("@");r>0&&r<n.length-1&&(t=n.slice(r+1),n=n.slice(0,r),validateSafeString(t,"branch name"));const o=n.split("/");if(o.length<2)throw new Error("Invalid GitHub repository format. Expected: owner/repo or owner/repo/path");const[s,i,...a]=o;validateSafeString(s,"owner"),validateSafeString(i,"repository");const l=a.length>0?a.join("/"):void 0;return l&&validateSafeString(l,"path"),{owner:s,repo:i,path:l,branch:t}}function buildGigetSource(e){const{owner:t,repo:n,path:r,branch:o}=e;let s=`gh:${t}/${n}`;return r&&(s+=`/${r}`),o&&(s+=`#${o}`),s}async function fetchSkillFromGitHub(e){await cleanupStaleTempDirectories();const n=parseGitHubRepo(e),{owner:r,repo:o,path:s}=n;let i;if(s){const e=s.split("/").filter(Boolean);i=e[e.length-1]}else i=o;const a=t.join(w.tmpdir(),`commandcode-skill-${Q()}`);await q.mkdir(a,{recursive:!0});try{const e=buildGigetSource(n),{downloadTemplate:s}=await import("giget");try{await s(e,{dir:a,force:!0,silent:!0})}catch(t){if(!isCorruptedArchiveError(t))throw t;await clearGigetCache(r,o),await s(e,{dir:a,force:!0,silent:!0})}const l=t.join(a,"SKILL.md"),u=t.join(a,"skill.md");let d=!1;try{await q.access(l),d=!0}catch{}if(!d)try{await q.access(u),d=!0}catch{}if(!d)throw new Error(`SKILL.md not found in ${e}. Make sure the repository contains a SKILL.md file.`);return{tempDir:a,skillName:i}}catch(e){if(await q.rm(a,{recursive:!0,force:!0}).catch(()=>{}),e instanceof Error&&e.message.includes("SKILL.md not found"))throw e;throw wrapFetchError(e,r,o)}}async function discoverSkillsInRepo(e,t){const n=parseGitHubRepo(e),{owner:r,repo:o,path:s,branch:i}=n,{keepTempDir:a=!1}=t||{},{discoverSkillsLocally:l}=await Promise.resolve().then(()=>(Db(),$b)),u=await l({owner:r,repo:o,path:s,branch:i,keepTempDir:a});if(0===u.skills.length)throw new Error(`No skills found in repository ${r}/${o}${s?` at path "${s}"`:""}. Ensure the repository contains SKILL.md files.`);return u}async function resolveSkillMdPath(e){const n=t.join(e,"SKILL.md");try{return await q.access(n),n}catch{}const r=t.join(e,"skill.md");try{return await q.access(r),r}catch{}throw new Error(`SKILL.md not found in ${e}`)}function validateSkillName(e){const t=e.trim();if(!t||0===t.length)throw new Error("Invalid skill name: name cannot be empty");if(t.includes("/")||t.includes("\\"))throw new Error(`Invalid skill name: "${e}". Skill names cannot contain path separators (/ or \\).`);if(t.includes(".."))throw new Error(`Invalid skill name: "${e}". Skill names cannot contain parent directory references (..).`);if(t.startsWith("."))throw new Error(`Invalid skill name: "${e}". Skill names cannot start with a dot.`);if(!/^[a-z0-9-]+$/.test(t))throw new Error(`Invalid skill name: "${e}". Skill names must contain only lowercase letters, numbers, and hyphens.`);return t}async function validateSkillContent(e){const t=await resolveSkillMdPath(e),n=await q.readFile(t,"utf-8"),{data:r}=Ge(n),o=Eh.parse(r);return{name:validateSkillName(o.name),description:o.description}}async function skillExists(e){const{skillName:n,location:r}=e,o="global"===r?getGlobalSkillsDir():getProjectSkillsDir(),s=t.join(o,n);try{return await q.access(s),!0}catch{return!1}}async function discoverSkills(e,t){return discoverSkillsInRepo(e,t)}async function installSkill(e){const{repoInput:n,options:r={}}=e,{global:o=!1,force:s=!1,skillName:i,discoveredSkill:a,cachedTempDir:l}=r;let u,d,m=n;if(i){let e;if(a)e=a;else{const t=await discoverSkillsInRepo(n);if(0===t.skills.length)throw new Error(`No skills found in repository: ${n}`);const r=t.skills.find(e=>e.name.toLowerCase()===i.toLowerCase());if(!r){const e=t.skills.map(e=>e.name).join(", ");throw new Error(`Skill "${i}" not found in repository. Available skills: ${e}`)}e=r}const t=parseGitHubRepo(n),r=[t.path,e.path&&"."!==e.path?e.path:void 0].filter(Boolean).join("/"),o=r?`${t.owner}/${t.repo}/${r}`:`${t.owner}/${t.repo}`;m=t.branch?`${o}@${t.branch}`:o}if(l&&a){u=a.path&&"."!==a.path?t.join(l,a.path):l,d=!1;try{await resolveSkillMdPath(u)}catch{const e=a.path&&"."!==a.path?`at ${a.path}`:"at root";throw new Error(`SKILL.md not found in cached directory ${e}. Make sure the repository contains a SKILL.md file.`)}}else u=(await fetchSkillFromGitHub(m)).tempDir,d=!0;try{const{name:e,description:n}=await validateSkillContent(u),r=e,i=o?"global":"project",a="global"===i?getGlobalSkillsDir():getProjectSkillsDir(),l=await skillExists({skillName:r,location:i});if(l&&!s)throw new Error(`Skill "${r}" already exists in ${"global"===i?"~/.commandcode/skills/":".commandcode/skills/"}. Use --force to overwrite.`);await q.mkdir(a,{recursive:!0});const d=t.join(a,r),{randomUUID:m}=await import("crypto"),g=t.join(a,`.${r}.tmp.${m()}`);try{await q.cp(u,g,{recursive:!0,force:!0,dereference:!1}),l&&s&&await q.rm(d,{recursive:!0,force:!0}),await q.rename(g,d)}catch(e){if(await q.rm(g,{recursive:!0,force:!0}).catch(()=>{}),e instanceof Error&&"code"in e&&("EEXIST"===e.code||"ENOTEMPTY"===e.code))throw new Error(`Skill "${r}" was created by another process during installation. Use --force to overwrite.`);throw e}let h;try{h=await resolveSkillMdPath(d)}catch{h=t.join(d,"SKILL.md")}return{name:r,description:n,location:i,path:h}}finally{d&&await q.rm(u,{recursive:!0,force:!0}).catch(()=>{})}}async function removeSkill(e){const{global:n=!1}=e,r=validateSkillName(e.skillName),o=n?"global":"project",s="global"===o?getGlobalSkillsDir():getProjectSkillsDir(),i=t.join(s,r);if(!await skillExists({skillName:r,location:o}))throw new Error(`Skill "${r}" not found in ${"global"===o?"global (~/.commandcode/skills/)":"project (.commandcode/skills/)"} skills.${"global"===o?"":" Use -g/--global to check global skills."}`);await q.rm(i,{recursive:!0,force:!0})}async function listSkills(){const{global:e,project:t}=await loadAllSkillSummaries();return{global:e.map(e=>({name:e.name,description:e.description,location:"global",path:e.filePath})),project:t.map(e=>({name:e.name,description:e.description,location:"project",path:e.filePath}))}}__name(stopAllSpinners,"stopAllSpinners"),__name(renderStatusEvent,"renderStatusEvent"),__name(renderEvent,"renderEvent"),__name(setupInputHandling,"setupInputHandling"),__name(setupResizeForwarding,"setupResizeForwarding"),__name(sendTerminalSize,"sendTerminalSize"),__name(streamSession,"streamSession"),__name(readLocalConfigFiles,"readLocalConfigFiles"),__name(askQuestion,"askQuestion"),__name(startSandboxSession,"startSandboxSession"),__name(sandboxMode,"sandboxMode"),__name(createSandboxCommand,"createSandboxCommand"),Fr(),tn(),tn(),tn(),tn(),Lb(),__name(validateSafeString,"validateSafeString"),__name(parseGitHubRepo,"parseGitHubRepo"),__name(buildGigetSource,"buildGigetSource"),__name(fetchSkillFromGitHub,"fetchSkillFromGitHub"),__name(discoverSkillsInRepo,"discoverSkillsInRepo"),Fh(),__name(resolveSkillMdPath,"resolveSkillMdPath"),__name(validateSkillName,"validateSkillName"),__name(validateSkillContent,"validateSkillContent"),__name(skillExists,"skillExists"),__name(discoverSkills,"discoverSkills"),__name(installSkill,"installSkill"),__name(removeSkill,"removeSkill"),__name(listSkills,"listSkills"),sn();var pA=[`${pe.dim("Usage:")}`,` ${pe.cyan("cmd skills add")} ${pe.white("<owner/repo>")}`,"",`${pe.dim("Examples:")}`,` ${pe.cyan("cmd skills add")} ${pe.white("acme/my-skills")} ${pe.dim("# single-skill repo")}`,` ${pe.cyan("cmd skills add")} ${pe.white("acme/skills/path/to/skill")} ${pe.dim("# specific path in repo")}`,` ${pe.cyan("cmd skills add")} ${pe.white("acme/multi-skills -s my-skill")} ${pe.dim("# pick one from multi-skill repo")}`,` ${pe.cyan("cmd skills add")} ${pe.white("acme/repo@branch")} ${pe.dim("# specific branch")}`,` ${pe.cyan("cmd skills add")} ${pe.white("acme/repo --global")} ${pe.dim("# install to ~/.commandcode/skills/")}`],gA=__name((e,t)=>`${pe.green(Pe.tick)} Installed ${pe.cyan(e)} ${pe.dim(`${Pe.arrowRight} ${t}/`)}`,"formatInstalled"),hA=__name(e=>`${pe.red(Pe.cross)} ${e}`,"formatError");async function cleanupAndExit(e,t){e&&await U(e,{recursive:!0,force:!0}).catch(()=>{}),process.exit(t)}function validateRepoFormat(e){(e.startsWith(".")||e.startsWith("/")||e.startsWith("~"))&&(console.error(hA("Local paths are not supported. Skills must be installed from GitHub.")),console.log(""),pA.forEach(e=>console.log(e)),process.exit(1));const t=e.replace(/^https?:\/\/github\.com\//,""),n=t.lastIndexOf("@");(n>0?t.slice(0,n):t).split("/").filter(Boolean).length<2&&(console.error(hA(`Invalid repository: "${e}"`)),console.log(""),console.log(`Expected format: ${pe.cyan("owner/repo")} or ${pe.cyan("owner/repo/path")}`),console.log(""),pA.forEach(e=>console.log(e)),process.exit(1))}async function addAction(e,t){const n=process.stdout.isTTY&&process.stdin.isTTY,r=t.global?"~/.commandcode/skills":".commandcode/skills";let o;validateRepoFormat(e);const s=Ae({text:`Fetching ${pe.cyan(e)}...`,color:"cyan"});try{let i=[];s.start();const a=await discoverSkills(e,{keepTempDir:!0}),{skills:l,tempDir:u}=a;if(o=u,s.stop(),0===l.length&&(console.error(hA(`No skills found in ${pe.cyan(e)}`)),console.log(pe.dim("The repository must contain at least one SKILL.md file.")),await cleanupAndExit(o,1)),t.skill){const n=l.find(e=>e.name.toLowerCase()===t.skill.toLowerCase());n||(console.error(hA(`Skill "${t.skill}" not found in ${pe.cyan(e)}`)),console.log(""),console.log(pe.dim("Available skills:")),l.forEach(e=>console.log(` ${pe.cyan(e.name)}`)),await cleanupAndExit(o,1)),i=[n]}else if(1===l.length)i=[l[0]];else if(n){const t=await qe({message:`Select skills to install from ${e}`,options:l.map(e=>({value:e.name,label:e.name})),required:!0});"symbol"==typeof t&&(console.log(pe.dim("Cancelled")),await cleanupAndExit(o,0));const n=t;i=l.filter(e=>n.includes(e.name))}else i=l;let d=0;for(const n of i)try{const s=Ae({text:`Installing ${pe.cyan(n.name)}...`,color:"cyan"});s.start();const i=await installSkill({repoInput:e,options:{global:t.global,force:t.force,skillName:n.name,discoveredSkill:n,cachedTempDir:o}});s.stop(),console.log(gA(i.name,r))}catch(e){d++;const t=e instanceof Error?e.message:String(e);console.error(hA(`Failed to install "${n.name}"`)),console.log(pe.dim(` ${t}`))}await cleanupAndExit(o,d>0?1:0)}catch(e){s.stop();const t=e instanceof Error?e.message:String(e);console.error(hA(t)),await cleanupAndExit(o,1)}}__name(cleanupAndExit,"cleanupAndExit"),__name(validateRepoFormat,"validateRepoFormat"),__name(addAction,"addAction");var fA=new _e("add").description("Install a skill from a GitHub repository").argument("<repo>","GitHub repository (owner/repo or owner/repo/path)").option("-g, --global","Install to global skills (~/.commandcode/skills/)").option("-f, --force","Overwrite if skill already exists").option("-s, --skill <name>","Specific skill name to install from repo").addHelpText("after",`\n${pA.join("\n")}`).configureOutput({outputError:__name((e,t)=>{e.includes("missing required argument")?(console.error(hA("No repository specified.")),console.log(""),pA.forEach(e=>console.log(e))):t(e)},"outputError")}).action(addAction);tn(),sn();var yA=__name((e,t)=>`${pe.green(Pe.tick)} Removed ${pe.cyan(e)} from ${t} skills`,"formatRemoved"),wA=__name(e=>`${pe.red(Pe.cross)} ${e}`,"formatError");function validateSkillNameEarly(e){return e.includes("/")||e.includes("\\")?`"${e}" is not a valid skill name — it cannot contain path separators.`:e.includes("..")?`"${e}" is not a valid skill name — it cannot contain "..".`:e.startsWith(".")?`"${e}" is not a valid skill name — it cannot start with a dot.`:/^[a-z0-9-]+$/.test(e.trim())?null:`"${e}" is not a valid skill name — use only lowercase letters, numbers, and hyphens.`}async function removeAction(e,t){try{const n=process.stdout.isTTY&&process.stdin.isTTY,r=t.global?"global":"project",o=validateSkillNameEarly(e);if(o&&(console.error(wA(o)),console.log(pe.dim(`Run ${pe.cyan("cmd skills list")} to see installed skills.`)),process.exit(1)),!t.yes&&n){const t=await je({message:`Remove ${pe.cyan(e)} from ${r} skills?`});"symbol"!=typeof t&&t||(console.log(pe.dim("Cancelled")),process.exit(0))}await removeSkill({skillName:e,global:t.global}),console.log(yA(e,r)),process.exit(0)}catch(n){const r=n instanceof Error?n.message:"Failed to remove skill";r.includes("not found")?(console.error(wA(`Skill "${e}" not found in ${t.global?"global":"project"} skills`)),t.global||console.log(pe.dim(`Try ${pe.cyan(`cmd skills remove ${e} --global`)} to check global skills.`)),console.log(pe.dim(`Run ${pe.cyan("cmd skills list")} to see installed skills.`))):console.error(wA(r)),process.exit(1)}}__name(validateSkillNameEarly,"validateSkillNameEarly"),__name(removeAction,"removeAction");var SA=new _e("remove").description("Remove an installed skill").argument("<skill-name>","Name of the skill to remove").option("-g, --global","Remove from global skills (~/.commandcode/skills/)").option("-y, --yes","Skip confirmation prompt").action(removeAction);tn(),ob(),sn();var bA=__name((e,t)=>{const n=t.length>60?t.substring(0,57)+"...":t;return` ${pe.cyan(e)} ${pe.dim(`· ${n}`)}`},"formatSkillLine"),EA=__name((e,t)=>`${pe.bold(pe.white(e))} ${pe.dim(`(${t})`)}`,"formatSectionHeader"),CA=__name(()=>["",pe.dim("No skills installed."),"",pe.dim("Looking in:"),pe.dim(` ${getGlobalSkillsDir()} ${pe.white("(global)")}`),pe.dim(` ${getProjectSkillsDir()} ${pe.white("(project)")}`),pe.dim(` ${getGlobalAgentsCompatSkillsDir()} ${pe.white("(global, .agents)")}`),pe.dim(` ${getProjectAgentsCompatSkillsDir()} ${pe.white("(project, .agents)")}`),"",`Install a skill: ${pe.cyan("cmd skills add")} ${pe.dim("<owner/repo>")}`,""],"formatEmptyHint"),vA=__name(e=>{e.forEach(e=>console.log(e))},"printLines");async function listAction(){try{const{global:e,project:t}=await listSkills(),n=e.length+t.length;0===n&&(vA(CA()),process.exit(0)),console.log(""),console.log(heading({text:"Skills",sub:pe.dim(`${n} installed`)})),t.length>0&&(console.log(""),console.log(EA("Project",t.length)),t.forEach(e=>{console.log(bA(e.name,e.description))})),e.length>0&&(console.log(""),console.log(EA("Global",e.length)),e.forEach(e=>{console.log(bA(e.name,e.description))})),console.log(""),process.exit(0)}catch(e){const t=e instanceof Error?e.message:"Unknown error";console.error(`${pe.red(Pe.cross)} Failed to list skills: ${t}`),process.exit(1)}}__name(listAction,"listAction");var kA=new _e("list").description("List all installed skills").action(listAction),TA=new _e("skills").description("Manage skills from GitHub repositories").addCommand(fA).addCommand(SA).addCommand(kA);handleUnhandledErrors(),setupTelemetry(),await preRun();var _A=createProgram();_A.action(interactiveModeAction),_A.addCommand(sP),_A.addCommand(iP),_A.addCommand(uA),_A.addCommand(ZP),_A.addCommand(oP),_A.addCommand(createTasteCommand()),_A.addCommand(createMcpCommand()),_A.addCommand(aP),_A.addCommand(Uo),_A.addCommand(hb),_A.addCommand(kb),_A.addCommand(TA),isExperimentalEnabled()&&_A.addCommand(createSandboxCommand()),setupCommanderHooks(_A),_A.parse();