openryoko 2026.9.30 → 2026.10.2
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/package.json +2 -2
- package/dist/src/connectors/slack/index.d.ts.map +1 -1
- package/dist/src/connectors/slack/index.js +8 -0
- package/dist/src/connectors/slack/index.js.map +1 -1
- package/dist/src/connectors/slack/triage-jev.d.ts +1 -1
- package/dist/src/connectors/slack/triage-jev.d.ts.map +1 -1
- package/dist/src/connectors/slack/triage-jev.js +34 -8
- package/dist/src/connectors/slack/triage-jev.js.map +1 -1
- package/dist/src/shared/types.d.ts +7 -1
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/web/404.html +1 -1
- package/dist/web/__next.__PAGE__.txt +1 -1
- package/dist/web/__next._full.txt +1 -1
- package/dist/web/__next._tree.txt +1 -1
- package/dist/web/_next/static/Oux0UBcCkbX5eOp9-vC4k/_buildManifest.js +11 -0
- package/dist/web/_next/static/Oux0UBcCkbX5eOp9-vC4k/_clientMiddlewareManifest.js +1 -0
- package/dist/web/_next/static/Oux0UBcCkbX5eOp9-vC4k/_ssgManifest.js +1 -0
- package/dist/web/_next/static/chunks/02h65sho8c14h.js +1 -0
- package/dist/web/_next/static/chunks/08i7uo3uz6_fn.js +1 -0
- package/dist/web/_next/static/chunks/19s8vn2kgy7q1.js +1 -0
- package/dist/web/_next/static/chunks/1omdg4m5w9lgx.js +1 -0
- package/dist/web/_next/static/chunks/25nob1new8t4s.js +79 -0
- package/dist/web/_next/static/chunks/3_6klkygi417n.js +1 -0
- package/dist/web/_next/static/chunks/3alc-b00c58_3.css +1 -0
- package/dist/web/_not-found/__next._full.txt +1 -1
- package/dist/web/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/web/_not-found/__next._tree.txt +1 -1
- package/dist/web/_not-found.html +1 -1
- package/dist/web/_not-found.txt +1 -1
- package/dist/web/chat/__next._full.txt +1 -1
- package/dist/web/chat/__next._tree.txt +1 -1
- package/dist/web/chat/__next.chat.__PAGE__.txt +1 -1
- package/dist/web/chat.html +1 -1
- package/dist/web/chat.txt +1 -1
- package/dist/web/cron/__next._full.txt +1 -1
- package/dist/web/cron/__next._tree.txt +1 -1
- package/dist/web/cron/__next.cron.__PAGE__.txt +1 -1
- package/dist/web/cron.html +1 -1
- package/dist/web/cron.txt +1 -1
- package/dist/web/index.html +1 -1
- package/dist/web/index.txt +1 -1
- package/dist/web/kanban/__next._full.txt +1 -1
- package/dist/web/kanban/__next._tree.txt +1 -1
- package/dist/web/kanban/__next.kanban.__PAGE__.txt +1 -1
- package/dist/web/kanban.html +1 -1
- package/dist/web/kanban.txt +1 -1
- package/dist/web/logs/__next._full.txt +1 -1
- package/dist/web/logs/__next._tree.txt +1 -1
- package/dist/web/logs/__next.logs.__PAGE__.txt +1 -1
- package/dist/web/logs.html +1 -1
- package/dist/web/logs.txt +1 -1
- package/dist/web/models/__next._full.txt +1 -1
- package/dist/web/models/__next._tree.txt +1 -1
- package/dist/web/models/__next.models.__PAGE__.txt +1 -1
- package/dist/web/models.html +1 -1
- package/dist/web/models.txt +1 -1
- package/dist/web/org/__next._full.txt +1 -1
- package/dist/web/org/__next._tree.txt +1 -1
- package/dist/web/org/__next.org.__PAGE__.txt +1 -1
- package/dist/web/org.html +1 -1
- package/dist/web/org.txt +1 -1
- package/dist/web/sessions/__next._full.txt +1 -1
- package/dist/web/sessions/__next._tree.txt +1 -1
- package/dist/web/sessions/__next.sessions.__PAGE__.txt +1 -1
- package/dist/web/sessions.html +1 -1
- package/dist/web/sessions.txt +1 -1
- package/dist/web/settings/__next._full.txt +1 -1
- package/dist/web/settings/__next._tree.txt +1 -1
- package/dist/web/settings/__next.settings.__PAGE__.txt +1 -1
- package/dist/web/settings.html +1 -1
- package/dist/web/settings.txt +1 -1
- package/dist/web/skills/__next._full.txt +1 -1
- package/dist/web/skills/__next._tree.txt +1 -1
- package/dist/web/skills/__next.skills.__PAGE__.txt +1 -1
- package/dist/web/skills.html +1 -1
- package/dist/web/skills.txt +1 -1
- package/package.json +2 -2
- package/scripts/sqlite-runtime-smoke.mjs +68 -0
- package/template/skills/openryoko-config/references/jev.md +1 -0
- /package/dist/web/_next/static/{2woRXS8_UTmPXWIztrjue → 70PNIyOj8-2kywAG6J41-}/_buildManifest.js +0 -0
- /package/dist/web/_next/static/{2woRXS8_UTmPXWIztrjue → 70PNIyOj8-2kywAG6J41-}/_clientMiddlewareManifest.js +0 -0
- /package/dist/web/_next/static/{2woRXS8_UTmPXWIztrjue → 70PNIyOj8-2kywAG6J41-}/_ssgManifest.js +0 -0
package/dist/web/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/_next/static/chunks/0ic18n-m7ixyw.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/35b5d-5rn-wqs.js"/><script src="/_next/static/chunks/06f5vu6fx-0vs.js" async=""></script><script src="/_next/static/chunks/0x73a0kl7m-hz.js" async=""></script><script src="/_next/static/chunks/turbopack-13laltw745x5k.js" async=""></script><script src="/_next/static/chunks/2iqxlc9wtxzm2.js" async=""></script><script src="/_next/static/chunks/0ep-6ef-rg6rg.js" async=""></script><meta name="robots" content="noindex"/><title>OpenRyoko</title><meta name="description" content="OpenRyoko — Slackで空気を読んで働くAIゲートウェイ"/><link rel="icon" href="/icon.jpg?icon.3fko7w33xarow.jpg" sizes="800x800" type="image/jpeg"/><link rel="apple-touch-icon" href="/apple-icon.jpg?apple-icon.3fko7w33xarow.jpg" sizes="800x800" type="image/jpeg"/><script>(function(){try{var c=(typeof crypto!=='undefined'&&crypto)||(typeof window!=='undefined'&&window.crypto);if(c&&typeof c.randomUUID!=='function'&&typeof c.getRandomValues==='function'){var hx=[];for(var i=0;i<256;i++){hx[i]=(i+256).toString(16).slice(1)}c.randomUUID=function(){var b=c.getRandomValues(new Uint8Array(16));b[6]=(b[6]&15)|64;b[8]=(b[8]&63)|128;return hx[b[0]]+hx[b[1]]+hx[b[2]]+hx[b[3]]+'-'+hx[b[4]]+hx[b[5]]+'-'+hx[b[6]]+hx[b[7]]+'-'+hx[b[8]]+hx[b[9]]+'-'+hx[b[10]]+hx[b[11]]+hx[b[12]]+hx[b[13]]+hx[b[14]]+hx[b[15]]}}}catch(e){}})();(function(){try{var t=localStorage.getItem('openryoko-theme')||localStorage.getItem('jinn-theme')||'ryoko';if(t==='system'){t=window.matchMedia('(prefers-color-scheme:dark)').matches?'dark':'ryoko'}document.documentElement.setAttribute('data-theme',t)}catch(e){}})()</script><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="flex min-h-dvh items-center justify-center bg-[var(--bg)] text-sm text-[var(--text-tertiary)]">Checking gateway access…</div><script src="/_next/static/chunks/35b5d-5rn-wqs.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[38085,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"ClientProviders\"]\n3:I[59718,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"default\"]\n4:I[73300,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"default\"]\n5:I[36202,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[36202,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"ViewportBoundary\"]\nb:I[36202,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"MetadataBoundary\"]\nd:I[26223,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0ic18n-m7ixyw.css\",\"style\"]\n8:X\n0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0ic18n-m7ixyw.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0ep-6ef-rg6rg.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ja\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var c=(typeof crypto!=='undefined'\u0026\u0026crypto)||(typeof window!=='undefined'\u0026\u0026window.crypto);if(c\u0026\u0026typeof c.randomUUID!=='function'\u0026\u0026typeof c.getRandomValues==='function'){var hx=[];for(var i=0;i\u003c256;i++){hx[i]=(i+256).toString(16).slice(1)}c.randomUUID=function(){var b=c.getRandomValues(new Uint8Array(16));b[6]=(b[6]\u002615)|64;b[8]=(b[8]\u002663)|128;return hx[b[0]]+hx[b[1]]+hx[b[2]]+hx[b[3]]+'-'+hx[b[4]]+hx[b[5]]+'-'+hx[b[6]]+hx[b[7]]+'-'+hx[b[8]]+hx[b[9]]+'-'+hx[b[10]]+hx[b[11]]+hx[b[12]]+hx[b[13]]+hx[b[14]]+hx[b[15]]}}}catch(e){}})();(function(){try{var t=localStorage.getItem('openryoko-theme')||localStorage.getItem('jinn-theme')||'ryoko';if(t==='system'){t=window.matchMedia('(prefers-color-scheme:dark)').matches?'dark':'ryoko'}document.documentElement.setAttribute('data-theme',t)}catch(e){}})()\"}}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0ic18n-m7ixyw.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"2woRXS8_UTmPXWIztrjue\"}\n8:C\na:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}]]\ne:I[9860,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"OpenRyoko\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"OpenRyoko — Slackで空気を読んで働くAIゲートウェイ\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.jpg?icon.3fko7w33xarow.jpg\",\"sizes\":\"800x800\",\"type\":\"image/jpeg\"}],[\"$\",\"link\",\"3\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.jpg?apple-icon.3fko7w33xarow.jpg\",\"sizes\":\"800x800\",\"type\":\"image/jpeg\"}],[\"$\",\"$Le\",\"4\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/_next/static/chunks/0ic18n-m7ixyw.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/35b5d-5rn-wqs.js"/><script src="/_next/static/chunks/06f5vu6fx-0vs.js" async=""></script><script src="/_next/static/chunks/0x73a0kl7m-hz.js" async=""></script><script src="/_next/static/chunks/turbopack-13laltw745x5k.js" async=""></script><script src="/_next/static/chunks/2iqxlc9wtxzm2.js" async=""></script><script src="/_next/static/chunks/0ep-6ef-rg6rg.js" async=""></script><meta name="robots" content="noindex"/><title>OpenRyoko</title><meta name="description" content="OpenRyoko — Slackで空気を読んで働くAIゲートウェイ"/><link rel="icon" href="/icon.jpg?icon.3fko7w33xarow.jpg" sizes="800x800" type="image/jpeg"/><link rel="apple-touch-icon" href="/apple-icon.jpg?apple-icon.3fko7w33xarow.jpg" sizes="800x800" type="image/jpeg"/><script>(function(){try{var c=(typeof crypto!=='undefined'&&crypto)||(typeof window!=='undefined'&&window.crypto);if(c&&typeof c.randomUUID!=='function'&&typeof c.getRandomValues==='function'){var hx=[];for(var i=0;i<256;i++){hx[i]=(i+256).toString(16).slice(1)}c.randomUUID=function(){var b=c.getRandomValues(new Uint8Array(16));b[6]=(b[6]&15)|64;b[8]=(b[8]&63)|128;return hx[b[0]]+hx[b[1]]+hx[b[2]]+hx[b[3]]+'-'+hx[b[4]]+hx[b[5]]+'-'+hx[b[6]]+hx[b[7]]+'-'+hx[b[8]]+hx[b[9]]+'-'+hx[b[10]]+hx[b[11]]+hx[b[12]]+hx[b[13]]+hx[b[14]]+hx[b[15]]}}}catch(e){}})();(function(){try{var t=localStorage.getItem('openryoko-theme')||localStorage.getItem('jinn-theme')||'ryoko';if(t==='system'){t=window.matchMedia('(prefers-color-scheme:dark)').matches?'dark':'ryoko'}document.documentElement.setAttribute('data-theme',t)}catch(e){}})()</script><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="flex min-h-dvh items-center justify-center bg-[var(--bg)] text-sm text-[var(--text-tertiary)]">Checking gateway access…</div><script src="/_next/static/chunks/35b5d-5rn-wqs.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[38085,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"ClientProviders\"]\n3:I[59718,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"default\"]\n4:I[73300,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"default\"]\n5:I[36202,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[36202,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"ViewportBoundary\"]\nb:I[36202,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"MetadataBoundary\"]\nd:I[26223,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0ic18n-m7ixyw.css\",\"style\"]\n8:X\n0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0ic18n-m7ixyw.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0ep-6ef-rg6rg.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ja\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var c=(typeof crypto!=='undefined'\u0026\u0026crypto)||(typeof window!=='undefined'\u0026\u0026window.crypto);if(c\u0026\u0026typeof c.randomUUID!=='function'\u0026\u0026typeof c.getRandomValues==='function'){var hx=[];for(var i=0;i\u003c256;i++){hx[i]=(i+256).toString(16).slice(1)}c.randomUUID=function(){var b=c.getRandomValues(new Uint8Array(16));b[6]=(b[6]\u002615)|64;b[8]=(b[8]\u002663)|128;return hx[b[0]]+hx[b[1]]+hx[b[2]]+hx[b[3]]+'-'+hx[b[4]]+hx[b[5]]+'-'+hx[b[6]]+hx[b[7]]+'-'+hx[b[8]]+hx[b[9]]+'-'+hx[b[10]]+hx[b[11]]+hx[b[12]]+hx[b[13]]+hx[b[14]]+hx[b[15]]}}}catch(e){}})();(function(){try{var t=localStorage.getItem('openryoko-theme')||localStorage.getItem('jinn-theme')||'ryoko';if(t==='system'){t=window.matchMedia('(prefers-color-scheme:dark)').matches?'dark':'ryoko'}document.documentElement.setAttribute('data-theme',t)}catch(e){}})()\"}}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$8\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0ic18n-m7ixyw.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Oux0UBcCkbX5eOp9-vC4k\"}\n8:C\na:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}]]\ne:I[9860,[\"/_next/static/chunks/2iqxlc9wtxzm2.js\",\"/_next/static/chunks/0ep-6ef-rg6rg.js\"],\"IconMark\"]\n7:null\nc:[[\"$\",\"title\",\"0\",{\"children\":\"OpenRyoko\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"OpenRyoko — Slackで空気を読んで働くAIゲートウェイ\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.jpg?icon.3fko7w33xarow.jpg\",\"sizes\":\"800x800\",\"type\":\"image/jpeg\"}],[\"$\",\"link\",\"3\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.jpg?apple-icon.3fko7w33xarow.jpg\",\"sizes\":\"800x800\",\"type\":\"image/jpeg\"}],[\"$\",\"$Le\",\"4\",{}]]\n"])</script></body></html>
|
|
@@ -11,7 +11,7 @@ f:I[38085,["/_next/static/chunks/2iqxlc9wtxzm2.js","/_next/static/chunks/0ep-6ef
|
|
|
11
11
|
11:I[73300,["/_next/static/chunks/2iqxlc9wtxzm2.js","/_next/static/chunks/0ep-6ef-rg6rg.js"],"default"]
|
|
12
12
|
:HL["/_next/static/chunks/0ic18n-m7ixyw.css","style"]
|
|
13
13
|
a:X
|
|
14
|
-
0:{"buildId":"
|
|
14
|
+
0:{"buildId":"Oux0UBcCkbX5eOp9-vC4k","data":[{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/3rmkr8ue0_15d.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/1qed95f5sziiq.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":"$@9","staleTime":"$a","varyParams":null},{"rsc":["$","$1","h",{"children":[null,["$","$Lb",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]}],["$","div",null,{"hidden":true,"children":["$","$Lc",null,{"children":["$","$7",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"OpenRyoko"}],["$","meta","1",{"name":"description","content":"OpenRyoko — Slackで空気を読んで働くAIゲートウェイ"}],["$","link","2",{"rel":"icon","href":"/icon.jpg?icon.3fko7w33xarow.jpg","sizes":"800x800","type":"image/jpeg"}],["$","link","3",{"rel":"apple-touch-icon","href":"/apple-icon.jpg?apple-icon.3fko7w33xarow.jpg","sizes":"800x800","type":"image/jpeg"}],["$","$Ld","4",{}]]}]}]}],null]}],"isPartial":"$@e","staleTime":"$a","varyParams":null},{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ic18n-m7ixyw.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/2iqxlc9wtxzm2.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0ep-6ef-rg6rg.js","async":true}]],["$","html",null,{"lang":"ja","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var c=(typeof crypto!=='undefined'&&crypto)||(typeof window!=='undefined'&&window.crypto);if(c&&typeof c.randomUUID!=='function'&&typeof c.getRandomValues==='function'){var hx=[];for(var i=0;i<256;i++){hx[i]=(i+256).toString(16).slice(1)}c.randomUUID=function(){var b=c.getRandomValues(new Uint8Array(16));b[6]=(b[6]&15)|64;b[8]=(b[8]&63)|128;return hx[b[0]]+hx[b[1]]+hx[b[2]]+hx[b[3]]+'-'+hx[b[4]]+hx[b[5]]+'-'+hx[b[6]]+hx[b[7]]+'-'+hx[b[8]]+hx[b[9]]+'-'+hx[b[10]]+hx[b[11]]+hx[b[12]]+hx[b[13]]+hx[b[14]]+hx[b[15]]}}}catch(e){}})();(function(){try{var t=localStorage.getItem('openryoko-theme')||localStorage.getItem('jinn-theme')||'ryoko';if(t==='system'){t=window.matchMedia('(prefers-color-scheme:dark)').matches?'dark':'ryoko'}document.documentElement.setAttribute('data-theme',t)}catch(e){}})()"}}]}],["$","body",null,{"children":["$","$Lf",null,{"children":["$","$L10",null,{"parallelRouterKey":"children","template":["$","$L11",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}]]}],"isPartial":"$@12","staleTime":"$a","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@13","rootVaryParams":null,"needsRuntimeRequest":"$@14"}
|
|
15
15
|
4:{}
|
|
16
16
|
5:"$0:data:0:rsc:props:children:0:props:serverProvidedParams:params"
|
|
17
17
|
8:null
|
|
@@ -10,7 +10,7 @@ c:I[36202,["/_next/static/chunks/2iqxlc9wtxzm2.js","/_next/static/chunks/0ep-6ef
|
|
|
10
10
|
e:I[36202,["/_next/static/chunks/2iqxlc9wtxzm2.js","/_next/static/chunks/0ep-6ef-rg6rg.js"],"MetadataBoundary"]
|
|
11
11
|
10:I[26223,["/_next/static/chunks/2iqxlc9wtxzm2.js","/_next/static/chunks/0ep-6ef-rg6rg.js"],"default",1]
|
|
12
12
|
:HL["/_next/static/chunks/0ic18n-m7ixyw.css","style"]
|
|
13
|
-
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ic18n-m7ixyw.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/2iqxlc9wtxzm2.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0ep-6ef-rg6rg.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"ja","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var c=(typeof crypto!=='undefined'&&crypto)||(typeof window!=='undefined'&&window.crypto);if(c&&typeof c.randomUUID!=='function'&&typeof c.getRandomValues==='function'){var hx=[];for(var i=0;i<256;i++){hx[i]=(i+256).toString(16).slice(1)}c.randomUUID=function(){var b=c.getRandomValues(new Uint8Array(16));b[6]=(b[6]&15)|64;b[8]=(b[8]&63)|128;return hx[b[0]]+hx[b[1]]+hx[b[2]]+hx[b[3]]+'-'+hx[b[4]]+hx[b[5]]+'-'+hx[b[6]]+hx[b[7]]+'-'+hx[b[8]]+hx[b[9]]+'-'+hx[b[10]]+hx[b[11]]+hx[b[12]]+hx[b[13]]+hx[b[14]]+hx[b[15]]}}}catch(e){}})();(function(){try{var t=localStorage.getItem('openryoko-theme')||localStorage.getItem('jinn-theme')||'ryoko';if(t==='system'){t=window.matchMedia('(prefers-color-scheme:dark)').matches?'dark':'ryoko'}document.documentElement.setAttribute('data-theme',t)}catch(e){}})()"}}]}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/3rmkr8ue0_15d.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/1qed95f5sziiq.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ic18n-m7ixyw.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
13
|
+
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ic18n-m7ixyw.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/2iqxlc9wtxzm2.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0ep-6ef-rg6rg.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"ja","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(function(){try{var c=(typeof crypto!=='undefined'&&crypto)||(typeof window!=='undefined'&&window.crypto);if(c&&typeof c.randomUUID!=='function'&&typeof c.getRandomValues==='function'){var hx=[];for(var i=0;i<256;i++){hx[i]=(i+256).toString(16).slice(1)}c.randomUUID=function(){var b=c.getRandomValues(new Uint8Array(16));b[6]=(b[6]&15)|64;b[8]=(b[8]&63)|128;return hx[b[0]]+hx[b[1]]+hx[b[2]]+hx[b[3]]+'-'+hx[b[4]]+hx[b[5]]+'-'+hx[b[6]]+hx[b[7]]+'-'+hx[b[8]]+hx[b[9]]+'-'+hx[b[10]]+hx[b[11]]+hx[b[12]]+hx[b[13]]+hx[b[14]]+hx[b[15]]}}}catch(e){}})();(function(){try{var t=localStorage.getItem('openryoko-theme')||localStorage.getItem('jinn-theme')||'ryoko';if(t==='system'){t=window.matchMedia('(prefers-color-scheme:dark)').matches?'dark':'ryoko'}document.documentElement.setAttribute('data-theme',t)}catch(e){}})()"}}]}],["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/3rmkr8ue0_15d.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/1qed95f5sziiq.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ic18n-m7ixyw.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"Oux0UBcCkbX5eOp9-vC4k"}
|
|
14
14
|
7:{}
|
|
15
15
|
8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
16
16
|
d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
:HL["/_next/static/chunks/0ic18n-m7ixyw.css","style"]
|
|
2
|
-
0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}},"staleTime":300,"buildId":"
|
|
2
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}},"staleTime":300,"buildId":"Oux0UBcCkbX5eOp9-vC4k"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
self.__MIDDLEWARE_MATCHERS = [];self.__MIDDLEWARE_MATCHERS_CB && self.__MIDDLEWARE_MATCHERS_CB()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,82074,e=>{"use strict";var a=e.i(47565),t=e.i(28225),r=e.i(20750);let n=(0,r.default)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);var l=e.i(77053),s=e.i(42095);let o=(0,r.default)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);var i=e.i(92470),c=e.i(62671),d=e.i(58963),p=e.i(45994),x=e.i(64374),v=e.i(51397),u=e.i(47721),h=e.i(43701);let m=[{value:"claude",label:"Anthropic(Claude)"},{value:"codex",label:"OpenAI(Codex)"},{value:"gemini",label:"Google(Gemini)"}],g=m.filter(e=>"gemini"!==e.value),b="__custom_model__",j=[{value:"claude-opus-5",label:"Opus 5 — 上(既定 / claude-opus-5)"},{value:"claude-fable-5-1",label:"Fable 5.1 — 高度な推論・長時間のエージェント作業"},{value:"claude-opus-4-8",label:"Opus 4.8 — 旧世代(ピン留め用 / claude-opus-4-8)"},{value:"opus",label:"Opus — CLI が解決する最新 Opus に自動追従"},{value:"sonnet",label:"Sonnet 5 — 中(バランス / claude-sonnet-5)"},{value:"claude-haiku-4-5",label:"Haiku 4.5 — 小(明示ID / トリアージ既定)"},{value:"haiku",label:"Haiku 4.5 — 小(軽量・高速 / claude-haiku-4-5)"}],y=[{value:"gpt-6-astra",label:"GPT-6 Astra — 高度な推論・コーディング"},{value:"gpt-5.6-sol",label:"GPT-5.6 Sol — 上(フラッグシップ / 既定)"},{value:"gpt-5.6-terra",label:"GPT-5.6 Terra — 中(バランス・低コスト)"},{value:"gpt-5.6-luna",label:"GPT-5.6 Luna — 小(最速・最安 / トリアージ向け)"},{value:"gpt-5.5",label:"GPT-5.5"},{value:"gpt-5.4",label:"GPT-5.4"},{value:"gpt-5.3-codex",label:"GPT-5.3 Codex"},{value:"gpt-5.2-codex",label:"GPT-5.2 Codex"},{value:"gpt-5.2",label:"GPT-5.2"},{value:"gpt-5.1-codex-max",label:"GPT-5.1 Codex Max"},{value:"gpt-5.1-codex-mini",label:"GPT-5.1 Codex Mini"},{value:"gpt-5-nano",label:"GPT-5 nano — 軽量(トリアージ向け)"}],f=[{value:"auto",label:"Auto — タスクに応じて自動選択(Gemini CLI推奨)"},{value:"pro",label:"Pro — 高度な推論向け(自動追従)"},{value:"flash",label:"Flash — 高速・バランス(自動追従)"},{value:"flash-lite",label:"Flash Lite — 最速・軽量(自動追従)"},{value:"gemini-3.1-pro-preview",label:"Gemini 3.1 Pro Preview"},{value:"gemini-3-pro-preview",label:"Gemini 3 Pro Preview"},{value:"gemini-3-flash-preview",label:"Gemini 3 Flash Preview"},{value:"gemini-2.5-pro",label:"Gemini 2.5 Pro"},{value:"gemini-2.5-flash",label:"Gemini 2.5 Flash"},{value:"gemini-2.5-flash-lite",label:"Gemini 2.5 Flash Lite"}];function w(e){return"claude"===e?j:"gemini"===e?f:y}function N(e){return"claude"===e?"claude-opus-5":"gemini"===e?"gemini-2.5-pro":"gpt-5.6-sol"}function k(e,a){return!!(a&&w(e).some(e=>e.value===a))}let C="w-full bg-[var(--bg-secondary)] border border-[var(--separator)] rounded-[var(--radius-sm)] px-[10px] py-[6px] text-[length:var(--text-footnote)] text-[var(--text-primary)]";function S({id:e,engine:r,model:n,onChange:l,allowAutomatic:s=!1}){let o=k(r,n),[i,c]=(0,t.useState)(!!(n&&!o)),[d,p]=(0,t.useState)(n&&!o?n:""),x=(0,t.useRef)(null),v=(0,t.useRef)(!1),u=`${e}-help`,h=`${e}-custom`,m="claude"===r?"例: claude-sonnet-5-20260801":"gemini"===r?"例: gemini-3.1-pro-preview":"例: gpt-private-preview";(0,t.useEffect)(()=>{let e=!!(n&&!k(r,n));c(e),p(e?n??"":"")},[r,n]),(0,t.useEffect)(()=>{i&&x.current?.focus()},[i]);let g=i?b:n&&o?n:"";return(0,a.jsxs)("div",{className:"space-y-[var(--space-2)]",children:[(0,a.jsxs)("select",{id:e,value:g,"aria-describedby":u,onChange:e=>{let a=e.target.value;if(a===b){p(n&&!o?n:""),c(!0);return}c(!1),l(a||void 0)},className:`${C} cursor-pointer`,children:[s&&(0,a.jsx)("option",{value:"",children:"自動(ベンダー既定)"}),!s&&!n&&(0,a.jsx)("option",{value:"",children:"モデルを選択"}),w(r).map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},e.value)),(0,a.jsx)("option",{value:b,children:"カスタムモデルIDを入力…"})]}),i&&(0,a.jsx)("input",{ref:x,id:h,type:"text",value:d,onChange:e=>p(e.target.value),onBlur:function(){if(v.current){v.current=!1;return}let e=d.trim();if(!e){let e=!!(n&&!o);p(e?n??"":""),c(e);return}l(e)},onKeyDown:e=>{"Enter"===e.key&&e.currentTarget.blur(),"Escape"===e.key&&(e.preventDefault(),v.current=!0,p(n&&!o?n:""),c(!!(n&&!o)),e.currentTarget.blur(),queueMicrotask(()=>{v.current=!1}))},placeholder:m,"aria-label":"カスタムモデルID","aria-describedby":u,autoComplete:"off",className:C}),(0,a.jsxs)("p",{id:u,className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:["一覧にないモデルは「カスタムモデルID」を選び、入力後に確定できます。","codex"===r&&"gpt-6-astra"===n&&(0,a.jsx)(a.Fragment,{children:" GPT-6 Astra の利用には、対応する Codex CLI とアカウントのアクセス権が必要です。"}),"claude"===r&&"claude-fable-5-1"===n&&(0,a.jsx)(a.Fragment,{children:" Fable 5.1 の利用には、Claude Code 2.1.255 以降とアカウントのアクセス権が必要です。"})]})]})}let I="typesafe-key-status-changed",T="w-full bg-[var(--bg-secondary)] border border-[var(--separator)] rounded-[var(--radius-sm)] px-[10px] py-[6px] text-[length:var(--text-footnote)] text-[var(--text-primary)]",A="px-[10px] py-[6px] border border-[var(--separator)] rounded-[var(--radius-sm)] text-[length:var(--text-footnote)] text-[var(--text-primary)] cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed",F="text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",E={cli:"既存の CLI モデルで反応を判定します。",jev:"Jev で判定します。判断が難しい場合や API 障害時も判定用の CLI は起動しません。","jev-fallback":"Jev で判断が難しい場合や API 障害時は、下の CLI モデルで再判定します。","jev-shadow":"Jev と CLI の判定を比較します。実際の反応は CLI が決めます。"},P={missing_key:"API キーが未設定です。",unauthorized:"API キーを認証できませんでした。",rate_limited:"利用制限に達しました。時間をおいて再試行してください。",timeout:"接続がタイムアウトしました。",busy:"別の接続テストが実行中です。少し待って再試行してください。",provider_error:"TypeSafe 側でエラーが発生しました。",network_error:"TypeSafe に接続できませんでした。",invalid_response:"TypeSafe の応答を確認できませんでした。"};function D({label:e,id:t,children:r}){return(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-[var(--space-2)] py-[var(--space-2)]",children:[(0,a.jsx)("label",{htmlFor:t,className:"text-[length:var(--text-subheadline)] text-[var(--text-secondary)]",children:e}),(0,a.jsx)("div",{className:"w-[240px] max-w-full",children:r})]})}function M({config:e={},onChange:r,showCredentials:n=!0}){let l=(0,t.useId)(),s="jev-shadow"===e.backend?"jev-shadow":"jev"===e.backend?e.jev?.fallback==="cli"?"jev-fallback":"jev":"cli",o="cli"!==s,i=e.jev?.useCapabilities!==!1,[c,d]=(0,t.useState)(null),[p,x]=(0,t.useState)(""),[v,h]=(0,t.useState)(null),[m,b]=(0,t.useState)(null),[j,y]=(0,t.useState)(!1);async function f(){let e=p.trim();if(e&&!v){x(""),h("save"),b(null);try{let a=await u.api.saveTypeSafeKey(e);d(a),y(!1),b({error:!1,text:"API キーを保存しました。"}),window.dispatchEvent(new Event(I))}catch{b({error:!0,text:"API キーを保存できませんでした。入力内容と接続を確認してください。"})}finally{h(null)}}}async function w(){if(!v){x(""),h("delete"),b(null);try{let e=await u.api.deleteTypeSafeKey();d(e),y(!1),b({error:!1,text:e.configured?"保存したキーを削除しました。環境変数のキーを使用します。":"保存した API キーを削除しました。"}),window.dispatchEvent(new Event(I))}catch{b({error:!0,text:"API キーを削除できませんでした。"})}finally{h(null)}}}async function N(){if(!v&&c?.configured){h("test"),b(null);try{let e=await u.api.testTypeSafeKey(),a="number"==typeof e.latencyMs&&Number.isFinite(e.latencyMs)&&e.latencyMs>=0?`(${Math.round(e.latencyMs)} ms)`:"";b(e.ok?{error:!1,text:`接続を確認しました${a}。`}:{error:!0,text:P[e.error??""]??"接続を確認できませんでした。"})}catch{b({error:!0,text:"接続を確認できませんでした。"})}finally{h(null)}}}return(0,t.useEffect)(()=>{let e=!0,a=()=>{u.api.getTypeSafeKeyStatus().then(a=>{e&&(d(a),y(!1))},()=>{e&&(d(null),y(!0))})};return a(),window.addEventListener(I,a),()=>{e=!1,window.removeEventListener(I,a)}},[]),(0,a.jsxs)("div",{className:"space-y-[var(--space-2)]",children:[(0,a.jsx)(D,{label:"空気読みを有効化",id:`${l}-enabled`,children:(0,a.jsx)("button",{type:"button",id:`${l}-enabled`,role:"switch","aria-checked":e.enabled??!1,disabled:!e.enabled&&o&&!c?.configured,onClick:()=>r({...e,enabled:!e.enabled}),className:"relative block ml-auto w-[44px] h-[24px] rounded-[12px] border-none cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed",style:{background:e.enabled?"var(--system-green)":"var(--fill-primary)"},children:(0,a.jsx)("span",{className:"absolute top-[2px] w-[20px] h-[20px] rounded-full bg-white",style:{left:e.enabled?22:2}})})}),(0,a.jsx)(D,{label:"判定方式",id:`${l}-mode`,children:(0,a.jsxs)("select",{id:`${l}-mode`,value:s,"aria-describedby":`${l}-mode-help`,onChange:a=>{var t;return r("cli"===(t=a.target.value)||"jev-shadow"===t?{...e,backend:t}:{...e,backend:"jev",jev:{...e.jev,fallback:"jev-fallback"===t?"cli":"none"}})},className:T,children:[(0,a.jsx)("option",{value:"cli",children:"CLI(従来方式)"}),(0,a.jsx)("option",{value:"jev",disabled:!c?.configured,children:"Jev のみ"}),(0,a.jsx)("option",{value:"jev-fallback",disabled:!c?.configured,children:"Jev + CLI 再判定"}),(0,a.jsx)("option",{value:"jev-shadow",disabled:!c?.configured,children:"比較(実際の判定は CLI)"})]})}),(0,a.jsxs)("p",{id:`${l}-mode-help`,className:F,children:[E[s],"方式の変更は、ページ下部の「設定を保存」で反映されます。"]}),n?(0,a.jsxs)("div",{className:"space-y-[var(--space-2)] border-t border-[var(--separator)] pt-[var(--space-3)]",children:[(0,a.jsxs)("p",{className:"text-[length:var(--text-footnote)] text-[var(--text-secondary)]",children:["TypeSafe API キー:",j?"状態を取得できません":c?"stored"===c.source?"保存済み":"environment"===c.source?"環境変数で設定済み":"未設定":"確認中…"]}),(0,a.jsx)("p",{className:F,children:"Jev の利用には API キーが必要です。キーはこの画面から保存でき、保存後は表示されません。すべての Slack インスタンスで共有します。"}),(0,a.jsx)("label",{htmlFor:`${l}-key`,className:"block text-[length:var(--text-footnote)] text-[var(--text-secondary)]",children:c?.configured?"新しい API キー":"API キー"}),(0,a.jsx)("input",{id:`${l}-key`,type:"password",autoComplete:"new-password",spellCheck:!1,value:p,onChange:e=>x(e.target.value),disabled:null!==v,placeholder:c?.configured?"変更する場合だけ入力":"TypeSafe の API キーを入力",className:T}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-[var(--space-2)]",children:[(0,a.jsx)("button",{type:"button",onClick:()=>void f(),disabled:null!==v||!p.trim(),className:A,children:"save"===v?"保存中…":"API キーを保存"}),(0,a.jsx)("button",{type:"button",onClick:()=>void N(),disabled:null!==v||!c?.configured||!!p.trim(),className:A,children:"test"===v?"接続テスト中…":"保存済みキーで接続テスト"}),c?.source==="stored"&&(0,a.jsx)("button",{type:"button",onClick:()=>void w(),disabled:null!==v,className:A,children:"保存したキーを削除"})]}),(0,a.jsx)("p",{className:F,children:"キーの保存・削除はすぐに反映されます。接続テストには固定のサンプル文を使います。"}),m&&(0,a.jsx)("p",{role:m.error?"alert":"status",className:"text-[length:var(--text-footnote)]",style:{color:m.error?"var(--system-red)":"var(--system-green)"},children:m.text})]}):(0,a.jsxs)("p",{className:F,children:["TypeSafe API キーは上の Slack 設定で管理します。",c?.configured?"設定済みです。":"キーを保存すると Jev を選択できます。"]}),o&&c?.configured===!1&&(0,a.jsx)("p",{role:"alert",className:"text-[length:var(--text-footnote)] text-[var(--system-red)]",children:"Jev を使うには、先に API キーを保存してください。"}),o&&(0,a.jsx)(D,{label:"Jev タイムアウト (ms)",id:`${l}-jev-timeout`,children:(0,a.jsx)("input",{id:`${l}-jev-timeout`,type:"number",min:1,max:1e4,value:e.jev?.timeoutMs??"",placeholder:"3000",onChange:a=>r({...e,jev:{...e.jev,timeoutMs:a.target.value?Number(a.target.value):void 0}}),className:T})}),o&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(D,{label:"スキル・担当領域を考慮",id:`${l}-capabilities`,children:(0,a.jsx)("button",{type:"button",id:`${l}-capabilities`,role:"switch","aria-checked":i,"aria-describedby":`${l}-capabilities-help`,onClick:()=>r({...e,jev:{...e.jev,useCapabilities:!i}}),className:"relative block ml-auto w-[44px] h-[24px] rounded-[12px] border-none cursor-pointer",style:{background:i?"var(--system-green)":"var(--fill-primary)"},children:(0,a.jsx)("span",{className:"absolute top-[2px] w-[20px] h-[20px] rounded-full bg-white",style:{left:i?22:2}})})}),(0,a.jsx)("p",{id:`${l}-capabilities-help`,className:F,children:"担当社員の役割と利用可能なスキルから、具体的に手伝える依頼かを判断します。人宛ての会話や雑談には割り込みません。"}),(0,a.jsx)(D,{label:"呼ばれていない時の参加率 (%)",id:`${l}-proactive-percent`,children:(0,a.jsx)("input",{id:`${l}-proactive-percent`,type:"number",min:0,max:100,step:1,disabled:!i,"aria-describedby":`${l}-proactive-help`,value:e.jev?.proactiveParticipationPercent??0,onChange:a=>{let t=Number(a.target.value);Number.isInteger(t)&&t>=0&&t<=100&&r({...e,jev:{...e.jev,proactiveParticipationPercent:t}})},className:T})}),(0,a.jsx)("p",{id:`${l}-proactive-help`,className:F,children:"未解決の困りごとに具体的に役立てる時、呼ばれていなくても提案します。0%で停止、100%で対象の機会すべてに参加。判定の確信度とは別の割合で、名前で呼ばれた時や依頼への応答は減らしません。スキル・担当領域の考慮が必要です。メンション限定のチャンネル設定は優先されます。"})]}),"jev"!==s&&(0,a.jsxs)("div",{className:"border-t border-[var(--separator)] pt-[var(--space-3)]",children:[(0,a.jsx)("p",{className:"text-[length:var(--text-footnote)] text-[var(--text-secondary)]",children:"jev-shadow"===s?"比較に使う CLI モデル":"jev-fallback"===s?"再判定に使う CLI モデル":"CLI モデル"}),(0,a.jsx)(D,{label:"モデルのベンダー",id:`${l}-vendor`,children:(0,a.jsx)("select",{id:`${l}-vendor`,value:e.engine??"codex",className:T,onChange:a=>{let t=a.target.value;r({...e,engine:t,model:"claude"===t?"claude-haiku-4-5":"gpt-5-nano"})},children:g.map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},e.value))})}),(0,a.jsx)(D,{label:"モデル",id:`${l}-model`,children:(0,a.jsx)(S,{id:`${l}-model`,engine:e.engine??"codex",model:e.model??void 0,allowAutomatic:!0,onChange:a=>r({...e,model:a??null})})}),(0,a.jsx)(D,{label:"CLI タイムアウト (ms)",id:`${l}-cli-timeout`,children:(0,a.jsx)("input",{id:`${l}-cli-timeout`,type:"number",min:1,value:e.timeoutMs??"",placeholder:"30000",className:T,onChange:a=>r({...e,timeoutMs:a.target.value?Number(a.target.value):void 0})})}),(0,a.jsx)(D,{label:"CLI パス(任意)",id:`${l}-bin`,children:(0,a.jsx)("input",{id:`${l}-bin`,value:e.bin??"",placeholder:e.engine??"codex",className:T,onChange:a=>r({...e,bin:a.target.value.trim()||void 0})})})]}),(0,a.jsx)(D,{label:"スレッド文脈の取得件数",id:`${l}-context`,children:(0,a.jsx)("input",{id:`${l}-context`,type:"number",min:1,max:10,value:e.threadContextLimit??"",placeholder:"10",className:T,onChange:a=>r({...e,threadContextLimit:a.target.value?Number(a.target.value):void 0})})}),(0,a.jsx)(D,{label:"ペルソナ(任意)",id:`${l}-persona`,children:(0,a.jsx)("input",{id:`${l}-persona`,value:e.persona??"",placeholder:"このボットの得意分野",className:T,onChange:a=>r({...e,persona:a.target.value||void 0})})})]})}var $=e.i(23414),L=e.i(39331);let B="openryoko-update-notification";function _({connectorOptions:e,defaultConnector:r,defaultChannel:n}){let[l,s]=(0,t.useState)(null),[c,d]=(0,t.useState)({enabled:!1,schedule:"0 9 * * *",timezone:"",connector:r??"",channel:n??"",maintenanceMode:"review"}),[p,x]=(0,t.useState)(!0),[v,h]=(0,t.useState)(!1),[m,g]=(0,t.useState)(!1),[b,j]=(0,t.useState)(null),y=(0,t.useCallback)(()=>{x(!0),u.api.getCronJobs().then(e=>{let a=e.find(e=>e.id===B||"update-notification"===e.kind);a?(s(a),d({enabled:a.enabled,schedule:a.schedule||"0 9 * * *",timezone:a.timezone||Intl.DateTimeFormat().resolvedOptions().timeZone,connector:a.delivery?.connector||r||"",channel:a.delivery?.channel||n||"",maintenanceMode:a.maintenance?.mode??"review"})):d(e=>({...e,timezone:e.timezone||Intl.DateTimeFormat().resolvedOptions().timeZone,connector:e.connector||r||"",channel:e.channel||n||""}))}).catch(e=>{j({type:"error",message:e instanceof Error?e.message:"通知設定を取得できませんでした"})}).finally(()=>x(!1))},[n,r]);(0,t.useEffect)(()=>{y()},[y]);let f=Array.from(new Set([...e,...c.connector?[c.connector]:[]]));async function w(){if(j(null),5!==c.schedule.trim().split(/\s+/).length)return void j({type:"error",message:"Cron式は「分 時 日 月 曜日」の5項目で入力してください"});if(c.enabled&&(!c.connector.trim()||!c.channel.trim()))return void j({type:"error",message:"通知を有効にするにはコネクタと送信先が必要です"});h(!0);let e={id:l?.id||B,name:"OpenRyoko Update Notification",kind:"update-notification",enabled:c.enabled,schedule:c.schedule.trim(),timezone:c.timezone.trim()||void 0,prompt:"",maintenance:{mode:c.maintenanceMode},delivery:c.connector.trim()&&c.channel.trim()?{connector:c.connector.trim(),channel:c.channel.trim()}:void 0};try{let a=l?await u.api.updateCronJob(l.id,e):await u.api.createCronJob(e);s(a),j({type:"success",message:c.enabled?"更新通知と運用点検を保存しました。新しいリリースや未点検の改善候補がある時に結果を知らせます。":"更新通知を無効で保存しました。"})}catch(e){j({type:"error",message:e instanceof Error?e.message:"保存に失敗しました"})}finally{h(!1)}}async function N(){if(l){g(!0),j(null);try{await u.api.triggerCronJob(l.id),j({type:"success",message:"更新確認を開始しました。新しいリリースや未点検の改善候補がある場合にチャットへ届きます。"})}catch(e){j({type:"error",message:e instanceof Error?e.message:"更新確認を開始できませんでした"})}finally{g(!1)}}}async function k(){if(l){g(!0),j(null);try{await u.api.runMaintenance(l.id,"review"),j({type:"success",message:"点検を開始しました。設定を変更せず、改善案を通知先へ送ります。"})}catch(e){j({type:"error",message:e instanceof Error?e.message:"点検を開始できませんでした"})}finally{g(!1)}}}return p?(0,a.jsxs)("div",{className:"flex items-center gap-2 py-3 text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:[(0,a.jsx)(i.Loader2,{size:14,className:"animate-spin"}),"更新通知設定を読み込み中…"]}):(0,a.jsxs)("div",{className:"mt-[var(--space-4)] border-t border-[var(--separator)] pt-[var(--space-4)]",children:[(0,a.jsxs)("div",{className:"mb-[var(--space-3)] flex items-start gap-[var(--space-3)]",children:[(0,a.jsx)($.BellRing,{size:18,className:"mt-0.5 shrink-0 text-[var(--system-blue)]","aria-hidden":"true"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-[length:var(--text-footnote)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:"アップデート通知と運用点検"}),(0,a.jsx)("p",{className:"mt-1 text-[length:var(--text-caption2)] leading-relaxed text-[var(--text-tertiary)]",children:"定期確認はコードで行い、新しいリリースや未点検の改善候補がある時だけAIを起動します。導入済み機能に合わせてCronやJevの利用を点検し、同じ内容の通知は繰り返しません。"})]})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between gap-4 py-2",children:[(0,a.jsx)("label",{htmlFor:"update-notification-enabled",className:"text-[length:var(--text-subheadline)] text-[var(--text-secondary)]",children:"チャット通知"}),(0,a.jsx)("button",{id:"update-notification-enabled",type:"button",role:"switch","aria-checked":c.enabled,onClick:()=>d(e=>({...e,enabled:!e.enabled})),className:"relative h-6 w-11 shrink-0 rounded-full border-none transition-colors",style:{background:c.enabled?"var(--system-green)":"var(--fill-primary)"},children:(0,a.jsx)("span",{className:"absolute top-0.5 h-5 w-5 rounded-full bg-white shadow-sm transition-[left]",style:{left:c.enabled?22:2}})})]}),(0,a.jsxs)("div",{className:"grid gap-[var(--space-3)] pt-2 sm:grid-cols-2",children:[(0,a.jsxs)("label",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:["Cron式",(0,a.jsx)("input",{value:c.schedule,onChange:e=>d(a=>({...a,schedule:e.target.value})),placeholder:"0 9 * * *",className:"apple-input mt-1 w-full rounded-[var(--radius-sm)] border border-[var(--separator)] bg-[var(--bg-secondary)] px-[10px] py-[6px] font-mono text-[length:var(--text-footnote)] text-[var(--text-primary)]"})]}),(0,a.jsxs)("label",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:["タイムゾーン",(0,a.jsx)("input",{value:c.timezone,onChange:e=>d(a=>({...a,timezone:e.target.value})),placeholder:"Asia/Tokyo",className:"apple-input mt-1 w-full rounded-[var(--radius-sm)] border border-[var(--separator)] bg-[var(--bg-secondary)] px-[10px] py-[6px] text-[length:var(--text-footnote)] text-[var(--text-primary)]"})]}),(0,a.jsxs)("label",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:["コネクタ",(0,a.jsxs)("select",{value:c.connector,onChange:e=>d(a=>({...a,connector:e.target.value})),className:"mt-1 w-full rounded-[var(--radius-sm)] border border-[var(--separator)] bg-[var(--bg-secondary)] px-[10px] py-[6px] text-[length:var(--text-footnote)] text-[var(--text-primary)]",children:[(0,a.jsx)("option",{value:"",children:"選択してください"}),f.map(e=>(0,a.jsx)("option",{value:e,children:e},e))]})]}),(0,a.jsxs)("label",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:["送信先",(0,a.jsx)("input",{value:c.channel,onChange:e=>d(a=>({...a,channel:e.target.value})),placeholder:"#general またはチャンネルID",className:"apple-input mt-1 w-full rounded-[var(--radius-sm)] border border-[var(--separator)] bg-[var(--bg-secondary)] px-[10px] py-[6px] text-[length:var(--text-footnote)] text-[var(--text-primary)]"})]})]}),(0,a.jsxs)("label",{className:"mt-3 block text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:["導入済み機能に合わせた運用点検",(0,a.jsxs)("select",{value:c.maintenanceMode,onChange:e=>d(a=>({...a,maintenanceMode:e.target.value})),className:"mt-1 w-full rounded-[var(--radius-sm)] border border-[var(--separator)] bg-[var(--bg-secondary)] px-[10px] py-[6px] text-[length:var(--text-footnote)] text-[var(--text-primary)]",children:[(0,a.jsx)("option",{value:"review",children:"点検・改善案を通知(既定)"}),(0,a.jsx)("option",{value:"apply",children:"検証できるローカル修正も実施"}),(0,a.jsx)("option",{value:"off",children:"運用点検は行わない"})]})]}),(0,a.jsx)("p",{className:"mt-1 text-[length:var(--text-caption2)] leading-relaxed text-[var(--text-tertiary)]",children:"更新確認と同じスケジュール・通知先を使います。自動修正でも、通知先・実行時刻の変更やJevなど外部サービスの新規有効化は提案に留めます。"}),b&&(0,a.jsx)("p",{className:`mt-3 text-[length:var(--text-caption1)] ${"success"===b.type?"text-[var(--system-green)]":"text-[var(--system-red)]"}`,role:"error"===b.type?"alert":"status",children:b.message}),(0,a.jsxs)("div",{className:"mt-[var(--space-3)] flex flex-wrap justify-end gap-[var(--space-2)]",children:[l&&(0,a.jsx)("button",{type:"button",onClick:k,disabled:m||v,className:"rounded-[var(--radius-sm)] border border-[var(--separator)] bg-[var(--fill-tertiary)] px-3 py-1.5 text-[length:var(--text-caption1)] text-[var(--text-secondary)] disabled:opacity-60",children:"点検を実行"}),l&&(0,a.jsxs)("button",{type:"button",onClick:N,disabled:m||v,className:"inline-flex items-center gap-1.5 rounded-[var(--radius-sm)] border border-[var(--separator)] bg-[var(--fill-tertiary)] px-3 py-1.5 text-[length:var(--text-caption1)] font-[var(--weight-medium)] text-[var(--text-secondary)] disabled:opacity-60",children:[m?(0,a.jsx)(i.Loader2,{size:13,className:"animate-spin"}):(0,a.jsx)(L.Play,{size:13}),"今すぐ確認"]}),(0,a.jsxs)("button",{type:"button",onClick:w,disabled:v||m,className:"inline-flex items-center gap-1.5 rounded-[var(--radius-sm)] border-none bg-[var(--accent)] px-3 py-1.5 text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--accent-contrast)] disabled:opacity-60",children:[v?(0,a.jsx)(i.Loader2,{size:13,className:"animate-spin"}):(0,a.jsx)(o,{size:13}),"通知設定を保存"]})]})]})}let O=[{label:"Red",value:"#EF4444"},{label:"Orange",value:"#F97316"},{label:"Amber",value:"#F59E0B"},{label:"Yellow",value:"#EAB308"},{label:"Lime",value:"#84CC16"},{label:"Green",value:"#22C55E"},{label:"Emerald",value:"#10B981"},{label:"Cyan",value:"#06B6D4"},{label:"Blue",value:"#3B82F6"},{label:"Indigo",value:"#6366F1"},{label:"Violet",value:"#8B5CF6"},{label:"Pink",value:"#EC4899"}];function G({title:e,children:t}){return(0,a.jsxs)("section",{className:"mb-[var(--space-6)]",children:[(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] tracking-[var(--tracking-wide)] uppercase text-[var(--text-tertiary)] px-[var(--space-2)] pb-[var(--space-2)]",children:e}),(0,a.jsx)("div",{className:"bg-[var(--material-regular)] rounded-[var(--radius-md)] border border-[var(--separator)] p-[var(--space-4)]",children:t})]})}function z({label:e,htmlFor:t,children:r}){return(0,a.jsxs)("div",{className:"flex items-center justify-between py-[var(--space-2)] gap-[var(--space-4)]",children:[(0,a.jsx)("label",{htmlFor:t,className:"text-[length:var(--text-subheadline)] text-[var(--text-secondary)] shrink-0",children:e}),(0,a.jsx)("div",{className:"w-[240px] shrink-0",children:r})]})}function J({value:e,onChange:t,type:r="text",placeholder:n}){return(0,a.jsx)("input",{type:r,value:e,onChange:e=>t(e.target.value),placeholder:n,className:"apple-input w-full bg-[var(--bg-secondary)] border border-[var(--separator)] rounded-[var(--radius-sm)] px-[10px] py-[6px] text-[length:var(--text-footnote)] text-[var(--text-primary)]"})}function R({id:e,value:t,onChange:r,options:n}){return(0,a.jsx)("select",{id:e,value:t,onChange:e=>r(e.target.value),className:"w-full bg-[var(--bg-secondary)] border border-[var(--separator)] rounded-[var(--radius-sm)] px-[10px] py-[6px] text-[length:var(--text-footnote)] text-[var(--text-primary)] cursor-pointer",children:n.map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},e.value))})}function W({checked:e,onChange:t}){return(0,a.jsx)("button",{role:"switch","aria-checked":e,onClick:()=>t(!e),className:"w-[44px] h-[24px] rounded-[12px] border-none cursor-pointer relative shrink-0 transition-[background] duration-200 ease-[var(--ease-smooth)]",style:{background:e?"var(--system-green)":"var(--fill-primary)"},children:(0,a.jsx)("span",{className:"absolute top-[2px] w-[20px] h-[20px] rounded-full bg-white shadow-[0_1px_3px_rgba(0,0,0,0.2)] transition-[left] duration-200 ease-[var(--ease-spring)]",style:{left:e?22:2}})})}let H={en:"English",bg:"Bulgarian",de:"German",fr:"French",es:"Spanish",it:"Italian",pt:"Portuguese",ru:"Russian",zh:"Chinese",ja:"Japanese",ko:"Korean",ar:"Arabic",hi:"Hindi",tr:"Turkish",pl:"Polish",nl:"Dutch",sv:"Swedish",cs:"Czech",el:"Greek",ro:"Romanian",uk:"Ukrainian",he:"Hebrew",da:"Danish",fi:"Finnish",hu:"Hungarian",no:"Norwegian",sk:"Slovak",hr:"Croatian",ca:"Catalan",th:"Thai",vi:"Vietnamese",id:"Indonesian",ms:"Malay",tl:"Filipino",sr:"Serbian",lt:"Lithuanian",lv:"Latvian",sl:"Slovenian",et:"Estonian"};function U(){let[e,r]=(0,t.useState)(null),[n,l]=(0,t.useState)(!1),[s,o]=(0,t.useState)("");if((0,t.useEffect)(()=>{u.api.sttStatus().then(r).catch(()=>{})},[]),(0,t.useEffect)(()=>{if(!e?.downloading)return;let a=setInterval(()=>{u.api.sttStatus().then(r).catch(()=>{})},1500);return()=>clearInterval(a)},[e?.downloading]),!e)return null;let i=Object.entries(H).filter(([a])=>!e.languages.includes(a)).sort((e,a)=>e[1].localeCompare(a[1]));return(0,a.jsxs)(G,{title:"音声入力",children:[(0,a.jsxs)("div",{className:"flex items-center gap-[var(--space-3)] mb-[var(--space-4)]",children:[(0,a.jsx)("div",{className:"w-[8px] h-[8px] rounded-full shrink-0",style:{background:e.available?"var(--system-green)":"var(--system-red)"}}),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("div",{className:"text-[length:var(--text-subheadline)] font-[var(--weight-medium)] text-[var(--text-primary)]",children:e.available?`Whisper ${(e.model||"small").charAt(0).toUpperCase()+(e.model||"small").slice(1)}`:"No model installed"}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:e.available?"Offline speech recognition ready":"Download a model to enable voice input"})]})]}),!e.available&&!e.downloading&&(0,a.jsx)("button",{onClick:function(){u.api.sttDownload().then(()=>r(e=>e?{...e,downloading:!0,progress:0}:e)).catch(()=>{})},className:"w-full p-[var(--space-3)] rounded-[var(--radius-md)] bg-[var(--accent)] text-[var(--accent-contrast)] border-none cursor-pointer text-[length:var(--text-footnote)] font-[var(--weight-semibold)] mb-[var(--space-4)]",children:"Download Whisper Small (~500MB)"}),e.downloading&&(0,a.jsxs)("div",{className:"mb-[var(--space-4)]",children:[(0,a.jsxs)("div",{className:"flex justify-between mb-[var(--space-2)] text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:[(0,a.jsx)("span",{children:"モデルをダウンロード中…"}),(0,a.jsxs)("span",{children:[e.progress,"%"]})]}),(0,a.jsx)("div",{className:"h-[6px] rounded-[3px] bg-[var(--fill-tertiary)] overflow-hidden",children:(0,a.jsx)("div",{className:"h-full rounded-[3px] bg-[var(--accent)] transition-[width] duration-300 ease-out",style:{width:`${e.progress}%`}})})]}),e.available&&(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)("div",{className:"border-t border-[var(--separator)] mt-[var(--space-2)] pt-[var(--space-3)]",children:[(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mb-[var(--space-2)]",children:"文字起こし言語"}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mb-[var(--space-3)]",children:"最初の言語がデフォルトになります。複数追加するとチャットで言語ピッカーが表示されます。"}),(0,a.jsx)("div",{className:"flex flex-wrap gap-[var(--space-2)] mb-[var(--space-3)]",children:e.languages.map(t=>(0,a.jsxs)("div",{className:"inline-flex items-center gap-[var(--space-1)] px-[8px] py-[3px] rounded-[var(--radius-sm)] bg-[var(--fill-secondary)] text-[length:var(--text-caption1)] font-[var(--weight-medium)] text-[var(--text-primary)]",children:[(0,a.jsx)("span",{className:"font-[family-name:var(--font-mono)] uppercase text-[length:var(--text-caption2)] font-[var(--weight-semibold)] text-[var(--accent)] mr-[2px]",children:t}),H[t]||t,e.languages.length>1&&(0,a.jsx)("button",{onClick:()=>(function(a){if(!e||e.languages.length<=1)return;let t=e.languages.filter(e=>e!==a);l(!0),u.api.sttUpdateConfig(t).then(()=>r(e=>e?{...e,languages:t}:e)).catch(()=>{}).finally(()=>l(!1))})(t),disabled:n,"aria-label":`Remove ${H[t]||t}`,className:"bg-none border-none cursor-pointer p-0 ml-[2px] text-[var(--text-quaternary)] text-[14px] leading-none flex items-center",children:"×"})]},t))}),(0,a.jsxs)("div",{className:"flex gap-[var(--space-2)]",children:[(0,a.jsxs)("select",{value:s,onChange:e=>o(e.target.value),className:"flex-1 bg-[var(--bg-secondary)] border border-[var(--separator)] rounded-[var(--radius-sm)] px-[10px] py-[6px] text-[length:var(--text-footnote)] cursor-pointer",style:{color:s?"var(--text-primary)":"var(--text-tertiary)"},children:[(0,a.jsx)("option",{value:"",children:"言語を追加…"}),i.map(([e,t])=>(0,a.jsxs)("option",{value:e,children:[e.toUpperCase()," — ",t]},e))]}),(0,a.jsx)("button",{onClick:function(){if(!s||!e||e.languages.includes(s))return;let a=[...e.languages,s];l(!0),o(""),u.api.sttUpdateConfig(a).then(()=>r(e=>e?{...e,languages:a}:e)).catch(()=>{}).finally(()=>l(!1))},disabled:!s||n,className:"px-[14px] py-[6px] rounded-[var(--radius-sm)] border-none text-[length:var(--text-footnote)] font-[var(--weight-semibold)] shrink-0",style:{background:s?"var(--accent)":"var(--fill-tertiary)",color:s?"var(--accent-contrast)":"var(--text-quaternary)",cursor:s?"pointer":"default"},children:"Add"})]})]})})]})}function q(){let e,{settings:r}=(0,d.useSettings)(),[n,l]=(0,t.useState)(!1),[s,o]=(0,t.useState)(!0),i=JSON.stringify({display_information:{name:e=(r.portalName??"").trim()||"Ryoko"},features:{app_home:{messages_tab_enabled:!0,messages_tab_read_only_enabled:!1},bot_user:{display_name:e,always_online:!0},assistant_view:{assistant_description:`${e} — your AI assistant`,suggested_prompts:[{title:"What can you do?",message:"What can you help me with?"}]}},oauth_config:{scopes:{bot:["app_mentions:read","assistant:write","canvases:read","canvases:write","channels:history","channels:read","chat:write","chat:write.customize","files:read","files:write","groups:history","groups:read","im:history","im:read","im:write","mpim:history","mpim:read","mpim:write","reactions:read","reactions:write","users:read","users:read.email"],user:["channels:history","channels:read","files:read","groups:history","groups:read","im:history","im:read","mpim:history","mpim:read","search:read","users:read","bookmarks:read"]}},settings:{event_subscriptions:{bot_events:["app_mention","assistant_thread_context_changed","assistant_thread_started","message.channels","message.groups","message.im","message.mpim","reaction_added"]},socket_mode_enabled:!0}},null,2);return(0,a.jsxs)("div",{className:"border border-[var(--separator)] rounded-[var(--radius-md)] bg-[var(--fill-quaternary)] p-[var(--space-3)] mb-[var(--space-3)]",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>o(e=>!e),className:"flex items-center justify-between w-full text-left cursor-pointer",children:[(0,a.jsx)("span",{className:"text-[length:var(--text-body)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:"Slack App セットアップガイド"}),(0,a.jsx)("span",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:s?"閉じる":"開く"})]}),s&&(0,a.jsxs)("div",{className:"mt-[var(--space-3)]",children:[(0,a.jsxs)("ol",{className:"list-decimal pl-[20px] text-[length:var(--text-caption1)] text-[var(--label-secondary)] leading-relaxed mb-[var(--space-3)] space-y-[2px]",children:[(0,a.jsxs)("li",{children:[(0,a.jsx)("a",{href:"https://api.slack.com/apps",target:"_blank",rel:"noopener noreferrer",className:"text-[var(--accent)] underline",children:"Slack API の Your Apps ページ"}),"を開き、「Create New App」を選択。"]}),(0,a.jsx)("li",{children:"「From a manifest」を選び、対象ワークスペースを指定。"}),(0,a.jsx)("li",{children:"下のJSONをコピーして貼り付け、「Create」で作成。"}),(0,a.jsxs)("li",{children:["「Install to Workspace」を実行し、OAuth & Permissions の「Bot User OAuth Token」(",(0,a.jsx)("code",{children:"xoxb-…"}),")を下の Bot Token に貼り付け。"]}),(0,a.jsxs)("li",{children:["「Basic Information」→「App-Level Tokens」で ",(0,a.jsx)("code",{children:"connections:write"})," ","スコープ付きトークンを発行し(",(0,a.jsx)("code",{children:"xapp-…"}),")、下の App Token に貼り付け。"]})]}),(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("button",{type:"button",onClick:function(){navigator.clipboard.writeText(i).then(()=>{l(!0),setTimeout(()=>l(!1),1500)})},"aria-label":"Copy manifest JSON",className:"absolute top-2 right-2 py-0.5 px-2 text-[11px] rounded-[var(--radius-sm)] bg-[var(--fill-secondary)] text-[var(--text-secondary)] border border-[var(--separator)] cursor-pointer",children:n?"コピー済み":"コピー"}),(0,a.jsx)("pre",{className:"bg-[var(--fill-tertiary)] border border-[var(--separator)] rounded-[var(--radius-md)] py-[var(--space-3)] px-[var(--space-4)] overflow-x-auto text-[12px] leading-normal font-['SF_Mono',Menlo,monospace] text-[var(--text-primary)] max-h-[280px]",children:(0,a.jsx)("code",{children:i})})]})]})]})}e.s(["default",0,function(){(0,p.useBreadcrumbs)([{label:"Settings"}]);let{settings:e,setAccentColor:r,setPortalName:b,setPortalSubtitle:j,setOperatorName:y,setPortalEmoji:f,setLanguage:w,resetAll:k}=(0,d.useSettings)(),{theme:C,setTheme:I}=(0,x.useTheme)(),[T,A]=(0,t.useState)(e.portalName??""),[F,E]=(0,t.useState)(e.portalSubtitle??""),[P,D]=(0,t.useState)(e.operatorName??""),[$,L]=(0,t.useState)(e.portalEmoji??""),[B,H]=(0,t.useState)(e.language??"English"),[K,V]=(0,t.useState)(e.accentColor??""),[Y,Q]=(0,t.useState)(!1),[Z,X]=(0,t.useState)({}),[ee,ea]=(0,t.useState)(!0),[et,er]=(0,t.useState)(null),[en,el]=(0,t.useState)(!1),[es,eo]=(0,t.useState)(null),[ei,ec]=(0,t.useState)(null),[ed,ep]=(0,t.useState)("unknown"),[ex,ev]=(0,t.useState)([]),[eu,eh]=(0,t.useState)(null),[em,eg]=(0,t.useState)(!1),[eb,ej]=(0,t.useState)(null);(0,t.useEffect)(()=>{u.api.getOrg().then(e=>{e?.employees&&ev(e.employees.map(e=>"string"==typeof e?{name:e,displayName:e}:{name:e.name,displayName:e.displayName||e.name}))}).catch(()=>{})},[]);let ey=async()=>{eg(!0),ej(null);try{let e=await fetch("/api/connectors/slack/channels"),a=await e.json();if(a?.ok)eh(a.channels??[]);else{let t=a?.error||`HTTP ${e.status}`;"missing_scope"===t?ej("Bot に canvases / channels scope が足りません。上のSlack App Manifestを貼り直して再インストールしてください。"):"slack_not_configured"===t?ej("Slack コネクタが未起動です。先に Bot Token / App Token を保存して再起動してください。"):ej(`チャンネル取得失敗: ${t}`),eh(null)}}catch(e){ej(e instanceof Error?e.message:String(e)),eh(null)}finally{eg(!1)}};function ef(){ea(!0),u.api.getConfig().then(e=>{X(e),er(null)}).catch(e=>er(e.message)).finally(()=>ea(!1))}function ew(e,a){X(t=>{let r=structuredClone(t),n=r;for(let a=0;a<e.length-1;a++)n[e[a]]&&"object"==typeof n[e[a]]||(n[e[a]]={}),n=n[e[a]];return n[e[e.length-1]]=a,"max"===n.effortLevel&&("engines.codex.model"===e.join(".")&&"gpt-6-astra"!==a||"engines.claude.model"===e.join(".")&&"claude-fable-5-1"!==a)&&(n.effortLevel="default"),r})}(0,t.useEffect)(()=>{A(e.portalName??""),E(e.portalSubtitle??""),D(e.operatorName??""),L(e.portalEmoji??""),H(e.language??"English"),V(e.accentColor??"")},[e.portalName,e.portalSubtitle,e.operatorName,e.portalEmoji,e.language,e.accentColor]),(0,t.useEffect)(()=>{ef()},[]),(0,t.useEffect)(()=>{if(!Z.connectors?.whatsapp)return;let e=!1;async function a(){try{let a=await fetch("/api/status"),t=await a.json(),r=t?.connectors?.whatsapp?.status;if(e||ep(r??"unknown"),"qr_pending"===r){let a=await fetch("/api/connectors/whatsapp/qr"),t=await a.json();e||ec(t.qr)}else e||ec(null)}catch{}}a();let t=setInterval(()=>{a()},1e4);return()=>{e=!0,clearInterval(t)}},[Z.connectors?.whatsapp]);let eN=Z.engines?.default==="codex"?"codex":Z.engines?.default==="gemini"?"gemini":"claude";return(0,a.jsx)(c.PageLayout,{children:(0,a.jsx)("div",{className:"h-full overflow-y-auto bg-[var(--bg)]",children:(0,a.jsxs)("div",{className:"max-w-[640px] mx-auto px-[var(--space-4)] py-[var(--space-6)] pb-[var(--space-12)]",children:[(0,a.jsx)("h1",{className:"text-[length:var(--text-title1)] font-[var(--weight-bold)] tracking-[var(--tracking-tight)] text-[var(--text-primary)] mb-[var(--space-6)]",children:"Settings"}),(0,a.jsxs)(G,{title:"外観",children:[(0,a.jsx)("div",{className:"text-[length:var(--text-footnote)] font-[var(--weight-medium)] text-[var(--text-secondary)] mb-[var(--space-2)]",children:"Theme"}),(0,a.jsx)("div",{className:"grid grid-cols-5 gap-[var(--space-2)] mb-[var(--space-4)]",children:v.THEMES.map(e=>{let t=C===e.id;return(0,a.jsxs)("button",{onClick:()=>I(e.id),className:"flex flex-col items-center gap-[var(--space-1)] px-[var(--space-2)] py-[var(--space-3)] rounded-[var(--radius-md)] bg-[var(--fill-quaternary)] cursor-pointer transition-all duration-150 ease-[var(--ease-smooth)]",style:{border:t?"2px solid var(--accent)":"2px solid var(--separator)"},children:[(0,a.jsx)("span",{className:"text-[24px]",children:e.emoji}),(0,a.jsx)("span",{className:"text-[length:var(--text-caption2)]",style:{fontWeight:t?"var(--weight-semibold)":"var(--weight-medium)",color:t?"var(--accent)":"var(--text-secondary)"},children:e.label})]},e.id)})}),(0,a.jsx)("div",{className:"text-[length:var(--text-footnote)] font-[var(--weight-medium)] text-[var(--text-secondary)] mb-[var(--space-2)]",children:"Accent Color"}),(0,a.jsx)("div",{className:"flex flex-wrap gap-[var(--space-2)] mb-[var(--space-3)]",children:O.map(t=>{let n=e.accentColor===t.value;return(0,a.jsx)("button",{onClick:()=>r(t.value),"aria-label":t.label,title:t.label,className:"w-[32px] h-[32px] rounded-full cursor-pointer transition-all duration-100 ease-[var(--ease-smooth)] flex items-center justify-center",style:{background:t.value,border:n?"2px solid var(--text-primary)":"2px solid transparent",outline:n?`2px solid ${t.value}`:"none",outlineOffset:2},children:n&&(0,a.jsx)(s.Check,{size:14,color:"#fff",strokeWidth:3})},t.value)})}),(0,a.jsxs)("div",{className:"flex items-center gap-[var(--space-3)]",children:[(0,a.jsxs)("label",{className:"flex items-center gap-[var(--space-2)] text-[length:var(--text-footnote)] text-[var(--text-secondary)] cursor-pointer",children:["Custom:",(0,a.jsx)("input",{type:"color",value:e.accentColor??"#3B82F6",onChange:e=>r(e.target.value),className:"w-[28px] h-[28px] border-none rounded-full cursor-pointer bg-transparent p-0"})]}),(0,a.jsx)("input",{type:"text",placeholder:"#3B82F6",value:K,onChange:e=>{V(e.target.value),/^#[0-9a-fA-F]{6}$/.test(e.target.value)&&r(e.target.value)},className:"apple-input w-[90px] px-[8px] py-[4px] text-[length:var(--text-caption1)] bg-[var(--bg-secondary)] border border-[var(--separator)] rounded-[var(--radius-sm)] text-[var(--text-primary)] font-mono"}),e.accentColor&&(0,a.jsxs)("button",{onClick:()=>r(null),className:"text-[length:var(--text-footnote)] text-[var(--system-blue)] bg-none border-none cursor-pointer p-0 inline-flex items-center gap-[4px]",children:[(0,a.jsx)(n,{size:12}),"リセット"]})]})]}),(0,a.jsx)(G,{title:"COO絵文字",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)] mb-[var(--space-3)]",children:"サイドバーに表示される COO の絵文字を選択してください。"}),(0,a.jsxs)("div",{className:"relative flex items-center gap-[var(--space-4)]",children:[(0,a.jsx)("button",{onClick:()=>Q(!Y),className:"text-4xl cursor-pointer bg-transparent border-none p-0",children:e.portalEmoji??"🧞"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-[length:var(--text-body)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:e.operatorName||"Jimbo"}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-tertiary)]",children:"絵文字をクリックして変更"})]}),Y&&(0,a.jsx)(h.EmojiPicker,{current:e.portalEmoji??"🧞",onSelect:e=>{f(e),Q(!1)},onClose:()=>Q(!1)})]})]})}),(0,a.jsx)(G,{title:"ブランディング",children:(0,a.jsxs)("div",{className:"flex flex-col gap-[var(--space-3)]",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-[length:var(--text-caption1)] text-[var(--text-tertiary)] mb-[var(--space-1)]",children:"Portal Name"}),(0,a.jsx)("input",{type:"text",className:"apple-input w-full bg-[var(--bg-secondary)] border border-[var(--separator)] rounded-[var(--radius-sm)] px-[10px] py-[6px] text-[length:var(--text-footnote)] text-[var(--text-primary)]",placeholder:"Jinn",value:T,onChange:e=>A(e.target.value),onBlur:()=>{b(T||null),u.api.completeOnboarding({portalName:T||void 0}).catch(()=>{})}})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-[length:var(--text-caption1)] text-[var(--text-tertiary)] mb-[var(--space-1)]",children:"Portal Subtitle"}),(0,a.jsx)("input",{type:"text",className:"apple-input w-full bg-[var(--bg-secondary)] border border-[var(--separator)] rounded-[var(--radius-sm)] px-[10px] py-[6px] text-[length:var(--text-footnote)] text-[var(--text-primary)]",placeholder:"Command Centre",value:F,onChange:e=>E(e.target.value),onBlur:()=>j(F||null)})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-[length:var(--text-caption1)] text-[var(--text-tertiary)] mb-[var(--space-1)]",children:"Operator Name"}),(0,a.jsx)("input",{type:"text",className:"apple-input w-full bg-[var(--bg-secondary)] border border-[var(--separator)] rounded-[var(--radius-sm)] px-[10px] py-[6px] text-[length:var(--text-footnote)] text-[var(--text-primary)]",placeholder:"Your Name",value:P,onChange:e=>D(e.target.value),onBlur:()=>{y(P||null),u.api.completeOnboarding({operatorName:P||void 0}).catch(()=>{})}})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-[length:var(--text-caption1)] text-[var(--text-tertiary)] mb-[var(--space-1)]",children:"Portal Emoji"}),(0,a.jsx)("input",{type:"text",className:"apple-input w-[80px] text-center text-[length:var(--text-title2)] px-[8px] py-[6px] bg-[var(--bg-secondary)] border border-[var(--separator)] rounded-[var(--radius-sm)]",placeholder:"\\ud83e\\uddde",value:$,onChange:e=>L(e.target.value),onBlur:()=>f($||null)})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"block text-[length:var(--text-caption1)] text-[var(--text-tertiary)] mb-[var(--space-1)]",children:"Language"}),(0,a.jsxs)("select",{value:B,onChange:e=>H(e.target.value),onBlur:()=>{w(B||"English"),u.api.completeOnboarding({language:B||void 0}).catch(()=>{})},className:"w-full bg-[var(--bg-secondary)] border border-[var(--separator)] rounded-[var(--radius-sm)] px-[10px] py-[6px] text-[length:var(--text-footnote)] text-[var(--text-primary)] cursor-pointer",children:[(0,a.jsx)("option",{value:"English",children:"English"}),(0,a.jsx)("option",{value:"Spanish",children:"Spanish"}),(0,a.jsx)("option",{value:"French",children:"French"}),(0,a.jsx)("option",{value:"German",children:"German"}),(0,a.jsx)("option",{value:"Portuguese",children:"Portuguese"}),(0,a.jsx)("option",{value:"Italian",children:"Italian"}),(0,a.jsx)("option",{value:"Dutch",children:"Dutch"}),(0,a.jsx)("option",{value:"Russian",children:"Russian"}),(0,a.jsx)("option",{value:"Chinese",children:"Chinese"}),(0,a.jsx)("option",{value:"Japanese",children:"Japanese"}),(0,a.jsx)("option",{value:"Korean",children:"Korean"}),(0,a.jsx)("option",{value:"Arabic",children:"Arabic"}),(0,a.jsx)("option",{value:"Hindi",children:"Hindi"}),(0,a.jsx)("option",{value:"Bulgarian",children:"Bulgarian"})]})]})]})}),es&&(0,a.jsx)("div",{className:"mb-[var(--space-4)] px-[var(--space-4)] py-[var(--space-3)] rounded-[var(--radius-md)] text-[length:var(--text-footnote)]",style:{background:"success"===es.type?"rgba(34,197,94,0.1)":"rgba(239,68,68,0.1)",border:`1px solid ${"success"===es.type?"rgba(34,197,94,0.3)":"rgba(239,68,68,0.3)"}`,color:"success"===es.type?"var(--system-green)":"var(--system-red)"},children:es.message}),ee?(0,a.jsxs)("div",{className:"text-center p-[var(--space-8)] text-[var(--text-tertiary)] text-[length:var(--text-footnote)]",children:[(0,a.jsx)(i.Loader2,{size:20,className:"mx-auto mb-[var(--space-2)] animate-spin"}),"Loading gateway config..."]}):et?(0,a.jsxs)("div",{className:"mb-[var(--space-6)] px-[var(--space-4)] py-[var(--space-3)] rounded-[var(--radius-md)] text-[length:var(--text-footnote)] text-[var(--system-red)]",style:{background:"rgba(239,68,68,0.1)",border:"1px solid rgba(239,68,68,0.3)"},children:["Failed to load config: ",et]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(G,{title:"ゲートウェイ設定",children:[(0,a.jsx)(z,{label:"Port",children:(0,a.jsx)(J,{type:"number",value:String(Z.gateway?.port??""),onChange:e=>ew(["gateway","port"],Number(e)||0),placeholder:"7777"})}),(0,a.jsx)(z,{label:"Host",children:(0,a.jsx)(J,{value:Z.gateway?.host??"",onChange:e=>ew(["gateway","host"],e),placeholder:"127.0.0.1"})}),(0,a.jsx)(z,{label:"既定モデルのベンダー",htmlFor:"default-model-vendor",children:(0,a.jsx)(R,{id:"default-model-vendor",value:eN,onChange:e=>{ew(["engines","default"],e),Z.engines?.[e]?.model||ew(["engines",e,"model"],N(e)),"gemini"!==e||Z.engines?.gemini?.bin||ew(["engines","gemini","bin"],"gemini")},options:m})}),(0,a.jsx)(z,{label:"既定モデル",htmlFor:"default-model",children:(0,a.jsx)(S,{id:"default-model",engine:eN,model:Z.engines?.[eN]?.model??N(eN),onChange:e=>ew(["engines",eN,"model"],e??N(eN))})})]}),(0,a.jsxs)(G,{title:"エンジン設定",children:[(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mb-[var(--space-2)]",children:"Claude"}),(0,a.jsx)(z,{label:"Binary Path",children:(0,a.jsx)(J,{value:Z.engines?.claude?.bin??"",onChange:e=>ew(["engines","claude","bin"],e),placeholder:"claude"})}),(0,a.jsx)(z,{label:"Model",htmlFor:"claude-engine-model",children:(0,a.jsx)(S,{id:"claude-engine-model",engine:"claude",model:Z.engines?.claude?.model??N("claude"),onChange:e=>ew(["engines","claude","model"],e??N("claude"))})}),(0,a.jsx)(z,{label:"Effort Level",children:(0,a.jsx)(R,{value:Z.engines?.claude?.effortLevel??"default",onChange:e=>ew(["engines","claude","effortLevel"],e),options:[{value:"default",label:"Default"},{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"},{value:"xhigh",label:"Extra High"},..."claude-fable-5-1"===Z.engines?.claude?.model?[{value:"max",label:"Max"}]:[]]})}),(0,a.jsx)(z,{label:"インタラクティブPTY(Max定額)",children:(0,a.jsx)(W,{checked:Z.engines?.claude?.interactive??!1,onChange:e=>ew(["engines","claude","interactive"],e)})}),(0,a.jsxs)("div",{className:"text-[length:var(--text-caption1)] text-[var(--label-secondary)] mt-[4px]",children:["有効にすると Claude の作業ターンを PTY(cc_entrypoint=cli)で実行します。 Claude CLI が Max サブスクリプションでログイン済みなら、API 従量課金ではなく Max 側の利用枠で実行されます。 SSH リモート実行の従業員は headless ",(0,a.jsx)("code",{children:"claude -p"})," にフォールバックします。",(0,a.jsx)("strong",{children:"変更の反映にはゲートウェイの再起動が必要です"}),"(保存後に ",(0,a.jsx)("code",{children:"ryoko stop && ryoko start"})," など)。"]}),(0,a.jsx)("div",{className:"border-t border-[var(--separator)] mt-[var(--space-3)] pt-[var(--space-3)]"}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mb-[var(--space-2)]",children:"Codex"}),(0,a.jsx)(z,{label:"Binary Path",children:(0,a.jsx)(J,{value:Z.engines?.codex?.bin??"",onChange:e=>ew(["engines","codex","bin"],e),placeholder:"codex"})}),(0,a.jsx)(z,{label:"Model",htmlFor:"codex-engine-model",children:(0,a.jsx)(S,{id:"codex-engine-model",engine:"codex",model:Z.engines?.codex?.model??N("codex"),onChange:e=>ew(["engines","codex","model"],e??N("codex"))})}),(0,a.jsx)(z,{label:"Effort Level",children:(0,a.jsx)(R,{value:Z.engines?.codex?.effortLevel??"default",onChange:e=>ew(["engines","codex","effortLevel"],e),options:[{value:"default",label:"Default"},{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"},{value:"xhigh",label:"Extra High"},..."gpt-6-astra"===Z.engines?.codex?.model?[{value:"max",label:"Max"}]:[]]})}),(0,a.jsx)("div",{className:"border-t border-[var(--separator)] mt-[var(--space-3)] pt-[var(--space-3)]"}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mb-[var(--space-2)]",children:"Gemini"}),(0,a.jsx)(z,{label:"Binary Path",children:(0,a.jsx)(J,{value:Z.engines?.gemini?.bin??"",onChange:e=>ew(["engines","gemini","bin"],e),placeholder:"gemini"})}),(0,a.jsx)(z,{label:"Model",htmlFor:"gemini-engine-model",children:(0,a.jsx)(S,{id:"gemini-engine-model",engine:"gemini",model:Z.engines?.gemini?.model??N("gemini"),onChange:e=>{ew(["engines","gemini","model"],e??N("gemini")),Z.engines?.gemini?.bin||ew(["engines","gemini","bin"],"gemini")}})})]}),(0,a.jsxs)(G,{title:"セッション",children:[(0,a.jsx)(z,{label:"新規メッセージで中断",children:(0,a.jsx)(W,{checked:Z.sessions?.interruptOnNewMessage??!0,onChange:e=>ew(["sessions","interruptOnNewMessage"],e)})}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--label-secondary)] mt-[4px]",children:"有効にすると、実行中のセッションに新しいメッセージを送ると現在のエージェントを停止し、 すぐに新しいメッセージの処理を開始します。無効時はメッセージはキューに入ります。"}),(0,a.jsx)("div",{className:"border-t border-[var(--separator)] mt-[var(--space-3)] pt-[var(--space-3)]"}),(0,a.jsx)(z,{label:"利用上限・無応答時の動作",children:(0,a.jsx)(R,{value:Z.sessions?.rateLimitStrategy??"fallback",onChange:e=>ew(["sessions","rateLimitStrategy"],e),options:[{value:"wait",label:"切り替えず、利用上限の解除を待つ"},{value:"fallback",label:"もう一方のエンジンに切り替え"}]})}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--label-secondary)] mt-[4px]",children:"「切り替え」は Claude または Codex が利用上限に達したり応答しなくなった時に、 もう一方で処理を続けます。「待機」は利用上限の解除を待って自動再開し、 無応答時はエラーとして終了します。"})]}),(0,a.jsxs)(G,{title:"コネクタ",children:[(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mb-[var(--space-2)]",children:"Slack"}),(0,a.jsx)(q,{}),(0,a.jsx)(z,{label:"App Token",children:(0,a.jsx)(J,{type:"password",value:Z.connectors?.slack?.appToken??"",onChange:e=>ew(["connectors","slack","appToken"],e),placeholder:"xapp-..."})}),(0,a.jsxs)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mt-[-4px] mb-[var(--space-2)] pl-[var(--space-1)]",children:["Basic Information → App-Level Tokens で発行したトークン(",(0,a.jsx)("code",{children:"xapp-…"}),")。"]}),(0,a.jsx)(z,{label:"Bot Token",children:(0,a.jsx)(J,{type:"password",value:Z.connectors?.slack?.botToken??"",onChange:e=>ew(["connectors","slack","botToken"],e),placeholder:"xoxb-..."})}),(0,a.jsxs)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mt-[-4px] mb-[var(--space-2)] pl-[var(--space-1)]",children:["ワークスペースにインストール後の OAuth & Permissions → Bot User OAuth Token(",(0,a.jsx)("code",{children:"xoxb-…"}),")。"]}),(0,a.jsx)(z,{label:"チャンネルでセッションを共有",children:(0,a.jsx)(W,{checked:Z.connectors?.slack?.shareSessionInChannel??!1,onChange:e=>ew(["connectors","slack","shareSessionInChannel"],e)})}),(0,a.jsx)(z,{label:"許可ユーザー",children:(0,a.jsx)(J,{value:Array.isArray(Z.connectors?.slack?.allowFrom)?Z.connectors?.slack?.allowFrom?.join(", "):Z.connectors?.slack?.allowFrom??"",onChange:e=>ew(["connectors","slack","allowFrom"],e.trim()?e.split(",").map(e=>e.trim()).filter(Boolean):void 0),placeholder:"U123, U456"})}),(0,a.jsx)(z,{label:"起動時に古いメッセージを無視",children:(0,a.jsx)(W,{checked:Z.connectors?.slack?.ignoreOldMessagesOnBoot??!0,onChange:e=>ew(["connectors","slack","ignoreOldMessagesOnBoot"],e)})}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mt-[var(--space-3)] mb-[var(--space-2)]",children:"応答ゲート(respondTo)"}),["im","mpim","channel"].map(e=>(0,a.jsx)(z,{label:"im"===e?"DM(1対1)":"mpim"===e?"グループDM":"チャンネル",children:(0,a.jsx)(R,{value:Z.connectors?.slack?.respondTo?.[e]??"always",onChange:a=>ew(["connectors","slack","respondTo",e],a),options:[{value:"always",label:"常に応答"},{value:"mention",label:"@メンション時のみ"},{value:"never",label:"応答しない"}]})},e)),(0,a.jsx)(z,{label:"参加済みスレッドは再メンション不要",children:(0,a.jsx)(W,{checked:Z.connectors?.slack?.respondTo?.engagedThreads??!0,onChange:e=>ew(["connectors","slack","respondTo","engagedThreads"],e)})}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mt-[var(--space-3)] mb-[var(--space-2)]",children:"空気読みトリアージ"}),(0,a.jsx)(M,{config:Z.connectors?.slack?.triage,onChange:e=>ew(["connectors","slack","triage"],e)}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mt-[var(--space-3)] mb-[var(--space-2)]",children:"Goal 判定"}),(0,a.jsx)(z,{label:"有効化",children:(0,a.jsx)(W,{checked:Z.connectors?.slack?.goalExtraction?.enabled??!0,onChange:e=>{ew(["connectors","slack","goalExtraction","enabled"],e),e&&!Z.connectors?.slack?.goalExtraction?.engine&&ew(["connectors","slack","goalExtraction","engine"],"codex")}})}),(0,a.jsx)(z,{label:"モデルのベンダー",htmlFor:"goal-model-vendor",children:(0,a.jsx)(R,{id:"goal-model-vendor",value:Z.connectors?.slack?.goalExtraction?.engine??"codex",onChange:e=>{ew(["connectors","slack","goalExtraction","engine"],e),ew(["connectors","slack","goalExtraction","model"],null)},options:g})}),(0,a.jsx)(z,{label:"モデル",htmlFor:"goal-model",children:(0,a.jsx)(S,{id:"goal-model",engine:Z.connectors?.slack?.goalExtraction?.engine??"codex",model:Z.connectors?.slack?.goalExtraction?.model,allowAutomatic:!0,onChange:e=>ew(["connectors","slack","goalExtraction","model"],e??null)})}),(0,a.jsx)(z,{label:"タイムアウト (ms)",children:(0,a.jsx)(J,{type:"number",value:Z.connectors?.slack?.goalExtraction?.timeoutMs!==void 0?String(Z.connectors.slack.goalExtraction.timeoutMs):"",onChange:e=>ew(["connectors","slack","goalExtraction","timeoutMs"],e.trim()?Number(e):void 0),placeholder:"30000"})}),(0,a.jsx)(z,{label:"バイナリパス上書き(任意)",children:(0,a.jsx)(J,{value:Z.connectors?.slack?.goalExtraction?.bin??"",onChange:e=>ew(["connectors","slack","goalExtraction","bin"],e.trim()||void 0),placeholder:"codex"})}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mt-[var(--space-3)] mb-[var(--space-2)]",children:"Agents View Canvas"}),Z.connectors?.slack?.appToken&&Z.connectors?.slack?.botToken&&!Z.connectors?.slack?.agentsCanvas?.enabled&&(0,a.jsxs)("div",{className:"mx-[var(--space-2)] mb-[var(--space-3)] p-[var(--space-3)] rounded-[var(--radius-md)] border border-[var(--accent-fill)] bg-[color-mix(in_srgb,var(--accent-fill)_30%,transparent)]",children:[(0,a.jsx)("div",{className:"text-[length:var(--text-subheadline)] font-[var(--weight-semibold)] text-[var(--text-primary)] mb-[var(--space-1)]",children:"💡 Slack 連携済みです — Canvas も有効化してみませんか?"}),(0,a.jsxs)("div",{className:"text-[length:var(--text-caption1)] text-[var(--text-secondary)]",children:["いま動いている全 Ryoko セッションが Slack の Canvas タブにライブ表示されます。 下の「有効化」を ON にしてチャンネルを選ぶだけで30秒以内に作成されます。 必要 scope は ",(0,a.jsx)("code",{className:"text-[var(--accent)]",children:"canvases:write"})," と",(0,a.jsx)("code",{className:"text-[var(--accent)] ml-1",children:"canvases:read"}),"(manifest を貼り直して reinstall すれば自動)。"]})]}),(0,a.jsxs)("p",{className:"text-[length:var(--text-caption1)] text-[var(--text-secondary)] mb-[var(--space-2)] px-[var(--space-2)]",children:["今動いている Ryoko のセッション一覧(running / waiting / errored / idle) を Slack の Canvas に自動同期します。指定したチャンネル直下のタブとして 常に最新状態が見えるようになります。Bot に",(0,a.jsx)("code",{className:"mx-1 text-[var(--accent)]",children:"canvases:write"}),"と",(0,a.jsx)("code",{className:"mx-1 text-[var(--accent)]",children:"canvases:read"}),"scope が必要です(上の Slack App Manifest を貼り直して reinstall すれば 自動で揃います)。"]}),(0,a.jsx)(z,{label:"有効化",children:(0,a.jsx)(W,{checked:Z.connectors?.slack?.agentsCanvas?.enabled??!1,onChange:e=>ew(["connectors","slack","agentsCanvas","enabled"],e)})}),(0,a.jsx)(z,{label:"表示先チャンネル",children:(0,a.jsxs)("div",{className:"flex w-full gap-[var(--space-2)] items-center",children:[eu&&eu.length>0?(0,a.jsxs)("select",{className:"flex-1 bg-[var(--surface-secondary)] border border-[var(--separator)] rounded-[var(--radius-control)] px-[var(--space-3)] py-[var(--space-2)] text-[length:var(--text-body)]",value:Z.connectors?.slack?.agentsCanvas?.channelId??"",onChange:e=>ew(["connectors","slack","agentsCanvas","channelId"],e.target.value||void 0),children:[(0,a.jsx)("option",{value:"",children:"— 選択してください —"}),eu.map(e=>(0,a.jsxs)("option",{value:e.id,children:[e.isPrivate?"🔒 ":"#",e.name]},e.id))]}):(0,a.jsx)(J,{value:Z.connectors?.slack?.agentsCanvas?.channelId??"",onChange:e=>ew(["connectors","slack","agentsCanvas","channelId"],e.trim()||void 0),placeholder:"C01234ABCDE — bot が member のチャンネル"}),(0,a.jsx)("button",{type:"button",onClick:ey,disabled:em,className:"px-[var(--space-3)] py-[var(--space-2)] text-[length:var(--text-caption1)] bg-[var(--surface-secondary)] border border-[var(--separator)] rounded-[var(--radius-control)] hover:bg-[var(--surface-tertiary)] disabled:opacity-50",children:em?(0,a.jsx)(i.Loader2,{className:"h-4 w-4 animate-spin"}):eu?"更新":"読み込み"})]})}),eb?(0,a.jsx)("p",{className:"text-[length:var(--text-caption1)] text-[var(--accent-red,#ef4444)] px-[var(--space-2)] -mt-[var(--space-1)] mb-[var(--space-2)]",children:eb}):null,(0,a.jsx)(z,{label:"Canvas タイトル",children:(0,a.jsx)(J,{value:Z.connectors?.slack?.agentsCanvas?.title??"",onChange:e=>ew(["connectors","slack","agentsCanvas","title"],e.trim()||void 0),placeholder:"Ryoko Agents View"})}),(0,a.jsx)(z,{label:"更新間隔 (ms)",children:(0,a.jsx)(J,{type:"number",value:Z.connectors?.slack?.agentsCanvas?.pollIntervalMs!==void 0?String(Z.connectors.slack.agentsCanvas.pollIntervalMs):"",onChange:e=>ew(["connectors","slack","agentsCanvas","pollIntervalMs"],e.trim()?Number(e):void 0),placeholder:"30000(30秒, 最小 5000)"})}),(0,a.jsx)(z,{label:"グループ毎の最大表示件数",children:(0,a.jsx)(J,{type:"number",value:Z.connectors?.slack?.agentsCanvas?.maxPerGroup!==void 0?String(Z.connectors.slack.agentsCanvas.maxPerGroup):"",onChange:e=>ew(["connectors","slack","agentsCanvas","maxPerGroup"],e.trim()?Number(e):void 0),placeholder:"10"})}),(0,a.jsx)("div",{className:"border-t border-[var(--separator)] mt-[var(--space-3)] pt-[var(--space-3)]"}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mb-[var(--space-2)]",children:"Discord"}),(0,a.jsx)(z,{label:"Bot Token",children:(0,a.jsx)(J,{type:"password",value:Z.connectors?.discord?.botToken??"",onChange:e=>ew(["connectors","discord","botToken"],e),placeholder:"Bot token..."})}),(0,a.jsx)(z,{label:"Allow From",children:(0,a.jsx)(J,{value:Array.isArray(Z.connectors?.discord?.allowFrom)?Z.connectors?.discord?.allowFrom?.join(", "):Z.connectors?.discord?.allowFrom??"",onChange:e=>ew(["connectors","discord","allowFrom"],e.trim()?e.split(",").map(e=>e.trim()).filter(Boolean):void 0),placeholder:"User IDs, comma-separated (optional)"})}),(0,a.jsx)(z,{label:"Guild ID",children:(0,a.jsx)(J,{value:Z.connectors?.discord?.guildId??"",onChange:e=>ew(["connectors","discord","guildId"],e.trim()||void 0),placeholder:"サーバー/Guild ID(任意)"})}),(0,a.jsx)(z,{label:"Channel ID",children:(0,a.jsx)(J,{value:Z.connectors?.discord?.channelId??"",onChange:e=>ew(["connectors","discord","channelId"],e.trim()||void 0),placeholder:"このチャンネルに限定(右クリック → Copy Channel ID)"})}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mt-[var(--space-3)] mb-[var(--space-2)]",children:"応答ゲート(respondTo)"}),["dm","channel"].map(e=>(0,a.jsx)(z,{label:"dm"===e?"DM(1対1・グループ)":"チャンネル/スレッド",children:(0,a.jsx)(R,{value:Z.connectors?.discord?.respondTo?.[e]??"always",onChange:a=>ew(["connectors","discord","respondTo",e],a),options:[{value:"always",label:"常に応答"},{value:"mention",label:"@メンション/リプライ時のみ"},{value:"never",label:"応答しない"}]})},e)),(0,a.jsx)(z,{label:"参加済みスレッドは再メンション不要",children:(0,a.jsx)(W,{checked:Z.connectors?.discord?.respondTo?.engagedThreads??!0,onChange:e=>ew(["connectors","discord","respondTo","engagedThreads"],e)})}),(0,a.jsx)(z,{label:"返信スタイル(平場チャンネル)",children:(0,a.jsx)(R,{value:Z.connectors?.discord?.replyStyle??"channel",onChange:e=>ew(["connectors","discord","replyStyle"],e),options:[{value:"channel",label:"そのままチャンネルへ"},{value:"reply",label:"元メッセージにリプライ"},{value:"thread",label:"スレッドを作成して返信"}]})}),(0,a.jsx)("div",{className:"border-t border-[var(--separator)] mt-[var(--space-3)] pt-[var(--space-3)]"}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mb-[var(--space-2)]",children:"Telegram"}),(0,a.jsx)(z,{label:"Bot Token",children:(0,a.jsx)(J,{type:"password",value:Z.connectors?.telegram?.botToken??"",onChange:e=>ew(["connectors","telegram","botToken"],e),placeholder:"123456:ABC-DEF..."})}),(0,a.jsx)(z,{label:"許可ユーザー (User ID)",children:(0,a.jsx)(J,{value:Array.isArray(Z.connectors?.telegram?.allowFrom)?Z.connectors?.telegram?.allowFrom?.join(", "):"",onChange:e=>ew(["connectors","telegram","allowFrom"],e.trim()?e.split(",").map(e=>Number(e.trim())).filter(e=>!isNaN(e)):void 0),placeholder:"Telegram の User ID をカンマ区切り(任意)"})}),(0,a.jsx)(z,{label:"起動時に古いメッセージを無視",children:(0,a.jsx)(W,{checked:Z.connectors?.telegram?.ignoreOldMessagesOnBoot??!0,onChange:e=>ew(["connectors","telegram","ignoreOldMessagesOnBoot"],e)})}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mt-[var(--space-4)] mb-[var(--space-2)]",children:"WhatsApp"}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mb-[var(--space-3)]",children:"初回起動時、下のQRコードを WhatsApp アプリでスキャンして接続してください。認証情報は次回以降キャッシュされます。"}),(0,a.jsx)(z,{label:"認証ディレクトリ",children:(0,a.jsx)(J,{value:Z.connectors?.whatsapp?.authDir??"",onChange:e=>ew(["connectors","whatsapp","authDir"],e.trim()||void 0),placeholder:"デフォルト: ~/.ryoko/.whatsapp-auth"})}),(0,a.jsx)(z,{label:"許可送信元",children:(0,a.jsx)(J,{value:Array.isArray(Z.connectors?.whatsapp?.allowFrom)?Z.connectors?.whatsapp?.allowFrom?.join(", "):"",onChange:e=>ew(["connectors","whatsapp","allowFrom"],e.trim()?e.split(",").map(e=>e.trim()).filter(Boolean):void 0),placeholder:"447700900000@s.whatsapp.net, ...(任意)"})}),ei&&(0,a.jsxs)("div",{className:"mt-[var(--space-3)] flex flex-col items-center gap-[var(--space-2)]",children:[(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-semibold text-[var(--text-secondary)]",children:"WhatsApp でスキャンして接続"}),(0,a.jsx)("img",{src:ei,alt:"WhatsApp QRコード",className:"w-[200px] h-[200px] rounded-[var(--radius-md)] border border-[var(--separator)] bg-white p-[8px]"}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:"WhatsApp → リンク済み端末 → 端末をリンク"})]}),Z.connectors?.whatsapp&&"ok"===ed&&(0,a.jsx)("div",{className:"mt-[var(--space-2)] text-[length:var(--text-caption1)] text-[var(--system-green)] font-semibold",children:"✓ 接続済み"}),(0,a.jsx)("div",{className:"border-t border-[var(--separator)] mt-[var(--space-3)] pt-[var(--space-3)]"}),(0,a.jsxs)("div",{className:"flex items-center justify-between mb-[var(--space-2)]",children:[(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)]",children:"コネクタインスタンス"}),(0,a.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:[(0,a.jsxs)("button",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-secondary)] hover:text-[var(--accent)] transition-colors flex items-center gap-1",onClick:async()=>{try{let e=await u.api.reloadConnectors(),a=[];e.stopped.length&&a.push(`Stopped: ${e.stopped.join(", ")}`),e.started.length&&a.push(`Started: ${e.started.join(", ")}`),e.errors.length&&a.push(`Errors: ${e.errors.join(", ")}`),alert(a.length?a.join("\n"):"No connector instances to reload")}catch{alert("Failed to reload connectors")}},children:[(0,a.jsx)(n,{size:12}),"Reload"]}),(0,a.jsx)("button",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--accent)] hover:opacity-80 transition-opacity",onClick:()=>{let e=[...Z.connectors?.instances||[]],a=`discord-${e.length+1}`;e.push({id:a,type:"discord"}),ew(["connectors","instances"],e)},children:"+ Add Instance"})]})]}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mb-[var(--space-3)]",children:"Add multiple connector instances of the same type, each bound to a specific employee."}),(Z.connectors?.instances||[]).map((e,t)=>(0,a.jsxs)("div",{className:"mb-[var(--space-4)] p-[var(--space-3)] rounded-[var(--radius-md)] border border-[var(--separator)] bg-[var(--bg-secondary)]",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-[var(--space-2)]",children:[(0,a.jsx)("div",{className:"text-[length:var(--text-subheadline)] font-[var(--weight-semibold)] text-[var(--text-primary)]",children:e.id||`Instance ${t+1}`}),(0,a.jsx)("button",{className:"text-[var(--system-red)] hover:opacity-80 transition-opacity p-[var(--space-1)]",onClick:()=>{let e=[...Z.connectors?.instances||[]];e.splice(t,1),ew(["connectors","instances"],e.length>0?e:void 0)},children:(0,a.jsx)(l.Trash2,{size:14})})]}),(0,a.jsx)(z,{label:"Instance ID",children:(0,a.jsx)(J,{value:e.id??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],id:e},ew(["connectors","instances"],a)},placeholder:"e.g. discord-vox"})}),(0,a.jsx)(z,{label:"Type",children:(0,a.jsx)(R,{value:e.type??"discord",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],type:e},ew(["connectors","instances"],a)},options:[{value:"discord",label:"Discord"},{value:"slack",label:"Slack"},{value:"whatsapp",label:"WhatsApp"}]})}),(0,a.jsx)(z,{label:"Employee",children:(0,a.jsx)(R,{value:e.employee??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],employee:e||void 0},ew(["connectors","instances"],a)},options:[{value:"",label:"Default (COO)"},...ex.map(e=>({value:e.name,label:e.displayName}))]})}),("discord"===e.type||!e.type)&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(z,{label:"Bot Token",children:(0,a.jsx)(J,{type:"password",value:e.botToken??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],botToken:e},ew(["connectors","instances"],a)},placeholder:"Bot token..."})}),(0,a.jsx)(z,{label:"Guild ID",children:(0,a.jsx)(J,{value:e.guildId??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],guildId:e.trim()||void 0},ew(["connectors","instances"],a)},placeholder:"Server/Guild ID"})}),(0,a.jsx)(z,{label:"Channel ID",children:(0,a.jsx)(J,{value:e.channelId??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],channelId:e.trim()||void 0},ew(["connectors","instances"],a)},placeholder:"Restrict to channel (optional)"})}),(0,a.jsx)(z,{label:"Allow From",children:(0,a.jsx)(J,{value:Array.isArray(e.allowFrom)?e.allowFrom.join(", "):e.allowFrom??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],allowFrom:e.trim()?e.split(",").map(e=>e.trim()).filter(Boolean):void 0},ew(["connectors","instances"],a)},placeholder:"User IDs, comma-separated (optional)"})})]}),"slack"===e.type&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(z,{label:"App Token",children:(0,a.jsx)(J,{type:"password",value:e.appToken??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],appToken:e},ew(["connectors","instances"],a)},placeholder:"xapp-..."})}),(0,a.jsx)(z,{label:"Bot Token",children:(0,a.jsx)(J,{type:"password",value:e.botToken??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],botToken:e},ew(["connectors","instances"],a)},placeholder:"xoxb-..."})})]}),"slack"===e.type&&(0,a.jsxs)("div",{className:"border-t border-[var(--separator)] mt-[var(--space-3)] pt-[var(--space-3)]",children:[(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mb-[var(--space-2)]",children:"空気読みトリアージ"}),(0,a.jsx)(M,{config:e.triage,showCredentials:!1,onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],triage:e},ew(["connectors","instances"],a)}})]}),"whatsapp"===e.type&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(z,{label:"Auth Directory",children:(0,a.jsx)(J,{value:e.authDir??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],authDir:e.trim()||void 0},ew(["connectors","instances"],a)},placeholder:"Default: ~/.jinn/.whatsapp-auth"})}),(0,a.jsx)(z,{label:"Allow From",children:(0,a.jsx)(J,{value:Array.isArray(e.allowFrom)?e.allowFrom.join(", "):"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],allowFrom:e.trim()?e.split(",").map(e=>e.trim()).filter(Boolean):void 0},ew(["connectors","instances"],a)},placeholder:"Phone JIDs, comma-separated"})})]})]},e.id||t)),(0,a.jsx)("div",{className:"border-t border-[var(--separator)] mt-[var(--space-3)] pt-[var(--space-3)]"}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mb-[var(--space-2)]",children:"Web UI"}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:"Web conversations use queued one-shot resume flow for both engines."})]}),(0,a.jsxs)(G,{title:"自動化の通知",children:[(0,a.jsxs)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mb-[var(--space-3)]",children:["ジョブの作成・有効化・実行は",(0,a.jsx)("a",{href:"/cron",className:"text-[var(--accent)] underline",children:"自動化ページ"}),"で行います。ここは通知の既定値だけを設定します。"]}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] font-[var(--weight-semibold)] text-[var(--text-tertiary)] mb-[var(--space-2)]",children:"Default Delivery"}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)] mb-[var(--space-3)]",children:"When a cron job has no delivery configured, results will be sent here."}),(0,a.jsx)(z,{label:"Connector",children:(0,a.jsx)(R,{value:Z.cron?.defaultDelivery?.connector??"",onChange:e=>ew(["cron","defaultDelivery","connector"],e||void 0),options:[{value:"",label:"None (fire & forget)"},{value:"web",label:"Web"},{value:"slack",label:"Slack"}]})}),Z.cron?.defaultDelivery?.connector&&(0,a.jsx)(z,{label:"Channel",children:(0,a.jsx)(J,{value:Z.cron?.defaultDelivery?.channel??"",onChange:e=>ew(["cron","defaultDelivery","channel"],e),placeholder:"#general"})}),(0,a.jsx)(_,{connectorOptions:function(e){let a=new Set;for(let[t,r]of Object.entries(e.connectors??{}))"instances"!==t&&"web"!==t&&r&&"object"==typeof r&&a.add(t);for(let t of e.connectors?.instances??[])t.id&&a.add(t.id);return e.cron?.defaultDelivery?.connector&&"web"!==e.cron.defaultDelivery.connector&&a.add(e.cron.defaultDelivery.connector),Array.from(a).sort()}(Z),defaultConnector:Z.cron?.defaultDelivery?.connector,defaultChannel:Z.cron?.defaultDelivery?.channel})]}),(0,a.jsxs)(G,{title:"Logging",children:[(0,a.jsx)(z,{label:"Level",children:(0,a.jsx)(R,{value:Z.logging?.level??"info",onChange:e=>ew(["logging","level"],e),options:[{value:"debug",label:"Debug"},{value:"info",label:"Info"},{value:"warn",label:"Warn"},{value:"error",label:"Error"}]})}),(0,a.jsx)(z,{label:"Stdout",children:(0,a.jsx)(W,{checked:Z.logging?.stdout??!0,onChange:e=>ew(["logging","stdout"],e)})}),(0,a.jsx)(z,{label:"File Logging",children:(0,a.jsx)(W,{checked:Z.logging?.file??!1,onChange:e=>ew(["logging","file"],e)})})]}),(0,a.jsx)(U,{}),(0,a.jsxs)("div",{className:"flex justify-end gap-[var(--space-3)] mb-[var(--space-6)]",children:[(0,a.jsxs)("button",{onClick:()=>ef(),className:"px-[var(--space-4)] py-[var(--space-2)] rounded-[var(--radius-md)] bg-[var(--fill-tertiary)] text-[var(--text-secondary)] border-none cursor-pointer text-[length:var(--text-footnote)] font-[var(--weight-medium)] inline-flex items-center gap-[6px]",children:[(0,a.jsx)(n,{size:14}),"再読み込み"]}),(0,a.jsxs)("button",{onClick:function(){el(!0),eo(null),u.api.updateConfig(Z).then(e=>{if(e?.connectorsReloadError)return void eo({type:"error",message:`Settings saved but connector reload failed: ${e.connectorsReloadError}`});let a=e?.connectorsReload?.errors??[];e?.status==="partial"||a.length>0?eo({type:"error",message:`Settings saved but ${a.length} connector(s) failed: ${a.join("; ")}`}):eo({type:"success",message:"Settings saved successfully"})}).catch(e=>eo({type:"error",message:`Failed to save: ${e.message}`})).finally(()=>el(!1))},disabled:en,className:"px-[var(--space-5)] py-[var(--space-2)] rounded-[var(--radius-md)] bg-[var(--accent)] text-[var(--accent-contrast)] border-none text-[length:var(--text-footnote)] font-[var(--weight-semibold)] inline-flex items-center gap-[6px] transition-all duration-150 ease-[var(--ease-smooth)]",style:{cursor:en?"wait":"pointer",opacity:en?.7:1},children:[(0,a.jsx)(o,{size:14}),en?"保存中…":"設定を保存"]})]})]}),(0,a.jsx)(G,{title:"リセット",children:(0,a.jsxs)("div",{className:"flex items-center justify-center gap-[var(--space-3)] flex-wrap",children:[(0,a.jsxs)("button",{onClick:()=>{localStorage.removeItem("jinn-onboarded"),window.location.reload()},className:"px-[var(--space-5)] py-[var(--space-2)] rounded-[var(--radius-md)] bg-[var(--accent)] text-[var(--accent-contrast)] border-none cursor-pointer text-[length:var(--text-footnote)] font-[var(--weight-semibold)] transition-all duration-150 ease-[var(--ease-spring)] inline-flex items-center gap-[var(--space-2)]",children:[(0,a.jsx)(n,{size:14}),"オンボーディングを再実行"]}),(0,a.jsxs)("button",{onClick:()=>{window.confirm("すべての設定を初期値に戻しますか?")&&(localStorage.removeItem("jinn-settings"),localStorage.removeItem("jinn-theme"),k(),window.location.reload())},className:"px-[var(--space-5)] py-[var(--space-2)] rounded-[var(--radius-md)] bg-[var(--system-red)] text-white border-none cursor-pointer text-[length:var(--text-footnote)] font-[var(--weight-semibold)] transition-all duration-150 ease-[var(--ease-spring)] inline-flex items-center gap-[var(--space-2)]",children:[(0,a.jsx)(l.Trash2,{size:14}),"すべての設定をリセット"]})]})})]})})})}],82074)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,446,e=>{"use strict";let t;var s=e.i(519),i=(t=()=>s.isServer,{isServer:()=>t(),setIsServer(e){t=e}});e.s(["environmentManager",0,i])},93558,10934,e=>{"use strict";var t=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}};e.s(["Subscribable",0,t],10934);var s=new class extends t{#e;#t;#s;constructor(){super(),this.#s=e=>{if("u">typeof window&&window.addEventListener){let t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#s)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#s=e,this.#t?.(),this.#t=e(e=>{"boolean"==typeof e?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return"boolean"==typeof this.#e?this.#e:globalThis.document?.visibilityState!=="hidden"}};e.s(["focusManager",0,s],93558)},3351,e=>{"use strict";var t=e.i(47854),s=e.i(38573),i=e.i(34938),r=class extends s.Removable{#i;#r;#n;#a;constructor(e){super(),this.#i=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#r=[],this.state=e.state||n(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#r.includes(e)||(this.#r.push(e),this.clearGcTimeout(),this.#n.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#r=this.#r.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#r.length||("pending"===this.state.status?this.scheduleGc():this.#n.remove(this))}continue(){return this.#a?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#o({type:"continue"})},s={client:this.#i,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#a=(0,i.createRetryer)({fn:()=>this.options.mutationFn?this.options.mutationFn(e,s):Promise.reject(Error("No mutationFn found")),onFail:(e,t)=>{this.#o({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#o({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r="pending"===this.state.status,n=!this.#a.canStart();try{if(r)t();else{this.#o({type:"pending",variables:e,isPaused:n}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,s);let t=await this.options.onMutate?.(e,s);t!==this.state.context&&this.#o({type:"pending",context:t,variables:e,isPaused:n})}let i=await this.#a.start();return await this.#n.config.onSuccess?.(i,e,this.state.context,this,s),await this.options.onSuccess?.(i,e,this.state.context,s),await this.#n.config.onSettled?.(i,null,this.state.variables,this.state.context,this,s),await this.options.onSettled?.(i,null,e,this.state.context,s),this.#o({type:"success",data:i}),i}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,s)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,s)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,s)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,s)}catch(e){Promise.reject(e)}throw this.#o({type:"error",error:t}),t}finally{this.#n.runNext(this)}}#o(e){this.state=(t=>{switch(e.type){case"failed":return{...t,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...t,isPaused:!0};case"continue":return{...t,isPaused:!1};case"pending":return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}})(this.state),t.notifyManager.batch(()=>{this.#r.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:"updated",action:e})})}};function n(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}e.s(["Mutation",0,r,"getDefaultState",0,n])},47854,e=>{"use strict";let t,s,i,r,n,a;var o=e.i(23092).systemSetTimeoutZero,l=(t=[],s=0,i=e=>{e()},r=e=>{e()},n=o,{batch:e=>{let a;s++;try{a=e()}finally{let e;--s||(e=t,t=[],e.length&&n(()=>{r(()=>{e.forEach(e=>{i(e)})})}))}return a},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a=e=>{s?t.push(e):n(()=>{i(e)})},setNotifyFunction:e=>{i=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{n=e}});e.s(["notifyManager",0,l])},17767,51498,e=>{"use strict";var t=e.i(10934),s=new class extends t.Subscribable{#l=!0;#t;#s;constructor(){super(),this.#s=e=>{if("u">typeof window&&window.addEventListener){let t=()=>e(!0),s=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",s,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",s)}}}}onSubscribe(){this.#t||this.setEventListener(this.#s)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#s=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#l!==e&&(this.#l=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#l}};e.s(["onlineManager",0,s],17767),e.i(519),e.s(["pendingThenable",0,function(){let e,t,s=new Promise((s,i)=>{e=s,t=i});function i(e){Object.assign(s,e),delete s.resolve,delete s.reject}return s.status="pending",s.catch(()=>{}),s.resolve=t=>{i({status:"fulfilled",value:t}),e(t)},s.reject=e=>{i({status:"rejected",reason:e}),t(e)},s}],51498)},31616,34938,38573,72238,e=>{"use strict";var t=e.i(519),s=e.i(47854),i=e.i(93558),r=e.i(17767),n=e.i(51498),a=e.i(446);function o(e){return Math.min(1e3*2**e,3e4)}function l(e){return(e??"online")!=="online"||r.onlineManager.isOnline()}var u=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function c(e){let s,c=!1,h=0,d=(0,n.pendingThenable)(),p=()=>i.focusManager.isFocused()&&("always"===e.networkMode||r.onlineManager.isOnline())&&e.canRun(),f=()=>l(e.networkMode)&&e.canRun(),m=e=>{"pending"===d.status&&(s?.(),d.resolve(e))},y=e=>{"pending"===d.status&&(s?.(),d.reject(e))},g=()=>new Promise(t=>{s=e=>{("pending"!==d.status||p())&&t(e)},e.onPause?.()}).then(()=>{s=void 0,"pending"===d.status&&e.onContinue?.()}),v=()=>{let s;if("pending"!==d.status)return;let i=0===h?e.initialPromise:void 0;try{s=i??e.fn()}catch(e){s=Promise.reject(e)}Promise.resolve(s).then(m).catch(s=>{if("pending"!==d.status)return;let i=e.retry??3*!a.environmentManager.isServer(),r=e.retryDelay??o,n="function"==typeof r?r(h,s):r,l=!0===i||"number"==typeof i&&h<i||"function"==typeof i&&i(h,s);c||!l?y(s):(h++,e.onFail?.(h,s),(0,t.sleep)(n).then(()=>p()?void 0:g()).then(()=>{c?y(s):v()}))})};return{promise:d,status:()=>d.status,cancel:t=>{if("pending"===d.status){let s=new u(t);y(s),e.onCancel?.(s)}},continue:()=>(s?.(),d),cancelRetry:()=>{c=!0},continueRetry:()=>{c=!1},canStart:f,start:()=>(f()?v():g().then(v),d)}}e.s(["CancelledError",0,u,"canFetch",0,l,"createRetryer",0,c],34938);var h=e.i(23092),d=class{#u;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),(0,t.isValidTimeout)(this.gcTime)&&(this.#u=h.timeoutManager.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(a.environmentManager.isServer()?1/0:3e5))}clearGcTimeout(){void 0!==this.#u&&(h.timeoutManager.clearTimeout(this.#u),this.#u=void 0)}};function p(e){return{onFetch:(s,i)=>{let r=s.options,n=s.fetchOptions?.meta?.fetchMore?.direction,a=s.state.data?.pages||[],o=s.state.data?.pageParams||[],l={pages:[],pageParams:[]},u=0,c=async()=>{let i=!1,c=(0,t.ensureQueryFn)(s.options,s.fetchOptions),h=async(e,r,n)=>{let a;if(i)return Promise.reject(s.signal.reason);if(null==r&&e.pages.length)return Promise.resolve(e);let o=(a={client:s.client,queryKey:s.queryKey,pageParam:r,direction:n?"backward":"forward",meta:s.options.meta},(0,t.addConsumeAwareSignal)(a,()=>s.signal,()=>i=!0),a),l=await c(o),{maxPages:u}=s.options,h=n?t.addToStart:t.addToEnd;return{pages:h(e.pages,l,u),pageParams:h(e.pageParams,r,u)}};if(n&&a.length){let e="backward"===n,t={pages:a,pageParams:o},s=(e?m:f)(r,t);l=await h(t,s,e)}else{let t=e??a.length;do{let e=0===u?o[0]??r.initialPageParam:f(r,l);if(u>0&&null==e)break;l=await h(l,e),u++}while(u<t)}return l};s.options.persister?s.fetchFn=()=>s.options.persister?.(c,{client:s.client,queryKey:s.queryKey,meta:s.options.meta,signal:s.signal},i):s.fetchFn=c}}}function f(e,{pages:t,pageParams:s}){let i=t.length-1;return t.length>0?e.getNextPageParam(t[i],t,s[i],s):void 0}function m(e,{pages:t,pageParams:s}){return t.length>0?e.getPreviousPageParam?.(t[0],t,s[0],s):void 0}e.s(["Removable",0,d],38573),e.s(["hasNextPage",0,function(e,t){return!!t&&null!=f(e,t)},"hasPreviousPage",0,function(e,t){return!!t&&!!e.getPreviousPageParam&&null!=m(e,t)},"infiniteQueryBehavior",0,p],72238);var y=class extends d{#c;#h;#d;#p;#i;#a;#f;#m;constructor(e){super(),this.#m=!1,this.#f=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#p=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#h=b(this.options),this.state=e.state??this.#h,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#c}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#f,...e},e?._type&&(this.#c=e._type),this.updateGcTime(this.options.gcTime),this.state&&void 0===this.state.data){let e=b(this.options);void 0!==e.data&&(this.setState(v(e.data,e.dataUpdatedAt)),this.#h=e)}}optionalRemove(){this.observers.length||"idle"!==this.state.fetchStatus||this.#p.remove(this)}setData(e,s){let i=(0,t.replaceData)(this.state.data,e,this.options);return this.#o({data:i,type:"success",dataUpdatedAt:s?.updatedAt,manual:s?.manual}),i}setState(e){this.#o({type:"setState",state:e})}cancel(e){let s=this.#a?.promise;return this.#a?.cancel(e),s?s.then(t.noop).catch(t.noop):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#h}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>!1!==(0,t.resolveQueryBoolean)(e.options.enabled,this))}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===t.skipToken||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>"static"===(0,t.resolveStaleTime)(e.options.staleTime,this))}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):void 0===this.state.data||this.state.isInvalidated}isStaleByTime(e=0){return void 0===this.state.data||"static"!==e&&(!!this.state.isInvalidated||!(0,t.timeUntilStale)(this.state.dataUpdatedAt,e))}onFocus(){let e=this.observers.find(e=>e.shouldFetchOnWindowFocus());e?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){let e=this.observers.find(e=>e.shouldFetchOnReconnect());e?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#p.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#a&&(this.#m||this.#y()?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#p.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}#y(){return"paused"===this.state.fetchStatus&&"pending"===this.state.status}invalidate(){this.state.isInvalidated||this.#o({type:"invalidate"})}async fetch(e,s){let i;if("idle"!==this.state.fetchStatus&&this.#a?.status()!=="rejected"){if(void 0!==this.state.data&&s?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let r=new AbortController,n=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#m=!0,r.signal)})},a=()=>{let e,i=(0,t.ensureQueryFn)(this.options,s),r=(n(e={client:this.#i,queryKey:this.queryKey,meta:this.meta}),e);return(this.#m=!1,this.options.persister)?this.options.persister(i,r,this):i(r)},o=(n(i={fetchOptions:s,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:a}),i),l="infinite"===this.#c?p(this.options.pages):this.options.behavior;l?.onFetch(o,this),this.#d=this.state,("idle"===this.state.fetchStatus||this.state.fetchMeta!==o.fetchOptions?.meta)&&this.#o({type:"fetch",meta:o.fetchOptions?.meta}),this.#a=c({initialPromise:s?.initialPromise,fn:o.fetchFn,onCancel:e=>{e instanceof u&&e.revert&&this.setState({...this.#d,fetchStatus:"idle"}),r.abort()},onFail:(e,t)=>{this.#o({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#o({type:"pause"})},onContinue:()=>{this.#o({type:"continue"})},retry:o.options.retry,retryDelay:o.options.retryDelay,networkMode:o.options.networkMode,canRun:()=>!0});try{let e=await this.#a.start();if(void 0===e)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#p.config.onSuccess?.(e,this),this.#p.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof u){if(e.silent)return this.#a.promise;else if(e.revert){if(void 0===this.state.data)throw e;return this.state.data}}throw this.#o({type:"error",error:e}),this.#p.config.onError?.(e,this),this.#p.config.onSettled?.(this.state.data,e,this),e}finally{this.scheduleGc()}}#o(e){let t=t=>{switch(e.type){case"failed":return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...t,fetchStatus:"paused"};case"continue":return{...t,fetchStatus:"fetching"};case"fetch":return{...t,...g(t.data,this.options),fetchMeta:e.meta??null};case"success":let s={...t,...v(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#d=e.manual?s:void 0,s;case"error":let i=e.error;return{...t,error:i,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...t,isInvalidated:!0};case"setState":return{...t,...e.state}}};this.state=t(this.state),s.notifyManager.batch(()=>{this.observers.forEach(e=>{e.onQueryUpdate()}),this.#p.notify({query:this,type:"updated",action:e})})}};function g(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:l(t.networkMode)?"fetching":"paused",...void 0===e&&{error:null,status:"pending"}}}function v(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function b(e){let t="function"==typeof e.initialData?e.initialData():e.initialData,s=void 0!==t,i=s?"function"==typeof e.initialDataUpdatedAt?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:s?i??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:s?"success":"pending",fetchStatus:"idle"}}e.s(["Query",0,y,"fetchState",0,g],31616)},519,23092,e=>{"use strict";var t={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},s=new class{#g=t;#v=!1;setTimeoutProvider(e){this.#g=e}setTimeout(e,t){return this.#g.setTimeout(e,t)}clearTimeout(e){this.#g.clearTimeout(e)}setInterval(e,t){return this.#g.setInterval(e,t)}clearInterval(e){this.#g.clearInterval(e)}};e.s(["systemSetTimeoutZero",0,function(e){setTimeout(e,0)},"timeoutManager",0,s],23092);var i="u"<typeof window||"Deno"in globalThis;function r(e,t){return(t?.queryKeyHashFn||n)(e)}function n(e){return JSON.stringify(e,(e,t)=>u(t)?Object.keys(t).sort().reduce((e,s)=>(e[s]=t[s],e),{}):t)}function a(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(Array.isArray(e)&&Array.isArray(t)){for(let s=0;s<t.length;s++)if(!a(e[s],t[s]))return!1;return!0}for(let s of Object.keys(t))if(!a(e[s],t[s]))return!1;return!0}return!1}var o=Object.prototype.hasOwnProperty;function l(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function u(e){if(!c(e))return!1;let t=e.constructor;if(void 0===t)return!0;let s=t.prototype;return!!c(s)&&!!s.hasOwnProperty("isPrototypeOf")&&Object.getPrototypeOf(e)===Object.prototype}function c(e){return"[object Object]"===Object.prototype.toString.call(e)}var h=Symbol();e.s(["addConsumeAwareSignal",0,function(e,t,s){let i,r=!1;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r||(r=!0,i.aborted?s():i.addEventListener("abort",s,{once:!0})),i)}),e},"addToEnd",0,function(e,t,s=0){let i=[...e,t];return s&&i.length>s?i.slice(1):i},"addToStart",0,function(e,t,s=0){let i=[t,...e];return s&&i.length>s?i.slice(0,-1):i},"ensureQueryFn",0,function(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:e.queryFn&&e.queryFn!==h?e.queryFn:()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`))},"functionalUpdate",0,function(e,t){return"function"==typeof e?e(t):e},"hashKey",0,n,"hashQueryKeyByOptions",0,r,"isServer",0,i,"isValidTimeout",0,function(e){return"number"==typeof e&&e>=0&&e!==1/0},"matchMutation",0,function(e,t){let{exact:s,status:i,predicate:r,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(s){if(n(t.options.mutationKey)!==n(o))return!1}else if(!a(t.options.mutationKey,o))return!1}return(!i||t.state.status===i)&&(!r||!!r(t))},"matchQuery",0,function(e,t){let{type:s="all",exact:i,fetchStatus:n,predicate:o,queryKey:l,stale:u}=e;if(l){if(i){if(t.queryHash!==r(l,t.options))return!1}else if(!a(t.queryKey,l))return!1}if("all"!==s){let e=t.isActive();if("active"===s&&!e||"inactive"===s&&e)return!1}return("boolean"!=typeof u||t.isStale()===u)&&(!n||n===t.state.fetchStatus)&&(!o||!!o(t))},"noop",0,function(){},"partialMatchKey",0,a,"replaceData",0,function(e,t,s){return"function"==typeof s.structuralSharing?s.structuralSharing(e,t):!1!==s.structuralSharing?function e(t,s,i=0){if(t===s)return t;if(i>500)return s;let r=l(t)&&l(s);if(!r&&!(u(t)&&u(s)))return s;let n=(r?t:Object.keys(t)).length,a=r?s:Object.keys(s),c=a.length,h=r?Array(c):{},d=0;for(let l=0;l<c;l++){let u=r?l:a[l],c=t[u],p=s[u];if(c===p){h[u]=c,(r?l<n:o.call(t,u))&&d++;continue}if(null===c||null===p||"object"!=typeof c||"object"!=typeof p){h[u]=p;continue}let f=e(c,p,i+1);h[u]=f,f===c&&d++}return n===c&&d===n?t:h}(e,t):t},"resolveQueryBoolean",0,function(e,t){return"function"==typeof e?e(t):e},"resolveStaleTime",0,function(e,t){return"function"==typeof e?e(t):e},"shallowEqualObjects",0,function(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let s in e)if(e[s]!==t[s])return!1;return!0},"shouldThrowError",0,function(e,t){return"function"==typeof e?e(...t):!!e},"skipToken",0,h,"sleep",0,function(e){return new Promise(t=>{s.setTimeout(t,e)})},"timeUntilStale",0,function(e,t){return Math.max(e+(t||0)-Date.now(),0)}],519)},38181,e=>{"use strict";var t=e.i(28225),s=e.i(47565),i=t.createContext(void 0);e.s(["QueryClientProvider",0,({client:e,children:r})=>(t.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,s.jsx)(i.Provider,{value:e,children:r})),"useQueryClient",0,e=>{let s=t.useContext(i);if(e)return e;if(!s)throw Error("No QueryClient set, use QueryClientProvider to set one");return s}])},20750,e=>{"use strict";var t=e.i(28225);let s=(...e)=>e.filter((e,t,s)=>!!e&&""!==e.trim()&&s.indexOf(e)===t).join(" ").trim(),i=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,s)=>s?s.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var r={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let n=(0,t.forwardRef)(({color:e="currentColor",size:i=24,strokeWidth:n=2,absoluteStrokeWidth:a,className:o="",children:l,iconNode:u,...c},h)=>(0,t.createElement)("svg",{ref:h,...r,width:i,height:i,stroke:e,strokeWidth:a?24*Number(n)/Number(i):n,className:s("lucide",o),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(c)&&{"aria-hidden":"true"},...c},[...u.map(([e,s])=>(0,t.createElement)(e,s)),...Array.isArray(l)?l:[l]]));e.s(["default",0,(e,r)=>{let a=(0,t.forwardRef)(({className:a,...o},l)=>(0,t.createElement)(n,{ref:l,iconNode:r,className:s(`lucide-${i(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,a),...o}));return a.displayName=i(e),a}],20750)},64374,e=>{"use strict";var t=e.i(47565),s=e.i(28225);let i=(0,s.createContext)({theme:"ryoko",setTheme:()=>{}}),r="openryoko-theme";e.s(["ThemeProvider",0,function({children:e}){let[n,a]=(0,s.useState)("ryoko"),o=(0,s.useCallback)(e=>{a(e),localStorage.setItem(r,e);let t=document.documentElement;if(t.removeAttribute("data-theme"),"system"===e){let e=window.matchMedia("(prefers-color-scheme: dark)").matches;t.setAttribute("data-theme",e?"dark":"ryoko")}else t.setAttribute("data-theme",e)},[]);return(0,s.useEffect)(()=>{let e=function(){let e=localStorage.getItem(r);if(e)return e;let t=localStorage.getItem("jinn-theme");return t?(localStorage.setItem(r,t),t):null}();e&&o(e)},[o]),(0,s.useEffect)(()=>{let e=window.matchMedia("(prefers-color-scheme: dark)");function t(){"system"===localStorage.getItem(r)&&document.documentElement.setAttribute("data-theme",e.matches?"dark":"ryoko")}return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),(0,t.jsx)(i.Provider,{value:{theme:n,setTheme:o},children:e})},"useTheme",0,function(){return(0,s.useContext)(i)}])},58963,e=>{"use strict";var t=e.i(47565),s=e.i(28225),i=e.i(45724),r=e.i(47721);let n=(0,s.createContext)({settings:{accentColor:null,portalName:null,portalSubtitle:null,portalEmoji:null,portalIcon:null,iconBgHidden:!1,emojiOnly:!1,operatorName:null,language:"English",employeeOverrides:{}},setAccentColor:()=>{},setPortalName:()=>{},setPortalSubtitle:()=>{},setPortalEmoji:()=>{},setPortalIcon:()=>{},setIconBgHidden:()=>{},setEmojiOnly:()=>{},setOperatorName:()=>{},setLanguage:()=>{},setEmployeeOverride:()=>{},clearEmployeeOverride:()=>{},getEmployeeDisplay:e=>({emoji:e.emoji}),resetAll:()=>{}}),a=()=>(0,s.useContext)(n);e.s(["DocumentTitle",0,function(){let{settings:e}=a(),t=(0,s.useRef)(e.portalName);return t.current=e.portalName,(0,s.useEffect)(()=>{function e(){let e=t.current||"Jinn",s=`${e} - AI Gateway`;document.title!==s&&(document.title=s)}e();let s=document.querySelector("title");if(!s)return;let i=new MutationObserver(()=>e());return i.observe(s,{childList:!0,characterData:!0,subtree:!0}),()=>i.disconnect()},[e.portalName]),null},"SettingsProvider",0,function({children:e}){let[a,o]=(0,s.useState)({...i.DEFAULTS});(0,s.useEffect)(()=>{let e=(0,i.loadSettings)();o(e),r.api.getOnboarding().then(t=>{if(t.portalName||t.operatorName){let s={...e,...t.portalName&&{portalName:t.portalName},...t.operatorName&&{operatorName:t.operatorName}};o(s),(0,i.saveSettings)(s)}}).catch(()=>{})},[]),(0,s.useEffect)(()=>{let e=document.documentElement.style;a.accentColor?(e.setProperty("--accent",a.accentColor),e.setProperty("--accent-fill",(0,i.hexToAccentFill)(a.accentColor)),e.setProperty("--accent-contrast",(0,i.hexToContrastText)(a.accentColor))):(e.removeProperty("--accent"),e.removeProperty("--accent-fill"),e.removeProperty("--accent-contrast"))},[a.accentColor]);let l=(0,s.useCallback)(e=>{o(t=>{let s=e(t);return(0,i.saveSettings)(s),s})},[]),u=(0,s.useCallback)(e=>{l(t=>({...t,accentColor:e}))},[l]),c=(0,s.useCallback)(e=>{l(t=>({...t,portalName:e||null}))},[l]),h=(0,s.useCallback)(e=>{l(t=>({...t,portalSubtitle:e||null}))},[l]),d=(0,s.useCallback)(e=>{l(t=>({...t,portalEmoji:e||null}))},[l]),p=(0,s.useCallback)(e=>{l(t=>({...t,portalIcon:e}))},[l]),f=(0,s.useCallback)(e=>{l(t=>({...t,iconBgHidden:e}))},[l]),m=(0,s.useCallback)(e=>{l(t=>({...t,emojiOnly:e}))},[l]),y=(0,s.useCallback)(e=>{l(t=>({...t,operatorName:e||null}))},[l]),g=(0,s.useCallback)(e=>{l(t=>({...t,language:e||"English"}))},[l]),v=(0,s.useCallback)((e,t)=>{l(s=>{let i=s.employeeOverrides[e]||{};return{...s,employeeOverrides:{...s.employeeOverrides,[e]:{...i,...t}}}})},[l]),b=(0,s.useCallback)(e=>{l(t=>{let{[e]:s,...i}=t.employeeOverrides;return{...t,employeeOverrides:i}})},[l]),S=(0,s.useCallback)(e=>{let t=a.employeeOverrides[e.id];return{emoji:t?.emoji||e.emoji,profileImage:t?.profileImage,emojiOnly:a.emojiOnly}},[a.employeeOverrides,a.emojiOnly]),w=(0,s.useCallback)(()=>{l(()=>({accentColor:null,portalName:null,portalSubtitle:null,portalEmoji:null,portalIcon:null,iconBgHidden:!1,emojiOnly:!1,operatorName:null,language:"English",employeeOverrides:{}}))},[l]);return(0,t.jsx)(n.Provider,{value:{settings:a,setAccentColor:u,setPortalName:c,setPortalSubtitle:h,setPortalEmoji:d,setPortalIcon:p,setIconBgHidden:f,setEmojiOnly:m,setOperatorName:y,setLanguage:g,setEmployeeOverride:v,clearEmployeeOverride:b,getEmployeeDisplay:S,resetAll:w},children:e})},"useSettings",0,a])},45994,e=>{"use strict";var t=e.i(47565),s=e.i(28225);let i=(0,s.createContext)({items:[],setItems:()=>{}});e.s(["BreadcrumbProvider",0,function({children:e}){let[r,n]=(0,s.useState)([]);return(0,s.useEffect)(()=>{if(r.length>0){let e=r.map(e=>e.label).join(" > ");document.title=`${e} - Jinn`}},[r]),(0,t.jsx)(i.Provider,{value:{items:r,setItems:n},children:e})},"useBreadcrumbs",0,function(e){let t=(0,s.useContext)(i),r=e?JSON.stringify(e):"";return(0,s.useEffect)(()=>{e&&t.setItems(e)},[r]),t}])},91113,e=>{"use strict";var t=e.i(28225),s=e.i(57408);e.s(["useGateway",0,function(){let[e,i]=(0,t.useState)([]),[r,n]=(0,t.useState)(!1),[a,o]=(0,t.useState)(0),[l,u]=(0,t.useState)(0),c=(0,t.useRef)(new Set);return(0,t.useEffect)(()=>{let e=(0,s.createGatewaySocket)((e,t)=>{for(let s of(i(s=>[...s.slice(-99),{event:e,payload:t}]),"skills:changed"===e&&u(e=>e+1),c.current))s(e,t)},{onOpen:()=>{n(!0),o(e=>e+1)},onClose:()=>{n(!1)}});return()=>e.close()},[]),{events:e,connected:r,connectionSeq:a,skillsVersion:l,subscribe:(0,t.useCallback)(e=>(c.current.add(e),()=>{c.current.delete(e)}),[])}}])},58925,e=>{"use strict";var t=e.i(28225);let s=(0,t.createContext)({notifications:[],unreadCount:0,toasts:[],pushFromEvent:()=>{},dismissToast:()=>{},markAllRead:()=>{},markRead:()=>{},clearAll:()=>{}});e.s(["NotificationContext",0,s,"useNotifications",0,function(){return(0,t.useContext)(s)}])},47721,e=>{"use strict";let t=window.location.origin;async function s(e){try{let t=await e.json();if(t.error)return String(t.error);if(t.message)return String(t.message)}catch{}return`API error: ${e.status}`}async function i(e){let i=await fetch(`${t}${e}`);if(!i.ok)throw Error(await s(i));return i.json()}async function r(e,i){let r=await fetch(`${t}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:i?JSON.stringify(i):void 0});if(!r.ok)throw Error(await s(r));return r.json()}async function n(e){let i=await fetch(`${t}${e}`,{method:"DELETE"});if(!i.ok)throw Error(await s(i));return i.json()}async function a(e,i){let r=await fetch(`${t}${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!r.ok)throw Error(await s(r));return r.json()}async function o(e,i){let r=await fetch(`${t}${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!r.ok)throw Error(await s(r));return r.json()}async function l(e,s="GET",i){let r=await fetch(`${t}${e}`,{method:s,credentials:"same-origin",cache:"no-store",...i?{headers:{"Content-Type":"application/json"},body:JSON.stringify(i)}:{}});if(!r.ok)throw Error("TypeSafe request failed");return r.json()}e.s(["api",0,{getTypeSafeKeyStatus:()=>l("/api/integrations/typesafe"),saveTypeSafeKey:e=>l("/api/integrations/typesafe","PUT",{apiKey:e}),deleteTypeSafeKey:()=>l("/api/integrations/typesafe","DELETE"),testTypeSafeKey:()=>l("/api/integrations/typesafe/test","POST"),getStatus:()=>i("/api/status"),getUpdateStatus:(e=!1)=>i(`/api/update${e?"?refresh=1":""}`),runMaintenance:(e,t)=>r("/api/maintenance/run",{jobId:e,mode:t}),getClaudeUsage:()=>i("/api/usage/claude"),getSessions:()=>i("/api/sessions"),getSessionPage:(e,t=100)=>{let s=new URLSearchParams({limit:String(t)});return e&&s.set("cursor",e),i(`/api/sessions?${s}`)},getSession:(e,t)=>{let s=new URLSearchParams;t?.last&&s.set("last",String(t.last)),t?.messages===!1&&s.set("messages","0");let r=s.size?`?${s}`:"";return i(`/api/sessions/${e}${r}`)},getSessionMessages:(e,t,s=100)=>{let r=new URLSearchParams({limit:String(s)});return t&&r.set("before",t),i(`/api/sessions/${e}/messages?${r}`)},getSessionMessageWindow:(e,t,s=50)=>{let r=new URLSearchParams({around:t,limit:String(s)});return i(`/api/sessions/${e}/messages?${r}`)},searchMessages:(e,t=20)=>{let s=new URLSearchParams({q:e,limit:String(t)});return i(`/api/search/messages?${s}`)},getSessionChildren:e=>i(`/api/sessions/${e}/children`),updateSession:(e,t)=>a(`/api/sessions/${e}`,t),deleteSession:e=>n(`/api/sessions/${e}`),duplicateSession:e=>r(`/api/sessions/${e}/duplicate`,{}),bulkDeleteSessions:e=>r("/api/sessions/bulk-delete",{ids:e}),createSession:e=>r("/api/sessions",e),createStubSession:e=>r("/api/sessions/stub",e),sendMessage:(e,t)=>r(`/api/sessions/${e}/message`,t),stopSession:e=>r(`/api/sessions/${e}/stop`,{}),resetSession:e=>r(`/api/sessions/${e}/reset`,{}),getWorkflows:e=>i(e?`/api/workflows?cursor=${encodeURIComponent(e)}`:"/api/workflows"),getWorkflow:e=>i(`/api/workflows/${encodeURIComponent(e)}`),setWorkflowEnabled:(e,t,s)=>r(`/api/workflows/${encodeURIComponent(e)}/${t?"enable":"disable"}`,{expectedRevision:s}),startWorkflowRun:e=>r(`/api/workflows/${encodeURIComponent(e)}/runs`,{input:{}}),getWorkflowRuns:e=>i(`/api/workflows/${encodeURIComponent(e)}/runs`),getWorkflowRun:(e,t)=>i(`/api/workflows/${encodeURIComponent(e)}/runs/${encodeURIComponent(t)}?view=full`),decideWorkflowApproval:(e,t,s,i,n)=>r(`/api/workflows/${encodeURIComponent(e)}/runs/${encodeURIComponent(t)}/nodes/${encodeURIComponent(s)}/approval`,{decision:i,expectedRevision:n}),getAutomationTemplates:()=>i("/api/automation/templates"),createWorkflowFromTemplate:(e,t)=>r(`/api/automation/templates/${encodeURIComponent(e)}`,t),getCronJobs:()=>i("/api/cron"),getCronStatus:()=>i("/api/cron/status"),createCronJob:e=>r("/api/cron",e),getCronRuns:e=>i(`/api/cron/${e}/runs`),updateCronJob:(e,t)=>a(`/api/cron/${e}`,t),triggerCronJob:e=>r(`/api/cron/${e}/trigger`,{}),getOrg:()=>i("/api/org"),getEmployee:e=>i(`/api/org/employees/${e}`),updateEmployee:(e,t)=>o(`/api/org/employees/${e}`,t),getDepartmentBoard:e=>i(`/api/org/departments/${e}/board`),getSkills:()=>i("/api/skills"),getSkill:e=>i(`/api/skills/${e}`),getConfig:()=>i("/api/config"),reloadConnectors:()=>r("/api/connectors/reload",{}),updateConfig:e=>a("/api/config",e),getLogs:e=>i(`/api/logs${e?`?n=${e}`:""}`),getOnboardingEngines:()=>i("/api/onboarding/engines"),verifySlackTokens:(e,t)=>r("/api/onboarding/slack/verify",{botToken:e,appToken:t}),connectSlack:(e,t)=>r("/api/onboarding/slack/connect",{botToken:e,appToken:t}),getOnboarding:()=>i("/api/onboarding"),completeOnboarding:e=>r("/api/onboarding",e),getActivity:()=>i("/api/activity"),updateDepartmentBoard:(e,t)=>a(`/api/org/departments/${e}/board`,t),sttStatus:()=>i("/api/stt/status"),sttDownload:()=>r("/api/stt/download",{}),sttTranscribe:async(e,s)=>{let i=s?`?language=${encodeURIComponent(s)}`:"",r=new AbortController,n=setTimeout(()=>r.abort(),3e5);try{let s=await fetch(`${t}/api/stt/transcribe${i}`,{method:"POST",headers:{"Content-Type":e.type||"audio/webm"},body:e,signal:r.signal});if(!s.ok)throw Error(`API error: ${s.status}`);return s.json()}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)throw Error("Transcription timed out (5 min)");throw e}finally{clearTimeout(n)}},sttUpdateConfig:e=>a("/api/stt/config",{languages:e}),getSessionQueue:e=>i(`/api/sessions/${e}/queue`),cancelQueueItem:(e,t)=>n(`/api/sessions/${e}/queue/${t}`),clearSessionQueue:e=>n(`/api/sessions/${e}/queue`),pauseSessionQueue:e=>r(`/api/sessions/${e}/queue/pause`,{}),resumeSessionQueue:e=>r(`/api/sessions/${e}/queue/resume`,{}),getSessionTranscript:e=>i(`/api/sessions/${e}/transcript`),uploadFile:async e=>{let i=new FormData;i.append("file",e);let r=await fetch(`${t}/api/files`,{method:"POST",body:i});if(!r.ok)throw Error(await s(r));return r.json()}}])},23880,e=>{"use strict";e.s(["queryKeys",0,{sessions:{all:["sessions"],detail:e=>["sessions",e],children:e=>["sessions",e,"children"],transcript:e=>["sessions",e,"transcript"],queue:e=>["sessions",e,"queue"]},org:{all:["org"],employee:e=>["org","employees",e],board:e=>["org","departments",e,"board"]},cron:{all:["cron"],runs:e=>["cron",e,"runs"]},skills:{all:["skills"],detail:e=>["skills",e]},config:["config"],status:["status"],onboarding:["onboarding"]}])},45724,e=>{"use strict";let t={accentColor:null,portalName:null,portalSubtitle:null,portalEmoji:null,portalIcon:null,iconBgHidden:!1,emojiOnly:!1,operatorName:null,language:"English",employeeOverrides:{}},s="jinn-settings";e.s(["DEFAULTS",0,t,"hexToAccentFill",0,function(e){let t=parseInt(e.slice(1,3),16),s=parseInt(e.slice(3,5),16),i=parseInt(e.slice(5,7),16);return`rgba(${t},${s},${i},0.15)`},"hexToContrastText",0,function(e){let t=parseInt(e.slice(1,3),16)/255,s=parseInt(e.slice(3,5),16)/255,i=parseInt(e.slice(5,7),16)/255,r=e=>e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4);return .2126*r(t)+.7152*r(s)+.0722*r(i)>.4?"#000":"#fff"},"loadSettings",0,function(){try{let e=localStorage.getItem(s);if(!e)return{...t};let i=JSON.parse(e);return{...t,...i}}catch{return{...t}}},"saveSettings",0,function(e){localStorage.setItem(s,JSON.stringify(e))}])},57408,e=>{"use strict";var t=e.i(31791);e.s(["createGatewaySocket",0,function(e,s){let i=t.default.env.NEXT_PUBLIC_GATEWAY_URL,r=i?`${i.replace(/^http/,"ws")}/ws`:`${"https:"===window.location.protocol?"wss:":"ws:"}//${window.location.host}/ws`,n=null,a=null,o=!1;return!function t(){o||((n=new WebSocket(r)).onopen=()=>{s?.onOpen?.()},n.onmessage=t=>{try{let s=JSON.parse(t.data);e(s.event,s.payload)}catch{}},n.onclose=()=>{s?.onClose?.(),o||(a=setTimeout(t,3e3))},n.onerror=()=>n?.close())}(),{close:()=>{o=!0,a&&clearTimeout(a),n?.close()}}}])}]);
|