@minimalcorp/tsunagi 0.1.21 → 0.1.22
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/apps/web/.next/BUILD_ID +1 -1
- package/.next/standalone/apps/web/.next/build-manifest.json +3 -3
- package/.next/standalone/apps/web/.next/prerender-manifest.json +3 -3
- package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +13 -13
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +13 -13
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_index.segment.rsc +8 -8
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/index.rsc +15 -15
- package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +15 -15
- package/.next/standalone/apps/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/index.segments/_index.segment.rsc +8 -8
- package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.rsc +15 -15
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +15 -15
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_index.segment.rsc +8 -8
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__05isylw._.js → [root-of-the-server]__07kf5h-._.js} +15 -15
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0ro8-ey._.js → [root-of-the-server]__0_gamc9._.js} +14 -14
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0.71xtd._.js → [root-of-the-server]__0a7t~wn._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0a0hk7u._.js → [root-of-the-server]__0cwejmp._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{_0m02uow._.js → _06gug4~._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0_3mc_u._.js +14 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0g.cd6a._.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{_12haisb._.js → _0gpi5iq._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{_0ciirh0._.js → _0ie-fls._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_0w0y9fd._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_settings_page_tsx_0i6itlb._.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_tasks_[id]_page_tsx_0jshsm2._.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_07l1hvz._.js → node_modules_0-dhyl6._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0.2komk._.js → node_modules_0-ecrjy._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0f2d1ld._.js → node_modules_0.6~k__._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0o5v9qy._.js → node_modules_0.7pxhy._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0--8gmr._.js → node_modules_0126g83._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_12fhr6_._.js → node_modules_06iewnh._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0rry_x9._.js → node_modules_0efb87~._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_05ji-z-._.js → node_modules_0j3gfu0._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0coeuci._.js → node_modules_0of7.-5._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0jnk_y1._.js → node_modules_0r6ewmn._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_05c~np0._.js → node_modules_0s64~o2._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0j0v234._.js → node_modules_0uwlz8.._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0s5._2.._.js → node_modules_0w5pf1p._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0o-eb.1._.js → node_modules_0ybihhp._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_11h4-ta._.js → node_modules_0zmomoe._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0al2sy~._.js → node_modules_11gk90a._.js} +1 -1
- package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
- package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
- package/.next/standalone/apps/web/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/0-nditm2kmxy3.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/{10i6zv0moo8jf.js → 00vlzdkbq6_w3.js} +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/05b63w8.ny19p.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/{0dqrg945xihvq.js → 0e9140l311w8t.js} +13 -13
- package/.next/standalone/apps/web/.next/static/chunks/0krkukgs6hg9c.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/{16ud~dw7vj3ay.js → 0kw1z8z_ld6s0.js} +13 -13
- package/.next/standalone/apps/web/.next/static/chunks/0sy8tzk6r-pb~.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/0tggf01u1vugi.js +3 -0
- package/.next/standalone/apps/web/.next/static/chunks/0thsn6nq5b-cz.js +12 -0
- package/.next/standalone/apps/web/.next/static/chunks/0vfrsmi1vl53y.css +4 -0
- package/.next/standalone/apps/web/.next/static/chunks/10ildl1-mw9ez.js +5 -0
- package/dist/server/index.js +10 -0
- package/dist/server/lib/whisper-process.d.ts +23 -0
- package/dist/server/lib/whisper-process.js +196 -0
- package/dist/server/routes/whisper.d.ts +2 -0
- package/dist/server/routes/whisper.js +56 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -1
- package/whisper-server/README.md +23 -0
- package/whisper-server/download_model.py +14 -0
- package/whisper-server/requirements.txt +6 -0
- package/whisper-server/run.sh +24 -0
- package/whisper-server/server.py +52 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0-0rmdn._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_075y~8w._.js +0 -14
- package/.next/standalone/apps/web/.next/static/chunks/0120px2-6x5y9.js +0 -12
- package/.next/standalone/apps/web/.next/static/chunks/01vu~a32zh7cz.js +0 -1
- package/.next/standalone/apps/web/.next/static/chunks/0dv3n-mxhr4w1.js +0 -1
- package/.next/standalone/apps/web/.next/static/chunks/0eh4r4805-t.c.js +0 -3
- package/.next/standalone/apps/web/.next/static/chunks/0w12j2_zw_0ax.js +0 -1
- package/.next/standalone/apps/web/.next/static/chunks/0xn4aezxw~.je.js +0 -1
- package/.next/standalone/apps/web/.next/static/chunks/147e715pxo.p..css +0 -4
- package/.next/standalone/apps/web/.next/static/chunks/1490sj3xb9_m6.js +0 -5
- /package/.next/standalone/apps/web/.next/static/{qdfRw8pC3EF2mv12yUFzd → Sabbf98Kp2U-uM3Ul0na7}/_buildManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{qdfRw8pC3EF2mv12yUFzd → Sabbf98Kp2U-uM3Ul0na7}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{qdfRw8pC3EF2mv12yUFzd → Sabbf98Kp2U-uM3Ul0na7}/_ssgManifest.js +0 -0
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,55716,e=>{"use strict";let t=(0,e.i(75254).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",0,t],55716)},7233,5352,e=>{"use strict";let t=(0,e.i(75254).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],7233);let a=[{bg:"bg-blue-100 dark:bg-blue-900/30",text:"text-blue-700 dark:text-blue-300"},{bg:"bg-emerald-100 dark:bg-emerald-900/30",text:"text-emerald-700 dark:text-emerald-300"},{bg:"bg-violet-100 dark:bg-violet-900/30",text:"text-violet-700 dark:text-violet-300"},{bg:"bg-amber-100 dark:bg-amber-900/30",text:"text-amber-700 dark:text-amber-300"},{bg:"bg-rose-100 dark:bg-rose-900/30",text:"text-rose-700 dark:text-rose-300"},{bg:"bg-cyan-100 dark:bg-cyan-900/30",text:"text-cyan-700 dark:text-cyan-300"},{bg:"bg-orange-100 dark:bg-orange-900/30",text:"text-orange-700 dark:text-orange-300"},{bg:"bg-teal-100 dark:bg-teal-900/30",text:"text-teal-700 dark:text-teal-300"},{bg:"bg-indigo-100 dark:bg-indigo-900/30",text:"text-indigo-700 dark:text-indigo-300"},{bg:"bg-pink-100 dark:bg-pink-900/30",text:"text-pink-700 dark:text-pink-300"},{bg:"bg-lime-100 dark:bg-lime-900/30",text:"text-lime-700 dark:text-lime-300"},{bg:"bg-fuchsia-100 dark:bg-fuchsia-900/30",text:"text-fuchsia-700 dark:text-fuchsia-300"}];e.s(["getRepoColor",0,function(e,t){let r=function(e){let t=5381;for(let a=0;a<e.length;a++)t=33*t^e.charCodeAt(a);return t>>>0}(`${e}/${t}`)%a.length;return a[r]}],5352)},18566,(e,t,a)=>{t.exports=e.r(76562)},43531,78745,e=>{"use strict";let t=(0,e.i(75254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t],78745),e.s(["Check",0,t],43531)},86536,e=>{"use strict";let t=(0,e.i(75254).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",0,t],86536)},27612,e=>{"use strict";let t=(0,e.i(75254).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,t],27612)},10012,24564,94349,e=>{"use strict";var t,a=e.i(18050);e.i(47167);var r=e.i(71645);e.s([],19485),e.i(19485);var s=e.i(76477),l=e.i(67805),i=e.i(17514);let n=((t={}).disabled="data-disabled",t.valid="data-valid",t.invalid="data-invalid",t.touched="data-touched",t.dirty="data-dirty",t.filled="data-filled",t.focused="data-focused",t),o={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},d={valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},c={disabled:!1,...d},u={valid:e=>null===e?null:e?{[n.valid]:""}:{[n.invalid]:""}},f=r.createContext({invalid:void 0,name:void 0,validityData:{state:o,errors:[],error:"",value:"",initialValue:null},setValidityData:i.NOOP,disabled:void 0,touched:d.touched,setTouched:i.NOOP,dirty:d.dirty,setDirty:i.NOOP,filled:d.filled,setFilled:i.NOOP,focused:d.focused,setFocused:i.NOOP,validate:()=>null,validationMode:"onSubmit",validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:c,markedDirtyRef:{current:!1},validation:{getValidationProps:(e=i.EMPTY_OBJECT)=>e,getInputValidationProps:(e=i.EMPTY_OBJECT)=>e,inputRef:{current:null},commit:async()=>{}}});function m(e=!0){let t=r.useContext(f);if(t.setValidityData===i.NOOP&&!e)throw Error((0,l.default)(28));return t}let p=r.createContext({legendId:void 0,setLegendId:()=>{},disabled:void 0}),h=r.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:i.NOOP,validationMode:"onSubmit",submitAttemptedRef:{current:!1}});function v(){return r.useContext(h)}var x=e.i(30628),g=e.i(19805),b=e.i(89879);let y=r.createContext({controlId:void 0,registerControlId:i.NOOP,labelId:void 0,setLabelId:i.NOOP,messageIds:[],setMessageIds:i.NOOP,getDescriptionProps:e=>e});function k(){return r.useContext(y)}let w=function(e){let t=(0,b.useBaseUiId)(),l=void 0===e.controlId?t:e.controlId,[i,n]=r.useState(l),[o,d]=r.useState(e.labelId),[c,u]=r.useState([]),f=(0,x.useRefWithInit)(()=>new Map),{messageIds:m}=k(),p=(0,s.useStableCallback)((e,t)=>{let a=f.current;void 0===t?a.delete(e):(a.set(e,t),n(e=>{let t;if(0!==a.size){for(let r of a.values()){if(void 0!==e&&r===e)return e;void 0===t&&(t=r)}return t}}))}),h=r.useCallback(e=>(0,g.mergeProps)({"aria-describedby":m.concat(c).join(" ")||void 0},e),[m,c]),v=r.useMemo(()=>({controlId:i,registerControlId:p,labelId:o,setLabelId:d,messageIds:c,setMessageIds:u,getDescriptionProps:h}),[i,p,o,d,c,u,h]);return(0,a.jsx)(y.Provider,{value:v,children:e.children})};var j=e.i(27601),N=e.i(66745);function C(e,t){return{...e,state:{...e.state,valid:!t&&e.state.valid}}}let E=Object.keys(o),S=r.forwardRef(function(e,t){let{errors:n,validationMode:d,submitAttemptedRef:c}=v(),{render:m,className:h,validate:x,validationDebounceTime:b=0,validationMode:y=d,name:w,disabled:S=!1,invalid:T,dirty:O,touched:I,actionsRef:P,...R}=e,{disabled:M}=function(e=!1){let t=r.useContext(p);if(!t&&!e)throw Error((0,l.default)(86));return t}(),A=(0,s.useStableCallback)(x||(()=>null)),D=M||S,[F,L]=r.useState(!1),[U,B]=r.useState(!1),[V,$]=r.useState(!1),[_,z]=r.useState(!1),H=O??U,K=I??F,J=r.useRef(!1),G=(0,s.useStableCallback)(e=>{void 0===O&&(e&&(J.current=!0),B(e))}),q=(0,s.useStableCallback)(e=>{void 0===I&&L(e)}),Y=(0,s.useStableCallback)(()=>"onChange"===y||"onSubmit"===y&&c.current),W=!!w&&Object.hasOwn(n,w)&&void 0!==n[w],X=!0===T||W,[Z,Q]=r.useState({state:o,error:"",errors:[],value:null,initialValue:null}),ee=!X&&Z.state.valid,et=r.useMemo(()=>({disabled:D,touched:K,dirty:H,valid:ee,filled:V,focused:_}),[D,K,H,ee,V,_]),ea=function(e){let{formRef:t,clearErrors:a}=v(),{setValidityData:l,validate:n,validityData:d,validationDebounceTime:c,invalid:u,markedDirtyRef:f,state:m,name:p,shouldValidateOnChange:h}=e,{controlId:x,getDescriptionProps:b}=k(),y=(0,N.useTimeout)(),w=r.useRef(null),j=(0,s.useStableCallback)(async(e,a=!1)=>{let r,s=w.current;if(!s)return;if(a){if(!1!==m.valid)return;let a=s.validity;if(!a.valueMissing){let a={value:e,state:{...o,valid:!0},error:"",errors:[],initialValue:d.initialValue};if(s.setCustomValidity(""),x){let e=t.current.fields.get(x);e&&t.current.fields.set(x,{...e,...C(a,!1)})}l(a);return}let r=E.reduce((e,t)=>(e[t]=a[t],e),{});if(!r.valid&&!function(e){if(!e||e.valid||!e.valueMissing)return!1;let t=!1;for(let a of E)"valid"!==a&&("valueMissing"===a&&(t=e[a]),e[a]&&(t=!1));return t}(r))return}y.clear();let i=null,c=[],p=function(e){let t=E.reduce((t,a)=>(t[a]=e.validity[a],t),{}),a=!1;for(let e of E)if("valid"!==e){if("valueMissing"===e&&t[e])a=!0;else if(t[e])return t}return a&&!f.current&&(t.valid=!0,t.valueMissing=!1),t}(s),v=h();if(s.validationMessage&&!v)r=s.validationMessage,c=[s.validationMessage];else{let a=n(e,Array.from(t.current.fields.values()).reduce((e,t)=>(t.name&&(e[t.name]=t.getValue()),e),{}));null!==(i="object"==typeof a&&null!==a&&"then"in a?await a:a)?(p.valid=!1,p.customError=!0,Array.isArray(i)?(c=i,s.setCustomValidity(i.join("\n"))):i&&(c=[i],s.setCustomValidity(i))):v&&(s.setCustomValidity(""),p.customError=!1,s.validationMessage?(r=s.validationMessage,c=[s.validationMessage]):s.validity.valid&&!p.valid&&(p.valid=!0))}let g={value:e,state:p,error:r??(Array.isArray(i)?i[0]:i??""),errors:c,initialValue:d.initialValue};if(x){let e=t.current.fields.get(x);e&&t.current.fields.set(x,{...e,...C(g,u)})}l(g)}),S=r.useCallback((e={})=>(0,g.mergeProps)(b,!1===m.valid?{"aria-invalid":!0}:i.EMPTY_OBJECT,e),[b,m.valid]),T=r.useCallback((e={})=>(0,g.mergeProps)({onChange(e){if(e.nativeEvent.defaultPrevented)return;if(a(p),!h())return void j(e.currentTarget.value,!0);let t=e.currentTarget;""===t.value?j(t.value):(y.clear(),c?y.start(c,()=>{j(t.value)}):j(t.value))}},S(e)),[S,a,p,y,j,c,h]);return r.useMemo(()=>({getValidationProps:S,getInputValidationProps:T,inputRef:w,commit:j}),[S,T,j])}({setValidityData:Q,validate:A,validityData:Z,validationDebounceTime:b,invalid:X,markedDirtyRef:J,state:et,name:w,shouldValidateOnChange:Y}),er=r.useCallback(()=>{J.current=!0,ea.commit(Z.value)},[ea,Z]);r.useImperativeHandle(P,()=>({validate:er}),[er]);let es=r.useMemo(()=>({invalid:X,name:w,validityData:Z,setValidityData:Q,disabled:D,touched:K,setTouched:q,dirty:H,setDirty:G,filled:V,setFilled:$,focused:_,setFocused:z,validate:A,validationMode:y,validationDebounceTime:b,shouldValidateOnChange:Y,state:et,markedDirtyRef:J,validation:ea}),[X,w,Z,D,K,q,H,G,V,$,_,z,A,y,b,Y,et,ea]),el=(0,j.useRenderElement)("div",e,{ref:t,state:et,props:R,stateAttributesMapping:u});return(0,a.jsx)(f.Provider,{value:es,children:el})}),T=r.forwardRef(function(e,t){return(0,a.jsx)(w,{children:(0,a.jsx)(S,{...e,ref:t})})});var O=e.i(29315),I=e.i(90219),P=e.i(47857),R=e.i(977);function M(e,t){let a=(0,b.useBaseUiId)(e);return(0,R.useIsoLayoutEffect)(()=>(t(a),()=>{t(void 0)}),[a,t]),a}e.s(["useRegisteredLabelId",0,M],24564);let A=r.forwardRef(function(e,t){let{render:a,className:l,id:i,nativeLabel:n=!0,...o}=e,d=m(!1),{labelId:c}=k(),f=r.useRef(null),p=function(e={}){let{id:t,fallbackControlId:a,native:r=!1,setLabelId:l,focusControl:i}=e,{controlId:n,setLabelId:o}=k(),d=M(t,(0,s.useStableCallback)(e=>{o(e),l?.(e)})),c=n??a;function u(e){let t=(0,P.getTarget)(e.nativeEvent);t?.closest("button,input,select,textarea")||(!e.defaultPrevented&&e.detail>1&&e.preventDefault(),r||function(e){if(i)return i(e,c);if(!c)return;let t=(0,I.ownerDocument)(e.currentTarget).getElementById(c);(0,O.isHTMLElement)(t)&&t.focus({focusVisible:!0})}(e))}return r?{id:d,htmlFor:c??void 0,onMouseDown:u}:{id:d,onClick:u,onPointerDown(e){e.preventDefault()}}}({id:c??i,native:n});return(0,j.useRenderElement)("label",e,{ref:[t,f],state:d.state,props:[p,o],stateAttributesMapping:u})});var D=e.i(89269),F=e.i(84759),L=e.i(88841);let U={...u,...F.transitionStatusMapping},B=r.forwardRef(function(e,t){let{render:s,id:l,className:i,match:n,...o}=e,d=(0,b.useBaseUiId)(l),{validityData:c,state:u,name:f}=m(!1),{setMessageIds:p}=k(),{errors:h}=v(),x=f?h[f]:null,g=!1;g=!!x||!0===n||(n?!!c.state[n]:!1===c.state.valid);let{mounted:y,transitionStatus:w,setMounted:N}=(0,L.useTransitionStatus)(g);(0,R.useIsoLayoutEffect)(()=>{if(g&&d)return p(e=>e.concat(d)),()=>{p(e=>e.filter(e=>e!==d))}},[g,d,p]);let C=r.useRef(null),[E,S]=r.useState(null),[T,O]=r.useState(null),I=x||(c.errors.length>1?(0,a.jsx)("ul",{children:c.errors.map(e=>(0,a.jsx)("li",{children:e},e))}):c.error),P=c.error;null!=x?P=Array.isArray(x)?JSON.stringify(x):x:c.errors.length>1&&(P=JSON.stringify(c.errors)),g&&P!==T&&(O(P),S(I)),(0,D.useOpenChangeComplete)({open:g,ref:C,onComplete(){g||N(!1)}});let M={...u,transitionStatus:w},A=(0,j.useRenderElement)("div",e,{ref:[t,C],state:M,props:[{id:d,children:g?I:E},o],stateAttributesMapping:U,enabled:y});return y?A:null}),V=r.forwardRef(function(e,t){let{render:a,id:r,className:s,...l}=e,i=(0,b.useBaseUiId)(r),n=m(!1),{setMessageIds:o}=k();return(0,R.useIsoLayoutEffect)(()=>{if(i)return o(e=>e.concat(i)),()=>{o(e=>e.filter(e=>e!==i))}},[i,o]),(0,j.useRenderElement)("p",e,{ref:t,state:n.state,props:[{id:i},l],stateAttributesMapping:u})});function $({controlled:e,default:t,name:a,state:s="value"}){let{current:l}=r.useRef(void 0!==e),[i,n]=r.useState(t),o=r.useCallback(e=>{l||n(e)},[]);return[l?e:i,o]}e.s(["useControlled",0,$],94349);var _=e.i(74080),z=e.i(5963),H=e.i(3404);let K=r.forwardRef(function(e,t){let{render:a,className:l,id:n,name:o,value:d,disabled:c=!1,onValueChange:f,defaultValue:p,autoFocus:h=!1,...g}=e,{state:y,name:w,disabled:N,setTouched:E,setDirty:S,validityData:T,setFocused:M,setFilled:A,validationMode:D,validation:F}=m(),L=N||c,U=w??o,B={...y,disabled:L},{labelId:V}=k(),K=function(e={}){let{id:t,implicit:a=!1,controlRef:l}=e,{controlId:n,registerControlId:o}=k(),d=(0,b.useBaseUiId)(t),c=a?n:void 0,u=(0,x.useRefWithInit)(()=>Symbol("labelable-control")),f=r.useRef(!1),m=r.useRef(null!=t),p=(0,s.useStableCallback)(()=>{f.current&&o!==i.NOOP&&(f.current=!1,o(u.current,void 0))});return(0,R.useIsoLayoutEffect)(()=>{let e;if(o!==i.NOOP){if(a){let a=l?.current;e=(0,O.isElement)(a)&&null!=a.closest("label")?t??null:c??d}else if(null!=t)m.current=!0,e=t;else{if(!m.current)return void p();e=d}if(void 0===e)return void p();f.current=!0,o(u.current,e)}},[t,l,c,o,a,d,u,p]),r.useEffect(()=>p,[p]),n??d}({id:n});(0,R.useIsoLayoutEffect)(()=>{let e=null!=d;F.inputRef.current?.value||e&&""!==d?A(!0):e&&""===d&&A(!1)},[F.inputRef,A,d]);let J=r.useRef(null);(0,R.useIsoLayoutEffect)(()=>{h&&J.current===(0,P.activeElement)((0,I.ownerDocument)(J.current))&&M(!0)},[h,M]);let[G]=$({controlled:d,default:p,name:"FieldControl",state:"value"}),q=void 0!==d,Y=q?G:void 0;return!function(e){let{enabled:t=!0,value:a,id:r,name:l,controlRef:i,commit:n}=e,{formRef:o}=v(),{invalid:d,markedDirtyRef:c,validityData:u,setValidityData:f}=m(),p=(0,s.useStableCallback)(e.getValue);(0,R.useIsoLayoutEffect)(()=>{if(!t)return;let e=a;void 0===e&&(e=p()),null===u.initialValue&&null!==e&&f(t=>({...t,initialValue:e}))},[t,f,a,u.initialValue,p]),(0,R.useIsoLayoutEffect)(()=>{t&&r&&o.current.fields.set(r,{getValue:p,name:l,controlRef:i,validityData:C(u,d),validate(e=!0){let t=a;void 0===t&&(t=p()),c.current=!0,e?_.flushSync(()=>n(t)):n(t)}})},[n,i,t,o,p,r,d,c,l,u,a]),(0,R.useIsoLayoutEffect)(()=>{let e=o.current.fields;return()=>{r&&e.delete(r)}},[o,r])}({id:K,name:U,commit:F.commit,value:Y,getValue:()=>F.inputRef.current?.value,controlRef:F.inputRef}),(0,j.useRenderElement)("input",e,{ref:[t,J],state:B,props:[{id:K,disabled:L,name:U,ref:F.inputRef,"aria-labelledby":V,autoFocus:h,...q?{value:Y}:{defaultValue:p},onChange(e){let t=e.currentTarget.value;f?.(t,(0,z.createChangeEventDetails)(H.REASONS.none,e.nativeEvent)),S(t!==T.initialValue),A(""!==t)},onFocus(){M(!0)},onBlur(e){E(!0),M(!1),"onBlur"===D&&F.commit(e.currentTarget.value)},onKeyDown(e){"INPUT"===e.currentTarget.tagName&&"Enter"===e.key&&(E(!0),F.commit(e.currentTarget.value))}},F.getInputValidationProps(),g],stateAttributesMapping:u})}),J=r.createContext({disabled:!1}),G=r.createContext(void 0),q=r.forwardRef(function(e,t){let{render:s,className:i,disabled:n=!1,...o}=e,{state:d,disabled:c}=m(!1),f=c||n,p=function(e=!0){let t=r.useContext(G);if(void 0===t&&!e)throw Error((0,l.default)(3));return t}(),h=p?.parent.id,v=p?.allValues!==void 0,x=r.useMemo(()=>({disabled:f}),[f]),g=(0,j.useRenderElement)("div",e,{ref:t,state:d,props:o,stateAttributesMapping:u});return(0,a.jsx)(w,{controlId:v?h:void 0,children:(0,a.jsx)(J.Provider,{value:x,children:g})})});e.s(["Control",0,K,"Description",0,V,"Error",0,B,"Item",0,q,"Label",0,A,"Root",0,T,"Validity",0,function(e){let{children:t}=e,{validityData:s,invalid:l}=m(!1),i=r.useMemo(()=>C(s,l),[s,l]),n=!1===i.state.valid,{transitionStatus:o}=(0,L.useTransitionStatus)(n),d=r.useMemo(()=>({...i,validity:i.state,transitionStatus:o}),[i,o]);return(0,a.jsx)(r.Fragment,{children:t(d)})}],71975);var Y=e.i(71975),Y=Y;let W=r.forwardRef(function(e,t){return(0,a.jsx)(Y.Control,{ref:t,...e})});var X=e.i(52088);e.s(["Input",0,function({className:e,type:t,...r}){return(0,a.jsx)(W,{type:t,"data-slot":"input",className:(0,X.cn)("h-9 w-full min-w-0 rounded-md border border-input bg-input/20 px-3 py-1 text-sm transition-colors outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",e),...r})}],10012)},37870,31278,e=>{"use strict";var t=e.i(18050),a=e.i(17521);e.s(["Loader2",()=>a.default],31278);var a=a;e.s(["LoadingSpinner",0,function({size:e="md",message:r}){return(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3",children:[(0,t.jsx)(a.default,{className:`${{sm:"w-4 h-4",md:"w-8 h-8",lg:"w-12 h-12"}[e]} text-primary animate-spin`}),r&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:r})]})}],37870)},63209,e=>{"use strict";let t=(0,e.i(75254).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",0,t],63209)},51846,e=>{"use strict";var t=e.i(71645);e.s(["useDocumentTitle",0,function(e){(0,t.useEffect)(()=>{let t=e?`繋 | ${e}`:"繋",a=document.title;return document.title=t,()=>{document.title=a}},[e])}])},471,e=>{"use strict";let t=(0,e.i(75254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],471)},46349,e=>{"use strict";let t=(0,e.i(75254).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["default",0,t])},88699,e=>{"use strict";let t=(0,e.i(75254).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],88699)},82341,e=>{"use strict";var t=e.i(18050),a=e.i(71645),r=e.i(18566),s=e.i(471),l=e.i(70935),i=e.i(75254);let n=(0,i.default)("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"}]]),o=(0,i.default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var d=e.i(55716),c=e.i(46349),c=c;let u=(0,i.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);var f=e.i(85902);function m({node:e,isSelected:a,isExpanded:r,depth:s,onSelect:l,onToggle:i}){let p=e.children&&e.children.length>0;return(0,t.jsxs)("div",{onClick:()=>{l(),p&&i&&!r&&i()},className:`
|
|
2
|
-
flex items-center gap-2 px-2 py-1.5 rounded cursor-pointer
|
|
3
|
-
transition-colors
|
|
4
|
-
${a?"bg-accent":"hover:bg-accent"}
|
|
5
|
-
`,style:{paddingLeft:`${16*s+8}px`},children:[p&&(0,t.jsx)(f.Button,{variant:"ghost",size:"icon-xs",onClick:e=>{e.stopPropagation(),i&&i()},className:"size-4",children:r?(0,t.jsx)(u,{className:"w-3 h-3 text-muted-foreground"}):(0,t.jsx)(c.default,{className:"w-3 h-3 text-muted-foreground"})}),!p&&(0,t.jsx)("div",{className:"w-3"}),(0,t.jsx)("div",{className:"text-foreground",children:(()=>{switch(e.type){case"global":return(0,t.jsx)(n,{className:"w-4 h-4"});case"owner":return(0,t.jsx)(o,{className:"w-4 h-4"});case"repo":return(0,t.jsx)(d.GitBranch,{className:"w-4 h-4"})}})()}),(0,t.jsx)("span",{className:"text-sm text-foreground truncate",children:e.label})]})}function p({selectedNode:e,onNodeSelect:r,refreshKey:s}){let[i,n]=(0,a.useState)([]),[o,d]=(0,a.useState)(new Set),[c,u]=(0,a.useState)(!0);(0,a.useEffect)(()=>{let e=localStorage.getItem("tsunagi:env-tree-expanded");if(e)try{let t=JSON.parse(e);d(new Set(t))}catch(e){console.error("Failed to parse expanded owners:",e)}},[]),(0,a.useEffect)(()=>{localStorage.setItem("tsunagi:env-tree-expanded",JSON.stringify([...o]))},[o]),(0,a.useEffect)(()=>{(async()=>{u(!0);try{let e=await fetch((0,l.apiUrl)("/api/owners"));if(!e.ok)throw Error("Failed to fetch owners");let t=((await e.json()).data.owners||[]).map(e=>({id:`owner:${e.name}`,type:"owner",label:e.name,scope:"owner",owner:e.name,children:e.repositories.map(e=>({id:`repo:${e.owner}/${e.repo}`,type:"repo",label:e.repo,scope:"repo",owner:e.owner,repo:e.repo}))}));n([{id:"global",type:"global",label:"Global",scope:"global"},...t])}catch(e){console.error("Failed to load tree:",e)}finally{u(!1)}})()},[s]);let f=(a,s=0)=>{let l=e?.scope===a.scope&&e?.owner===a.owner&&e?.repo===a.repo,i=o.has(a.id);return(0,t.jsxs)("div",{children:[(0,t.jsx)(m,{node:a,isSelected:l,isExpanded:i,depth:s,onSelect:()=>{r({scope:a.scope,owner:a.owner,repo:a.repo,label:a.label})},onToggle:()=>{var e;return e=a.id,void d(t=>{let a=new Set(t);return a.has(e)?a.delete(e):a.add(e),a})}}),i&&a.children?.map(e=>f(e,s+1))]},a.id)};return c?(0,t.jsx)("div",{className:"p-4 text-muted-foreground text-sm",children:"Loading..."}):0===i.length?(0,t.jsx)("div",{className:"p-4 text-muted-foreground text-sm",children:"No repositories found"}):(0,t.jsx)("div",{className:"h-full overflow-y-auto",children:(0,t.jsx)("div",{className:"p-2",children:i.map(e=>f(e))})})}var h=e.i(7233),v=e.i(37727),x=e.i(43531),g=e.i(86536);let b=(0,i.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var y=e.i(27612),k=e.i(88699),w=e.i(10012);function j({variable:e,onToggle:r,onDelete:s,onUpdate:l,isDeletable:i=!0}){let[n,o]=(0,a.useState)(!1),[d,c]=(0,a.useState)(!1),[u,m]=(0,a.useState)(!1),[p,h]=(0,a.useState)(e.value),N=async t=>{c(!0);try{await r(e.key,t.target.checked)}finally{c(!1)}},C=async()=>{await s(e.key)},E=async()=>{try{await l(e.key,p),m(!1)}catch(e){console.error("Failed to update variable:",e),alert("Failed to update variable")}};return(0,t.jsxs)("div",{className:"border border-border rounded p-3 space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-sm font-mono text-foreground",children:e.key}),!u&&(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,t.jsx)("input",{type:"checkbox",checked:e.enabled,onChange:N,disabled:d,className:"w-4 h-4 cursor-pointer"}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"Enabled"})]}),(0,t.jsx)(f.Button,{variant:"ghost",size:"icon-lg",onClick:()=>o(!n),title:n?"Hide value":"Show value",children:n?(0,t.jsx)(b,{className:"w-4 h-4 text-muted-foreground"}):(0,t.jsx)(g.Eye,{className:"w-4 h-4 text-muted-foreground"})}),(0,t.jsx)(f.Button,{variant:"ghost",size:"icon-lg",onClick:()=>{m(!0),h(e.value)},title:"Edit",children:(0,t.jsx)(k.Pencil,{className:"w-4 h-4 text-muted-foreground"})}),i&&(0,t.jsx)(f.Button,{variant:"ghost",size:"icon-lg",onClick:C,title:"Delete",children:(0,t.jsx)(y.Trash2,{className:"w-4 h-4 text-destructive"})})]})]}),u?(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(w.Input,{type:"password",value:p,onChange:e=>h(e.target.value),className:"w-full font-mono",autoFocus:!0}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(f.Button,{variant:"outline",size:"sm",onClick:()=>{m(!1),h(e.value)},className:"active:scale-95",children:(0,t.jsx)(v.X,{className:"w-4 h-4"})}),(0,t.jsx)(f.Button,{size:"sm",onClick:E,className:"active:scale-95",children:(0,t.jsx)(x.Check,{className:"w-4 h-4"})})]})]}):(0,t.jsx)("div",{children:(0,t.jsx)(w.Input,{type:n?"text":"password",value:e.value,readOnly:!0,className:"w-full font-mono"})})]})}var N=e.i(37870);let C=["ANTHROPIC_API_KEY","CLAUDE_CODE_OAUTH_TOKEN"];function E({selectedNode:e}){let[r,s]=(0,a.useState)([]),[i,n]=(0,a.useState)(!0),[o,d]=(0,a.useState)(null),[c,u]=(0,a.useState)(!1),[m,p]=(0,a.useState)(""),[g,b]=(0,a.useState)(""),[y,k]=(0,a.useState)("");(0,a.useEffect)(()=>{(async()=>{n(!0),d(null);try{let t=new URLSearchParams({scope:e.scope});e.owner&&t.set("owner",e.owner),e.repo&&t.set("repo",e.repo);let a=await fetch((0,l.apiUrl)(`/api/env/list?${t}`));if(!a.ok)throw Error("Failed to fetch environment variables");let r=((await a.json()).data.envVars||[]).filter(e=>!C.includes(e.key));s(r)}catch(e){console.error("Failed to load environment variables:",e),d("Failed to load environment variables")}finally{n(!1)}})()},[e]);let S=async(t,a)=>{if("global"===e.scope&&!a&&("ANTHROPIC_API_KEY"===t||"CLAUDE_CODE_OAUTH_TOKEN"===t)&&!r.find(e=>e.key!==t&&("ANTHROPIC_API_KEY"===e.key||"CLAUDE_CODE_OAUTH_TOKEN"===e.key)&&e.enabled))return void alert("Cannot disable the last enabled Claude Token. Please add or enable another Claude Token first.");try{if(!(await fetch((0,l.apiUrl)("/api/env/toggle"),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:t,scope:e.scope,owner:e.owner,repo:e.repo,enabled:a})})).ok)throw Error("Failed to toggle environment variable");s(e=>e.map(e=>e.key===t?{...e,enabled:a}:e))}catch(e){console.error("Failed to toggle environment variable:",e),s(e=>e.map(e=>e.key===t?{...e,enabled:!a}:e))}},T=async t=>{if(confirm(`Delete ${t}?`))try{let a=new URLSearchParams({key:t,scope:e.scope});if(e.owner&&a.set("owner",e.owner),e.repo&&a.set("repo",e.repo),!(await fetch((0,l.apiUrl)(`/api/env?${a}`),{method:"DELETE"})).ok)throw Error("Failed to delete environment variable");s(e=>e.filter(e=>e.key!==t))}catch(e){console.error("Failed to delete environment variable:",e),alert("Failed to delete environment variable")}},O=async(t,a)=>{try{if(!(await fetch((0,l.apiUrl)("/api/env"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:t,value:a,scope:e.scope,owner:e.owner,repo:e.repo})})).ok)throw Error("Failed to update environment variable");s(e=>e.map(e=>e.key===t?{...e,value:a}:e))}catch(e){throw console.error("Failed to update environment variable:",e),e}},I=async()=>{var t;if(k(""),!m.trim())return void k("Key is required");if(!g.trim())return void k("Value is required");if(t=m.trim(),/^[A-Z0-9_]+$/.test(t)?C.includes(t)?(k("Claude tokens should be added in the Tokens section"),!1):!r.some(e=>e.key===t)||(k(`Key "${t}" already exists in this scope`),!1):(k("Key must contain only uppercase letters, numbers, and underscores"),!1))try{if(!(await fetch((0,l.apiUrl)("/api/env"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:m.trim(),value:g.trim(),scope:e.scope,owner:e.owner,repo:e.repo})})).ok)throw Error("Failed to add environment variable");let t=new URLSearchParams({scope:e.scope});e.owner&&t.set("owner",e.owner),e.repo&&t.set("repo",e.repo);let a=await fetch((0,l.apiUrl)(`/api/env/list?${t}`));if(a.ok){let e=((await a.json()).data.envVars||[]).filter(e=>!C.includes(e.key));s(e)}u(!1),p(""),b("")}catch(e){console.error("Failed to add environment variable:",e),k("Failed to add environment variable")}};return i?(0,t.jsx)("div",{className:"h-full flex items-center justify-center",children:(0,t.jsx)(N.LoadingSpinner,{size:"md",message:"Loading variables..."})}):o?(0,t.jsx)("div",{className:"h-full flex items-center justify-center",children:(0,t.jsx)("div",{className:"text-destructive text-sm",children:o})}):(0,t.jsxs)("div",{className:"h-full flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsx)("h2",{className:"text-lg font-bold text-foreground",children:"Environment Variables"}),!c&&(0,t.jsxs)(f.Button,{size:"sm",onClick:()=>u(!0),className:"active:scale-95",children:[(0,t.jsx)(h.Plus,{className:"w-4 h-4"}),"Add Variable"]})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto space-y-3",children:[c&&(0,t.jsxs)("div",{className:"border border-border rounded p-3 bg-accent space-y-2",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-foreground",children:"New Variable"}),(0,t.jsx)(w.Input,{type:"text",value:m,onChange:e=>p(e.target.value.toUpperCase()),placeholder:"VARIABLE_NAME",className:"w-full font-mono",autoFocus:!0}),(0,t.jsx)(w.Input,{type:"password",value:g,onChange:e=>b(e.target.value),placeholder:"value",className:"w-full font-mono"}),y&&(0,t.jsx)("div",{className:"text-xs text-destructive",children:y}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(f.Button,{variant:"outline",size:"sm",onClick:()=>{u(!1),p(""),b(""),k("")},className:"active:scale-95",children:(0,t.jsx)(v.X,{className:"w-4 h-4"})}),(0,t.jsx)(f.Button,{size:"sm",onClick:I,className:"active:scale-95",children:(0,t.jsx)(x.Check,{className:"w-4 h-4"})})]})]}),0!==r.length||c?r.map(e=>(0,t.jsx)(j,{variable:e,onToggle:S,onDelete:T,onUpdate:O,isDeletable:!0},e.key)):(0,t.jsx)("div",{className:"text-center text-muted-foreground text-sm py-4",children:"No environment variables"})]})]})}var S=e.i(63209);let T=["ANTHROPIC_API_KEY","CLAUDE_CODE_OAUTH_TOKEN"],O={ANTHROPIC_API_KEY:"API Key",CLAUDE_CODE_OAUTH_TOKEN:"OAuth Token"};function I(e){return e.startsWith("sk-ant-api")?"ANTHROPIC_API_KEY":e.startsWith("sk-ant-oat")?"CLAUDE_CODE_OAUTH_TOKEN":null}function P({selectedNode:e,onboardingStatus:r,onSwitchToGlobal:s}){let[i,n]=(0,a.useState)([]),[o,d]=(0,a.useState)(!0),[c,u]=(0,a.useState)(null),[m,p]=(0,a.useState)(null),[j,C]=(0,a.useState)(""),[E,R]=(0,a.useState)(""),[M,A]=(0,a.useState)(null),[D,F]=(0,a.useState)({}),[L,U]=(0,a.useState)(!1),[B,V]=(0,a.useState)(""),[$,_]=(0,a.useState)(""),[z,H]=(0,a.useState)(null);(0,a.useEffect)(()=>{K()},[e]);let K=async()=>{d(!0),u(null);try{let t=new URLSearchParams({scope:e.scope});e.owner&&t.set("owner",e.owner),e.repo&&t.set("repo",e.repo);let a=await fetch((0,l.apiUrl)(`/api/env/list?${t}`));if(!a.ok)throw Error("Failed to fetch tokens");let r=((await a.json()).data.envVars||[]).filter(e=>T.includes(e.key)).map(e=>({key:e.key,value:e.value,label:O[e.key]||e.key}));n(r)}catch(e){console.error("Failed to load tokens:",e),u("Failed to load tokens")}finally{d(!1)}},J=()=>{p(null),C(""),R(""),A(null)},G=async t=>{if(!j.trim())return void R("Token value is required");let a=I(j);if(!a)return void R("Invalid token format");try{if(a!==t){let r=new URLSearchParams({key:t,scope:e.scope});e.owner&&r.set("owner",e.owner),e.repo&&r.set("repo",e.repo),await fetch((0,l.apiUrl)(`/api/env?${r}`),{method:"DELETE"}),await fetch((0,l.apiUrl)("/api/env"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:a,value:j.trim(),scope:e.scope,owner:e.owner,repo:e.repo})})}else if(!(await fetch((0,l.apiUrl)("/api/env"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:t,value:j.trim(),scope:e.scope,owner:e.owner,repo:e.repo})})).ok)throw Error("Failed to update token");await K(),p(null),C(""),R(""),A(null)}catch(e){console.error("Failed to update token:",e),R("Failed to update token")}},q=async()=>{if(!B.trim())return void _("Token value is required");let t=I(B);if(!t)return void _("Invalid token format");if(i.length>0)return void _("Only one Claude token is allowed per scope. Please edit the existing token.");try{if(!(await fetch((0,l.apiUrl)("/api/env"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:t,value:B.trim(),scope:e.scope,owner:e.owner,repo:e.repo})})).ok)throw Error("Failed to add token");await K(),U(!1),V(""),H(null)}catch(e){console.error("Failed to add token:",e),_("Failed to add token")}},Y=async t=>{if(confirm("Are you sure you want to delete this token?"))try{let a=new URLSearchParams({key:t,scope:e.scope});if(e.owner&&a.set("owner",e.owner),e.repo&&a.set("repo",e.repo),!(await fetch((0,l.apiUrl)(`/api/env?${a}`),{method:"DELETE"})).ok)throw Error("Failed to delete token");await K()}catch(e){console.error("Failed to delete token:",e),alert("Failed to delete token")}};if(o)return(0,t.jsxs)("div",{className:"border-2 border-primary rounded-xl p-4 bg-card",children:[(0,t.jsx)("h2",{className:"text-lg font-bold text-foreground mb-4",children:"Claude Tokens"}),(0,t.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,t.jsx)(N.LoadingSpinner,{size:"sm",message:"Loading tokens..."})})]});if(c)return(0,t.jsxs)("div",{className:"border-2 border-primary rounded-xl p-4 bg-card",children:[(0,t.jsx)("h2",{className:"text-lg font-bold text-foreground mb-4",children:"Claude Tokens"}),(0,t.jsx)("div",{className:"text-destructive text-sm",children:c})]});let W=r&&!r.completed&&"global"!==e.scope;return(0,t.jsxs)("div",{className:"border-2 border-primary rounded-xl p-4 bg-card",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsx)("h2",{className:"text-lg font-bold text-foreground",children:"Claude Tokens"}),!L&&0===i.length&&(0,t.jsxs)(f.Button,{size:"sm",onClick:()=>U(!0),className:"active:scale-95",children:[(0,t.jsx)(h.Plus,{className:"w-4 h-4"}),"Add Token"]})]}),W&&(0,t.jsxs)("div",{className:"mb-4 border-2 border-warning bg-warning/10 rounded-xl p-3 flex items-start gap-3",children:[(0,t.jsx)(S.AlertCircle,{className:"w-5 h-5 text-warning flex-shrink-0 mt-0.5"}),(0,t.jsx)("div",{className:"flex-1",children:(0,t.jsx)("p",{className:"text-sm text-warning",children:"オンボーディングを完了するには、Globalスコープにトークンを追加してください"})}),s&&(0,t.jsx)(f.Button,{size:"sm",onClick:s,className:"bg-warning text-white hover:bg-warning/80 active:scale-95 whitespace-nowrap",children:"Switch to Global"})]}),(0,t.jsxs)("div",{className:"space-y-3",children:[L&&(0,t.jsxs)("div",{className:"border border-border rounded p-3 bg-accent",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-foreground mb-2",children:"New Token"}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(w.Input,{type:"password",value:B,onChange:e=>{var t;let a;return V(t=e.target.value),_(""),void(H(a=I(t)),t&&!a&&_("Invalid token format. Must start with sk-ant-api or sk-ant-oat"))},placeholder:"sk-ant-api... or sk-ant-oat...",className:"w-full font-mono",autoFocus:!0}),z&&!$&&(0,t.jsxs)("div",{className:"text-xs text-success",children:["→ Detected: ",O[z]]}),$&&(0,t.jsx)("div",{className:"text-xs text-destructive",children:$}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(f.Button,{variant:"outline",size:"sm",onClick:()=>{U(!1),V(""),_(""),H(null)},className:"active:scale-95",children:(0,t.jsx)(v.X,{className:"w-4 h-4"})}),(0,t.jsx)(f.Button,{size:"sm",onClick:q,disabled:!z||!!$,className:"active:scale-95",children:(0,t.jsx)(x.Check,{className:"w-4 h-4"})})]})]})]}),0!==i.length||L?i.map(a=>(0,t.jsx)("div",{className:"border border-border rounded p-3 space-y-2",children:m===a.key?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"text-sm font-medium text-foreground mb-2",children:"Edit Token"}),(0,t.jsx)(w.Input,{type:"password",value:j,onChange:e=>{var t;let a;return C(t=e.target.value),R(""),void(A(a=I(t)),t&&!a&&R("Invalid token format. Must start with sk-ant-api or sk-ant-oat"))},placeholder:"sk-ant-api... or sk-ant-oat...",className:"w-full font-mono",autoFocus:!0}),M&&!E&&(0,t.jsxs)("div",{className:"text-xs text-success",children:["→ Detected: ",O[M]]}),E&&(0,t.jsx)("div",{className:"text-xs text-destructive",children:E}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(f.Button,{variant:"outline",size:"sm",onClick:J,className:"active:scale-95",children:(0,t.jsx)(v.X,{className:"w-4 h-4"})}),(0,t.jsx)(f.Button,{size:"sm",onClick:()=>G(a.key),disabled:!M||!!E,className:"active:scale-95",children:(0,t.jsx)(x.Check,{className:"w-4 h-4"})})]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:a.label}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(f.Button,{variant:"ghost",size:"icon-lg",onClick:()=>F(e=>({...e,[a.key]:!e[a.key]})),title:D[a.key]?"Hide value":"Show value",children:D[a.key]?(0,t.jsx)(b,{className:"w-4 h-4 text-muted-foreground"}):(0,t.jsx)(g.Eye,{className:"w-4 h-4 text-muted-foreground"})}),(0,t.jsx)(f.Button,{variant:"ghost",size:"icon-lg",onClick:()=>{p(a.key),C(""),R(""),A(null)},title:"Edit",children:(0,t.jsx)(k.Pencil,{className:"w-4 h-4 text-muted-foreground"})}),"global"!==e.scope&&(0,t.jsx)(f.Button,{variant:"ghost",size:"icon-lg",onClick:()=>Y(a.key),className:"hover:bg-destructive/10",title:"Delete",children:(0,t.jsx)(y.Trash2,{className:"w-4 h-4 text-destructive"})})]})]}),(0,t.jsx)(w.Input,{type:D[a.key]?"text":"password",value:a.value,readOnly:!0,className:"w-full font-mono"})]})},a.key)):(0,t.jsx)("div",{className:"text-center text-muted-foreground text-sm py-4",children:"No Claude tokens configured"})]})]})}var R=e.i(5352),M=e.i(68995);function A(){let[e,r]=(0,a.useState)([]),[s,i]=(0,a.useState)({}),[n,o]=(0,a.useState)(null),[d,c]=(0,a.useState)(!1),u=(0,a.useCallback)(async()=>{try{let[e,t]=await Promise.all([fetch((0,l.apiUrl)("/api/repos")).then(e=>e.json()),fetch((0,l.apiUrl)("/api/tasks")).then(e=>e.json())]);r(e.data?.repos??[]);let a={};for(let e of t.data?.tasks??[]){let t=`${e.owner}/${e.repo}`;a[t]=(a[t]??0)+1}i(a)}catch(e){console.error("Failed to load repositories:",e)}},[]);(0,a.useEffect)(()=>{u()},[u]);let m=async()=>{if(n){c(!0);try{if(!(await fetch((0,l.apiUrl)(`/api/repos/${n.owner}/${n.repo}`),{method:"DELETE"})).ok)throw Error("Failed to delete repository");await u()}catch(e){console.error("Failed to delete repository:",e)}finally{c(!1),o(null)}}};return 0===e.length?(0,t.jsx)("div",{className:"text-sm text-muted-foreground",children:"No repositories cloned yet."}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(M.ConfirmDialog,{open:null!==n,onOpenChange:e=>{e.open||o(null)},title:"Delete Repository",message:n?`Delete ${n.owner}/${n.repo}? This will also delete ${s[`${n.owner}/${n.repo}`]??0} associated task(s), all worktrees, and the bare repository. This action cannot be undone.`:"",confirmLabel:d?"Deleting...":"Delete",cancelLabel:"Cancel",onConfirm:m,variant:"danger"}),(0,t.jsx)("div",{className:"space-y-2",children:e.map(e=>{let a=`${e.owner}/${e.repo}`,r=(0,R.getRepoColor)(e.owner,e.repo),l=s[a]??0;return(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-border p-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("span",{className:`inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium ${r.bg} ${r.text}`,children:a}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:[l," task",1!==l?"s":""]})]}),(0,t.jsx)(f.Button,{variant:"ghost",size:"icon",onClick:()=>o(e),className:"text-muted-foreground hover:text-destructive",children:(0,t.jsx)(y.Trash2,{className:"size-4"})})]},e.id)})})]})}var D=e.i(69068);function F({owner:e,repo:r,onDeleted:s}){let[i,n]=(0,a.useState)(!1),[o,d]=(0,a.useState)(""),[c,u]=(0,a.useState)(!1),m=`${e}/${r}`,p=o===m,h=async()=>{if(p){u(!0);try{if(!(await fetch((0,l.apiUrl)(`/api/repos/${e}/${r}`),{method:"DELETE"})).ok)throw Error("Failed to delete repository");s()}catch(e){console.error("Failed to delete repository:",e)}finally{u(!1),n(!1),d("")}}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"rounded-md border border-destructive/30 p-4 space-y-3",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-destructive",children:"Remove Repository"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Remove this repository and all associated data including tasks, worktrees, and environment variables. This action cannot be undone."})]}),(0,t.jsxs)(f.Button,{variant:"destructive",size:"sm",onClick:()=>n(!0),children:[(0,t.jsx)(y.Trash2,{className:"size-4"}),"Remove Repository"]})]}),(0,t.jsx)(D.Dialog,{open:i,onOpenChange:n,children:(0,t.jsxs)(D.DialogContent,{showCloseButton:!1,children:[(0,t.jsxs)(D.DialogHeader,{children:[(0,t.jsx)(D.DialogTitle,{children:"Remove Repository"}),(0,t.jsxs)(D.DialogDescription,{children:["This will permanently delete ",(0,t.jsx)("strong",{children:m})," and all associated tasks, worktrees, and environment variables."]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("label",{className:"text-xs text-muted-foreground",children:["Type ",(0,t.jsx)("strong",{children:m})," to confirm"]}),(0,t.jsx)(w.Input,{value:o,onChange:e=>d(e.target.value),placeholder:m,autoComplete:"off"})]}),(0,t.jsxs)(D.DialogFooter,{children:[(0,t.jsx)(f.Button,{variant:"outline",size:"sm",onClick:()=>{n(!1),d("")},disabled:c,children:"Cancel"}),(0,t.jsx)(f.Button,{variant:"destructive",size:"sm",onClick:h,disabled:!p||c,children:c?"Removing...":"Remove"})]})]})})]})}var L=e.i(51846);e.s(["default",0,function(){let e=(0,r.useRouter)();(0,L.useDocumentTitle)("settings");let i=()=>{{let e=localStorage.getItem("tsunagi:env-selected-node");if(e)try{return JSON.parse(e)}catch(e){console.error("Failed to parse selected node:",e)}}return{scope:"global",label:"Global"}},[n,o]=(0,a.useState)(null),[d,c]=(0,a.useState)(0),[u,m]=(0,a.useState)({completed:!0,hasGlobalToken:!0});return(0,a.useEffect)(()=>{fetch((0,l.apiUrl)("/api/onboarding/status")).then(e=>e.json()).then(e=>{let t=e.data;m(t),t.completed||t.hasGlobalToken?o(i()):o({scope:"global",label:"Global"})}).catch(e=>{console.error("Failed to fetch onboarding status:",e),o(i())})},[]),(0,a.useEffect)(()=>{n&&localStorage.setItem("tsunagi:env-selected-node",JSON.stringify(n))},[n]),(0,t.jsxs)("div",{className:"h-screen flex flex-col bg-background",children:[(0,t.jsx)("div",{className:"sticky top-0 z-50 p-4 border-b border-border bg-card",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)(f.Button,{variant:"ghost",onClick:()=>e.push("/"),className:"text-primary font-medium hover:bg-primary/10 hover:text-foreground",children:[(0,t.jsx)(s.ArrowLeft,{className:"w-4 h-4"}),"Back to Board"]}),(0,t.jsx)("h1",{className:"text-xl font-bold text-foreground absolute left-1/2 -translate-x-1/2",children:"Settings"})]})}),(0,t.jsxs)("div",{className:"flex-1 flex min-h-0",children:[(0,t.jsx)("div",{className:"w-64 border-r border-border bg-card",children:(0,t.jsx)(p,{selectedNode:n,onNodeSelect:e=>{o(e)},refreshKey:d})}),(0,t.jsx)("div",{className:"flex-1 bg-card p-4 overflow-y-auto",children:n?(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)(P,{selectedNode:n,onboardingStatus:u,onSwitchToGlobal:()=>{o({scope:"global",label:"Global"})}}),(0,t.jsx)(E,{selectedNode:n}),"global"===n.scope&&(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:"Repositories"}),(0,t.jsx)(A,{})]}),"repo"===n.scope&&n.owner&&n.repo&&(0,t.jsx)(F,{owner:n.owner,repo:n.repo,onDeleted:()=>{o({scope:"global",label:"Global"}),c(e=>e+1)}})]}):(0,t.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground text-sm",children:"Select a node from the left panel"})})]})]})}],82341)}]);
|
|
File without changes
|
|
File without changes
|
|
File without changes
|