@nilsr0711/drydock 0.1.8 → 0.1.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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +4 -4
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/adrs/page.js +2 -2
- package/.next/standalone/.next/server/app/adrs/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/adrs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/analytics/page.js +1 -1
- package/.next/standalone/.next/server/app/analytics/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/control/shutdown/route.js +1 -1
- package/.next/standalone/.next/server/app/api/control/shutdown/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cost/export/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/health/route.js +1 -1
- package/.next/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sse/dashboard/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sse/jobs/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/webhooks/[repoId]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/webhooks/[repoId]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/costs/page.js +1 -1
- package/.next/standalone/.next/server/app/costs/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/costs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/jobs/[id]/page.js +3 -3
- package/.next/standalone/.next/server/app/jobs/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/jobs/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/jobs/page.js +2 -2
- package/.next/standalone/.next/server/app/jobs/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/jobs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/needs-human/page.js +2 -2
- package/.next/standalone/.next/server/app/needs-human/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/needs-human/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page.js +2 -2
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/prompts/page.js +2 -2
- package/.next/standalone/.next/server/app/prompts/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/prompts/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/repos/[id]/page.js +2 -2
- package/.next/standalone/.next/server/app/repos/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/repos/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js +2 -2
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +4 -4
- package/.next/standalone/.next/server/chunks/152.js +3 -0
- package/.next/standalone/.next/server/chunks/304.js +1 -1
- package/.next/standalone/.next/server/chunks/387.js +14 -14
- package/.next/standalone/.next/server/chunks/40.js +1 -1
- package/.next/standalone/.next/server/chunks/475.js +19 -0
- package/.next/standalone/.next/server/chunks/50.js +1 -0
- package/.next/standalone/.next/server/chunks/521.js +1 -1
- package/.next/standalone/.next/server/chunks/614.js +2 -2
- package/.next/standalone/.next/server/chunks/668.js +1 -0
- package/.next/standalone/.next/server/chunks/786.js +1 -1
- package/.next/standalone/.next/server/chunks/908.js +1 -1
- package/.next/standalone/.next/server/chunks/{685.js → 944.js} +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/6634-74f0b66587b57037.js +1 -0
- package/.next/standalone/.next/static/chunks/8382-5201fc3dd1f64e60.js +1 -0
- package/.next/standalone/.next/static/chunks/app/adrs/page-ca11e90e9404af90.js +1 -0
- package/.next/standalone/.next/static/chunks/app/jobs/[id]/page-dfb41b4785fd7cbb.js +1 -0
- package/.next/{static/chunks/app/layout-402d4ab34259b89b.js → standalone/.next/static/chunks/app/layout-134301ff0a9b828d.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/needs-human/page-569fc0e6aefc7677.js +1 -0
- package/.next/standalone/.next/static/chunks/app/page-504585be128c823c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/prompts/page-c6bf6a4c782035ac.js +1 -0
- package/.next/standalone/.next/static/chunks/app/repos/[id]/page-c0c4531c2af46526.js +1 -0
- package/.next/standalone/.next/static/chunks/app/settings/page-84a44ab52a0ff49d.js +1 -0
- package/.next/standalone/drizzle/0036_adopt_claude_mem.sql +1 -0
- package/.next/standalone/mcp-server.cjs +304 -81
- package/.next/standalone/package.json +1 -1
- package/.next/static/chunks/6634-74f0b66587b57037.js +1 -0
- package/.next/static/chunks/8382-5201fc3dd1f64e60.js +1 -0
- package/.next/static/chunks/app/adrs/page-ca11e90e9404af90.js +1 -0
- package/.next/static/chunks/app/jobs/[id]/page-dfb41b4785fd7cbb.js +1 -0
- package/.next/{standalone/.next/static/chunks/app/layout-402d4ab34259b89b.js → static/chunks/app/layout-134301ff0a9b828d.js} +1 -1
- package/.next/static/chunks/app/needs-human/page-569fc0e6aefc7677.js +1 -0
- package/.next/static/chunks/app/page-504585be128c823c.js +1 -0
- package/.next/static/chunks/app/prompts/page-c6bf6a4c782035ac.js +1 -0
- package/.next/static/chunks/app/repos/[id]/page-c0c4531c2af46526.js +1 -0
- package/.next/static/chunks/app/settings/page-84a44ab52a0ff49d.js +1 -0
- package/README.md +11 -5
- package/drizzle/0036_adopt_claude_mem.sql +1 -0
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/99.js +0 -21
- package/.next/standalone/.next/static/chunks/1298-0d60333e56ac8b2c.js +0 -1
- package/.next/standalone/.next/static/chunks/app/adrs/page-0c221fc18d1e89af.js +0 -1
- package/.next/standalone/.next/static/chunks/app/jobs/[id]/page-6ef8bc39b5181817.js +0 -1
- package/.next/standalone/.next/static/chunks/app/needs-human/page-b69ac22856c0a0b1.js +0 -1
- package/.next/standalone/.next/static/chunks/app/page-ccefa99d40734a8c.js +0 -1
- package/.next/standalone/.next/static/chunks/app/prompts/page-bcd1063eb5d64aa5.js +0 -1
- package/.next/standalone/.next/static/chunks/app/repos/[id]/page-2bd4b35a0b28042e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/settings/page-13a04ecac139b74c.js +0 -1
- package/.next/static/chunks/1298-0d60333e56ac8b2c.js +0 -1
- package/.next/static/chunks/app/adrs/page-0c221fc18d1e89af.js +0 -1
- package/.next/static/chunks/app/jobs/[id]/page-6ef8bc39b5181817.js +0 -1
- package/.next/static/chunks/app/needs-human/page-b69ac22856c0a0b1.js +0 -1
- package/.next/static/chunks/app/page-ccefa99d40734a8c.js +0 -1
- package/.next/static/chunks/app/prompts/page-bcd1063eb5d64aa5.js +0 -1
- package/.next/static/chunks/app/repos/[id]/page-2bd4b35a0b28042e.js +0 -1
- package/.next/static/chunks/app/settings/page-13a04ecac139b74c.js +0 -1
- /package/.next/standalone/.next/static/{qSEvPCWIslg9lcxt6XQhl → gBXyOslZ8CoJrAVnOEHDm}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{qSEvPCWIslg9lcxt6XQhl → gBXyOslZ8CoJrAVnOEHDm}/_ssgManifest.js +0 -0
- /package/.next/static/{qSEvPCWIslg9lcxt6XQhl → gBXyOslZ8CoJrAVnOEHDm}/_buildManifest.js +0 -0
- /package/.next/static/{qSEvPCWIslg9lcxt6XQhl → gBXyOslZ8CoJrAVnOEHDm}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4662],{395:(e,t,a)=>{"use strict";a.d(t,{$:()=>i});var s=a(515),r=a(1171),n=a(5832);let l={default:"bg-primary text-primary-foreground shadow-sm hover-elevate active-elevate-2",secondary:"bg-secondary text-secondary-foreground hover-elevate active-elevate-2",outline:"border border-border bg-transparent shadow-sm hover-elevate active-elevate-2",destructive:"bg-destructive text-destructive-foreground shadow-sm hover-elevate active-elevate-2",ghost:"border border-transparent hover-elevate active-elevate-2",success:"bg-success text-white shadow-sm hover-elevate active-elevate-2"},o={default:"h-9 px-4 py-2 rounded-lg text-sm",sm:"h-8 px-3 rounded-md text-xs",lg:"h-10 px-6 rounded-lg text-sm",icon:"h-9 w-9 rounded-lg","icon-sm":"h-8 w-8 rounded-md"},i=r.forwardRef(({className:e,variant:t="default",size:a="default",type:r="button",...i},d)=>(0,s.jsx)("button",{ref:d,type:r,className:(0,n.cn)("inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-ring","disabled:pointer-events-none disabled:opacity-50","[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",l[t],o[a],e),...i}));i.displayName="Button"},1528:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(1330).A)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]])},2655:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(1330).A)("container",[["path",{d:"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z",key:"1t2lqe"}],["path",{d:"M10 21.9V14L2.1 9.1",key:"o7czzq"}],["path",{d:"m10 14 11.9-6.9",key:"zm5e20"}],["path",{d:"M14 19.8v-8.1",key:"159ecu"}],["path",{d:"M18 17.5V9.4",key:"11uown"}]])},3123:(e,t,a)=>{"use strict";a.d(t,{$:()=>r});var s=a(5097);let r=(0,s.createServerReference)("40000b4b84e28d5ae3c149ab9bea206d1cb6c08e36",s.callServer,void 0,s.findSourceMapURL,"togglePauseAction")},3798:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(1330).A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},4266:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(1330).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},5529:(e,t,a)=>{"use strict";a.d(t,{Wu:()=>d,ZB:()=>i,Zp:()=>l,aR:()=>o});var s=a(515),r=a(5832);let n={none:"",sm:"p-4",default:"p-5",lg:"p-6"};function l({className:e,pad:t,hover:a,...o}){return(0,s.jsx)("div",{className:(0,r.cn)("rounded-xl border border-card-border bg-card text-card-foreground shadow-sm",a&&"hover-elevate transition-shadow hover:shadow-md",t&&n[t],e),...o})}function o({className:e,...t}){return(0,s.jsx)("div",{className:(0,r.cn)("flex flex-col gap-1.5 p-5",e),...t})}function i({className:e,...t}){return(0,s.jsx)("h3",{className:(0,r.cn)("text-base font-semibold leading-none tracking-tight",e),...t})}function d({className:e,...t}){return(0,s.jsx)("div",{className:(0,r.cn)("p-5 pt-0",e),...t})}},5662:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(1330).A)("octagon-alert",[["path",{d:"M12 16h.01",key:"1drbdi"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M15.312 2a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586l-4.688-4.688A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2z",key:"1fd625"}]])},5832:(e,t,a)=>{"use strict";function s(...e){return e.filter(Boolean).join(" ")}function r(e){if(!e)return"no activity";let t=Math.floor(Date.now()/1e3)-e;return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:t<604800?`${Math.floor(t/86400)}d ago`:new Date(1e3*e).toLocaleDateString()}function n(e){if(e>=3600){let t=Math.floor(e/3600),a=Math.round(e%3600/60);return a>0?`${t}h ${a}m`:`${t}h`}return e>=60?`${Math.floor(e/60)}m ${e%60}s`:`${e}s`}function l(e,t=2){return`$${e.toFixed(t)}`}a.d(t,{KW:()=>r,UK:()=>l,a3:()=>n,cn:()=>s})},7671:(e,t,a)=>{Promise.resolve().then(a.bind(a,9290)),Promise.resolve().then(a.t.bind(a,742,23)),Promise.resolve().then(a.bind(a,8650))},8108:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(1330).A)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},8479:(e,t,a)=>{"use strict";a.d(t,{t:()=>m,d:()=>h});var s=a(515),r=a(8131),n=a(6003),l=a(6512),o=a(5378),i=a(1171);function d(e){return"error"===e?"assertive":"polite"}var c=a(5832);let u=(0,i.createContext)(null);function m({children:e}){let[t,a]=(0,i.useState)([]),r=(0,i.useCallback)(e=>{a(t=>t.filter(t=>t.id!==e))},[]),n=(0,i.useCallback)(e=>{let t=Date.now()+Math.random(),s={id:t,title:e.title,description:e.description,variant:e.variant??"info",href:e.href};a(e=>[...e,s]),setTimeout(()=>r(t),5e3)},[r]),l=(0,i.useMemo)(()=>({toast:n,success:(e,t)=>n({title:e,description:t,variant:"success"}),error:(e,t)=>n({title:e,description:t,variant:"error"}),info:(e,t)=>n({title:e,description:t,variant:"info"})}),[n]);return(0,s.jsxs)(u.Provider,{value:l,children:[e,(0,s.jsx)(f,{toasts:t,onDismiss:r})]})}function h(){let e=(0,i.useContext)(u);if(!e)throw Error("useToast must be used within a ToastProvider");return e}let x={success:r.A,error:n.A,info:l.A},p={success:{icon:"text-success",bar:"bg-success"},error:{icon:"text-destructive",bar:"bg-destructive"},info:{icon:"text-primary",bar:"bg-primary"}};function g({toast:e,onDismiss:t}){let a=x[e.variant],r=p[e.variant];return(0,s.jsxs)("div",{className:"dd-toast dd-toast-in pointer-events-auto relative flex items-start gap-3 overflow-hidden rounded-xl border border-card-border bg-card p-3.5 shadow-lg",children:[(0,s.jsx)(a,{className:(0,c.cn)("mt-0.5 h-[18px] w-[18px] shrink-0",r.icon)}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[e.href?(0,s.jsx)("a",{href:e.href,className:"text-sm font-medium underline-offset-2 hover:underline",children:e.title}):(0,s.jsx)("p",{className:"text-sm font-medium",children:e.title}),e.description&&(0,s.jsx)("p",{className:"mt-0.5 text-xs text-muted-foreground",children:e.description})]}),(0,s.jsx)("button",{type:"button","aria-label":"Dismiss notification",onClick:()=>t(e.id),className:"shrink-0 rounded-md p-0.5 text-muted-foreground hover-elevate",children:(0,s.jsx)(o.A,{className:"h-3.5 w-3.5"})}),(0,s.jsx)("span",{className:(0,c.cn)("dd-toast-progress absolute bottom-0 left-0 h-0.5 w-full",r.bar),style:{animationDuration:"5000ms"}})]})}function f({toasts:e,onDismiss:t}){let a=e.filter(e=>"assertive"===d(e.variant)),r=e.filter(e=>"polite"===d(e.variant));return(0,s.jsxs)("div",{className:"pointer-events-none fixed bottom-4 right-4 z-[60] flex w-full max-w-sm flex-col gap-2",children:[(0,s.jsx)("div",{role:"alert","aria-live":"assertive","aria-atomic":"false",className:"flex flex-col gap-2",children:a.map(e=>(0,s.jsx)(g,{toast:e,onDismiss:t},e.id))}),(0,s.jsx)("div",{"aria-live":"polite","aria-atomic":"false",className:"flex flex-col gap-2",children:r.map(e=>(0,s.jsx)(g,{toast:e,onDismiss:t},e.id))})]})}},8650:(e,t,a)=>{"use strict";a.d(t,{SettingsForm:()=>O});var s=a(515),r=a(5662),n=a(1330);let l=(0,n.A)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),o=(0,n.A)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);var i=a(2655);let d=(0,n.A)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]),c=(0,n.A)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),u=(0,n.A)("plug-zap",[["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m18 3-4 4h6l-4 4",key:"16psg9"}]]);var m=a(1528);let h=(0,n.A)("archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);var x=a(8762),p=a(2235),g=a(1171),f=a(7241),b=a(9754),v=a(4783),j=a(395),y=a(5529),N=a(4148),w=a(7217),k=a(7405),C=a(8067),A=a(598),M=a(1059),D=a(8479);let S=["needs_human","job_failed","pr_opened","pr_merged","release_published","cost_limit","claude_limit","codex_limit","openrouter_limit","auth_expired","automation_paused"],R={needs_human:"Job needs human",job_failed:"Job aborted or failed",pr_opened:"Pull request opened",pr_merged:"Pull request merged",release_published:"Release published",cost_limit:"Daily cost limit reached",claude_limit:"Claude usage limit reached or cleared",codex_limit:"Codex usage limit reached or cleared",openrouter_limit:"OpenRouter limit reached or cleared",auth_expired:"Credentials expired or restored",automation_paused:"Automation paused or draining"};var P=a(5097);let _=(0,P.createServerReference)("4036ea31e7e76d9ed4abb3d277306f5d53ed4f7432",P.callServer,void 0,P.findSourceMapURL,"testOpenRouterConnectionAction"),T=(0,P.createServerReference)("409564d3de62f628e18708a10990c69b1344786a55",P.callServer,void 0,P.findSourceMapURL,"refreshOpenRouterCatalogAction");var L=a(3123);let E=(0,P.createServerReference)("40e798a082ede38293e3636950eb02a1cb2ba49149",P.callServer,void 0,P.findSourceMapURL,"saveSettingsAction"),$=(0,P.createServerReference)("005c29168158919ad4ebdef049c32f2af73de865a5",P.callServer,void 0,P.findSourceMapURL,"sendTestNotificationAction");function O({initial:e,openrouter:t}){let[a,n]=(0,g.useState)(e),[P,U]=(0,g.useTransition)(),[z,I]=(0,g.useTransition)(),[F,H]=(0,g.useTransition)(),[W,Z]=(0,g.useTransition)(),q=(0,p.useRouter)(),{success:J,error:K,info:B}=(0,D.d)(),V=(e,t)=>{n(a=>({...a,[e]:t}))};return(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[a.paused&&(0,s.jsx)(v.F,{tone:"warning",icon:r.A,title:"Global kill-switch is on",children:"All automation is suspended across every repository. Manual runs still work."}),(0,s.jsxs)(y.Zp,{pad:"lg",children:[(0,s.jsxs)("div",{className:"mb-4 flex items-center gap-3",children:[(0,s.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",children:(0,s.jsx)(l,{className:"h-4 w-4"})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-base font-semibold",children:"Automation & limits"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"One switch to halt everything, plus how aggressively the dock works."})]})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Global kill-switch"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Immediately pause all triage, processing, healing and releases."})]}),(0,s.jsx)(M.d,{checked:a.paused,disabled:F,onChange:e=>{V("paused",e),H(async()=>{try{await (0,L.$)(e),B(e?"Automation suspended":"Automation resumed")}catch(t){V("paused",!e),K("Failed to toggle automation",t instanceof Error?t.message:String(t))}})},"aria-label":"Global kill-switch"})]}),(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Release management"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Let the dock tag and publish releases automatically."})]}),(0,s.jsx)(M.d,{checked:a.releaseManagementEnabled,onChange:e=>V("releaseManagementEnabled",e),"aria-label":"Release management"})]}),(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Auto-wait on Claude usage limits"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Park jobs when the Claude quota is exhausted and resume them automatically once it resets, instead of paging you."})]}),(0,s.jsx)(M.d,{checked:a.claudeLimitAutoWait,onChange:e=>V("claudeLimitAutoWait",e),"aria-label":"Auto-wait on Claude usage limits"})]}),(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Auto-wait on Codex usage limits"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Park jobs when the Codex quota or rate limit is exhausted and resume them automatically once capacity returns, instead of paging you."})]}),(0,s.jsx)(M.d,{checked:a.codexLimitAutoWait,onChange:e=>V("codexLimitAutoWait",e),"aria-label":"Auto-wait on Codex usage limits"})]}),(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Auto-resume on turn budget"}),(0,s.jsxs)("p",{className:"text-xs text-muted-foreground",children:["When a job exhausts a positive ",(0,s.jsx)("code",{children:"max turns"})," budget, resume it to continue the work (a few times) instead of parking it in needs-human. Only applies when a turn budget is set."]})]}),(0,s.jsx)(M.d,{checked:a.maxTurnsAutoResume,onChange:e=>V("maxTurnsAutoResume",e),"aria-label":"Auto-resume on turn budget"})]}),(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:[(0,s.jsx)(w.D,{label:"Poll interval (s)",hint:"How often to check for new issues.",children:(0,s.jsx)(k.p,{type:"number",value:a.pollIntervalSec,onChange:e=>V("pollIntervalSec",Number(e.target.value))})}),(0,s.jsx)(w.D,{label:"Concurrent jobs",hint:"Max runs in flight at once.",children:(0,s.jsx)(k.p,{type:"number",value:a.maxParallelJobs,onChange:e=>V("maxParallelJobs",Number(e.target.value))})}),(0,s.jsx)(w.D,{label:"Daily cost limit (USD)",hint:"Stops new runs once reached today. 0 disables the daily budget (unlimited).",children:(0,s.jsx)(k.p,{type:"number",min:"0",step:"0.5",value:a.dailyCostLimitUsd,onChange:e=>V("dailyCostLimitUsd",Number(e.target.value))})}),(0,s.jsx)(w.D,{label:"Max turns",hint:"Hard cap on agent turns per job. 0 = unlimited.",children:(0,s.jsx)(k.p,{type:"number",min:"0",value:a.maxTurns,onChange:e=>V("maxTurns",Number(e.target.value))})}),(0,s.jsx)(w.D,{label:"Max job minutes",hint:"Abort a run after this wall-clock time.",children:(0,s.jsx)(k.p,{type:"number",value:a.maxJobMinutes,onChange:e=>V("maxJobMinutes",Number(e.target.value))})}),(0,s.jsx)(w.D,{label:"Max CI wait (min)",hint:"How long to wait for CI before giving up.",children:(0,s.jsx)(k.p,{type:"number",value:a.maxCiWaitMinutes,onChange:e=>V("maxCiWaitMinutes",Number(e.target.value))})}),(0,s.jsx)(w.D,{label:"Max job cost (USD)",hint:"0 disables the per-job cost cap.",children:(0,s.jsx)(k.p,{type:"number",min:"0",step:"0.01",value:a.maxJobCostUsd,onChange:e=>V("maxJobCostUsd",Number(e.target.value))})}),(0,s.jsx)(w.D,{label:"Default agent",hint:"Used when a repo has none set.",children:(0,s.jsx)(f.a,{value:a.defaultAgent,onChange:e=>{"openrouter"!==e&&V("defaultAgent",e)}})}),(0,s.jsx)(w.D,{label:"Default model",hint:"Used when a repo has none set.",children:(0,s.jsx)(b.o,{value:a.defaultModel,onChange:e=>V("defaultModel",e),agent:a.defaultAgent})})]})]})]}),(0,s.jsxs)(y.Zp,{pad:"lg",children:[(0,s.jsxs)("div",{className:"mb-4 flex items-center gap-3",children:[(0,s.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-secondary text-muted-foreground",children:(0,s.jsx)(o,{className:"h-4 w-4"})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-base font-semibold",children:"Execution paths"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Where to find the CLIs the dock shells out to."})]})]}),(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-3",children:[(0,s.jsx)(w.D,{label:"claude CLI path",children:(0,s.jsx)(k.p,{value:a.claudePath,onChange:e=>V("claudePath",e.target.value),spellCheck:!1})}),(0,s.jsx)(w.D,{label:"codex CLI path",children:(0,s.jsx)(k.p,{value:a.codexPath,onChange:e=>V("codexPath",e.target.value),spellCheck:!1})}),(0,s.jsx)(w.D,{label:"gh CLI path",children:(0,s.jsx)(k.p,{value:a.ghPath,onChange:e=>V("ghPath",e.target.value),spellCheck:!1})})]})]}),(0,s.jsxs)(y.Zp,{pad:"lg",children:[(0,s.jsxs)("div",{className:"mb-4 flex items-center gap-3",children:[(0,s.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",children:(0,s.jsx)(i.A,{className:"h-4 w-4"})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-base font-semibold",children:"Sandboxed execution"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Defaults for repos that run the agent inside a container. Enable it per repo from the repo's automation panel."})]})]}),(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,s.jsx)(w.D,{label:"Default container image",hint:"Used when a sandboxed repo names no image and has no devcontainer.json. Must carry the agent CLI plus the repo's toolchain.",children:(0,s.jsx)(k.p,{value:a.sandboxDefaultImage,onChange:e=>V("sandboxDefaultImage",e.target.value),spellCheck:!1,className:"font-mono text-sm"})}),(0,s.jsx)(w.D,{label:"Container runtime",hint:"“Auto” probes docker, then podman.",children:(0,s.jsxs)(C.l,{value:a.containerRuntime,onChange:e=>V("containerRuntime",e.target.value),children:[(0,s.jsx)("option",{value:"auto",children:"Auto-detect (docker → podman)"}),(0,s.jsx)("option",{value:"docker",children:"Docker"}),(0,s.jsx)("option",{value:"podman",children:"Podman"})]})})]})]}),(0,s.jsxs)(y.Zp,{pad:"lg",children:[(0,s.jsxs)("div",{className:"mb-4 flex items-center gap-3",children:[(0,s.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",children:(0,s.jsx)(d,{className:"h-4 w-4"})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-base font-semibold",children:"Notification channels"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Configure one or more channels, then send yourself a test."})]})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Needs-human sound"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Play a short sound in an open dashboard tab the moment a job parks and needs you. Honors your browser's autoplay policy — it sounds after your first interaction."})]}),(0,s.jsx)(M.d,{checked:a.needsHumanSoundEnabled,onChange:e=>V("needsHumanSoundEnabled",e),"aria-label":"Needs-human sound"})]}),(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,s.jsx)(w.D,{label:"Telegram bot token",hint:"Leave empty to disable Telegram.",children:(0,s.jsx)(k.p,{value:a.telegramBotToken,onChange:e=>V("telegramBotToken",e.target.value),autoComplete:"off",spellCheck:!1})}),(0,s.jsx)(w.D,{label:"Telegram chat ID",children:(0,s.jsx)(k.p,{value:a.telegramChatId,onChange:e=>V("telegramChatId",e.target.value),spellCheck:!1})})]}),(0,s.jsx)("div",{className:"grid gap-4",children:(0,s.jsx)(w.D,{label:"Slack incoming webhook URL",hint:"Leave empty to disable Slack.",children:(0,s.jsx)(k.p,{value:a.slackWebhookUrl,onChange:e=>V("slackWebhookUrl",e.target.value),spellCheck:!1})})}),(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,s.jsx)(w.D,{label:"SMTP host",hint:"Leave empty to disable email.",children:(0,s.jsx)(k.p,{value:a.smtpHost,onChange:e=>V("smtpHost",e.target.value)})}),(0,s.jsx)(w.D,{label:"SMTP port",children:(0,s.jsx)(k.p,{type:"number",value:a.smtpPort,onChange:e=>V("smtpPort",Number(e.target.value))})}),(0,s.jsx)(w.D,{label:"SMTP username",children:(0,s.jsx)(k.p,{value:a.smtpUser,onChange:e=>V("smtpUser",e.target.value),autoComplete:"off"})}),(0,s.jsx)(w.D,{label:"SMTP password",children:(0,s.jsx)(k.p,{type:"password",value:a.smtpPass,onChange:e=>V("smtpPass",e.target.value),autoComplete:"new-password"})}),(0,s.jsx)(w.D,{label:"From address",children:(0,s.jsx)(k.p,{type:"email",value:a.emailFrom,onChange:e=>V("emailFrom",e.target.value),placeholder:"drydock@example.com"})}),(0,s.jsx)(w.D,{label:"To address",children:(0,s.jsx)(k.p,{type:"email",value:a.emailTo,onChange:e=>V("emailTo",e.target.value),placeholder:"you@example.com"})})]}),(0,s.jsx)(w.D,{label:"Notify me about",children:(0,s.jsx)("div",{className:"grid gap-2.5 sm:grid-cols-2",children:S.map(e=>(0,s.jsxs)("label",{htmlFor:`notify-${e}`,className:"flex cursor-pointer items-center gap-2.5 text-sm text-foreground",children:[(0,s.jsx)(N.S,{id:`notify-${e}`,checked:a.notifyEvents.includes(e),onChange:t=>V("notifyEvents",t?[...a.notifyEvents,e]:a.notifyEvents.filter(t=>t!==e)),"aria-label":R[e]}),R[e]]},e))})})]})]}),(0,s.jsxs)(y.Zp,{pad:"lg",children:[(0,s.jsxs)("div",{className:"mb-4 flex items-center gap-3",children:[(0,s.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary",children:(0,s.jsx)(c,{className:"h-4 w-4"})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-base font-semibold",children:"OpenRouter"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Optional API backend with an auto-syncing model catalog, including free models."})]})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Enable OpenRouter"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Adds OpenRouter-hosted models as a selectable agent per repository. Repository code is sent to OpenRouter and its upstream model providers."})]}),(0,s.jsx)(M.d,{checked:a.openrouterEnabled,onChange:e=>V("openrouterEnabled",e),"aria-label":"Enable OpenRouter"})]}),(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,s.jsx)(w.D,{label:"API key",hint:"Stored locally; DRYDOCK_OPENROUTER_API_KEY overrides it. Never logged.",children:(0,s.jsx)(k.p,{type:"password",autoComplete:"off",placeholder:"sk-or-v1-…",value:a.openrouterApiKey,onChange:e=>V("openrouterApiKey",e.target.value)})}),(0,s.jsx)(w.D,{label:"Catalog refresh (hours)",hint:"Minimum 0.25 (15 minutes).",children:(0,s.jsx)(k.p,{type:"number",min:"0.25",step:"0.25",value:a.openrouterCatalogRefreshHours,onChange:e=>{let t=Number(e.target.value);Number.isFinite(t)&&!(t<.25)&&V("openrouterCatalogRefreshHours",t)}})}),(0,s.jsx)(w.D,{label:"Default model",hint:"Used when a repo or job has none set.",children:(0,s.jsx)(b.o,{agent:"openrouter",openrouterModels:t.models,value:a.openrouterDefaultModel,onChange:e=>V("openrouterDefaultModel",e)})}),(0,s.jsx)(w.D,{label:"App attribution",hint:"Optional HTTP-Referer / X-Title headers.",children:(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(k.p,{placeholder:"https://your-site.example",value:a.openrouterSiteUrl,onChange:e=>V("openrouterSiteUrl",e.target.value)}),(0,s.jsx)(k.p,{placeholder:"App name",value:a.openrouterAppName,onChange:e=>V("openrouterAppName",e.target.value)})]})})]}),(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Free models only"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Restrict every OpenRouter run to zero-cost catalog models."})]}),(0,s.jsx)(M.d,{checked:a.openrouterFreeModelsOnly,onChange:e=>V("openrouterFreeModelsOnly",e),"aria-label":"Free models only"})]}),(0,s.jsxs)("div",{className:"flex items-center justify-between gap-4 rounded-lg border border-border p-3",children:[(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"text-sm font-medium text-foreground",children:"Auto-wait on limits"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"Park jobs on OpenRouter 429s and resume them once the window resets."})]}),(0,s.jsx)(M.d,{checked:a.openrouterLimitAutoWait,onChange:e=>V("openrouterLimitAutoWait",e),"aria-label":"Auto-wait on OpenRouter limits"})]})]}),a.openrouterEnabled&&t.stale&&(0,s.jsx)(v.F,{tone:"warning",icon:r.A,title:"Model catalog is stale",children:t.lastError?`The last sync failed: ${t.lastError}. Pickers keep using the last-good snapshot.`:"The catalog has not synced recently. Pickers keep using the last-good snapshot."}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:t.modelCount>0?`${t.modelCount} models synced${t.lastSuccessAt?` \xb7 last sync ${new Date(1e3*t.lastSuccessAt).toLocaleString()}`:""}`:"No models synced yet."}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsxs)(j.$,{variant:"outline",onClick:()=>Z(async()=>{try{await E(a);let e=await _();e.ok?J("OpenRouter connection OK"):K("OpenRouter connection failed",e.error)}catch(e){K("OpenRouter connection failed",e instanceof Error?e.message:String(e))}}),disabled:W,children:[W?(0,s.jsx)(A.y,{size:16}):(0,s.jsx)(u,{className:"h-4 w-4"}),"Test connection"]}),(0,s.jsxs)(j.$,{variant:"outline",onClick:()=>Z(async()=>{try{await E(a);let e=await T();e.ok?(J(`Catalog refreshed — ${e.modelCount} models synced`),q.refresh()):K("Catalog refresh failed",e.error)}catch(e){K("Catalog refresh failed",e instanceof Error?e.message:String(e))}}),disabled:W,children:[W?(0,s.jsx)(A.y,{size:16}):(0,s.jsx)(m.A,{className:"h-4 w-4"}),"Refresh models"]})]})]})]})]}),(0,s.jsxs)(y.Zp,{pad:"lg",children:[(0,s.jsxs)("div",{className:"mb-4 flex items-center gap-3",children:[(0,s.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-secondary text-muted-foreground",children:(0,s.jsx)(h,{className:"h-4 w-4"})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-base font-semibold",children:"Retention"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"How long to keep job logs before they are pruned."})]})]}),(0,s.jsx)("div",{className:"grid gap-4 sm:grid-cols-3",children:(0,s.jsx)(w.D,{label:"Log retention (days)",hint:"Older job logs are deleted automatically.",children:(0,s.jsx)(k.p,{type:"number",value:a.retentionDays,onChange:e=>V("retentionDays",Number(e.target.value))})})})]}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2",children:[(0,s.jsxs)(j.$,{variant:"outline",onClick:()=>I(async()=>{try{await E(a);let e=await $();if(0===e.length)return void K("No channels configured","Save a channel before sending a test.");let t=e.filter(e=>!e.ok);0===t.length?J(`Test sent to ${e.map(e=>e.channel).join(", ")}`):K("Some channels failed",t.map(e=>`${e.channel}: ${e.error??"unknown error"}`).join("; "))}catch(e){K("Failed to send test",e instanceof Error?e.message:String(e))}}),disabled:z,children:[z?(0,s.jsx)(A.y,{size:16}):(0,s.jsx)(x.A,{className:"h-4 w-4"}),z?"Sending…":"Send test notification"]}),(0,s.jsxs)(j.$,{onClick:()=>U(async()=>{try{await E(a),J("Settings saved")}catch(e){K("Failed to save settings",e instanceof Error?e.message:String(e))}}),disabled:P,children:[P&&(0,s.jsx)(A.y,{size:16}),P?"Saving…":"Save changes"]})]})]})}},8762:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});let s=(0,a(1330).A)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]])}},e=>{e.O(0,[9843,8264,8382,9655,4234,7358],()=>e(e.s=7671)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ALTER TABLE `repos` ADD COLUMN `adopt_claude_mem` integer NOT NULL DEFAULT 0;
|