openryoko 2026.9.2 → 2026.9.4

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.
Files changed (100) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/connectors/discord/engaged-threads.d.ts +24 -0
  3. package/dist/src/connectors/discord/engaged-threads.d.ts.map +1 -0
  4. package/dist/src/connectors/discord/engaged-threads.js +28 -0
  5. package/dist/src/connectors/discord/engaged-threads.js.map +1 -0
  6. package/dist/src/connectors/discord/index.d.ts +81 -1
  7. package/dist/src/connectors/discord/index.d.ts.map +1 -1
  8. package/dist/src/connectors/discord/index.js +326 -25
  9. package/dist/src/connectors/discord/index.js.map +1 -1
  10. package/dist/src/connectors/discord/remote.d.ts +5 -1
  11. package/dist/src/connectors/discord/remote.d.ts.map +1 -1
  12. package/dist/src/connectors/discord/remote.js +35 -0
  13. package/dist/src/connectors/discord/remote.js.map +1 -1
  14. package/dist/src/connectors/discord/respond-policy.d.ts +96 -0
  15. package/dist/src/connectors/discord/respond-policy.d.ts.map +1 -0
  16. package/dist/src/connectors/discord/respond-policy.js +85 -0
  17. package/dist/src/connectors/discord/respond-policy.js.map +1 -0
  18. package/dist/src/connectors/discord/threads.d.ts +20 -2
  19. package/dist/src/connectors/discord/threads.d.ts.map +1 -1
  20. package/dist/src/connectors/discord/threads.js +28 -1
  21. package/dist/src/connectors/discord/threads.js.map +1 -1
  22. package/dist/src/connectors/slack/agents-canvas.d.ts +1 -0
  23. package/dist/src/connectors/slack/agents-canvas.d.ts.map +1 -1
  24. package/dist/src/connectors/slack/agents-canvas.js +75 -22
  25. package/dist/src/connectors/slack/agents-canvas.js.map +1 -1
  26. package/dist/src/connectors/slack/format.d.ts +33 -0
  27. package/dist/src/connectors/slack/format.d.ts.map +1 -1
  28. package/dist/src/connectors/slack/format.js +40 -0
  29. package/dist/src/connectors/slack/format.js.map +1 -1
  30. package/dist/src/connectors/slack/index.d.ts.map +1 -1
  31. package/dist/src/connectors/slack/index.js +16 -7
  32. package/dist/src/connectors/slack/index.js.map +1 -1
  33. package/dist/src/gateway/server.d.ts.map +1 -1
  34. package/dist/src/gateway/server.js +1 -0
  35. package/dist/src/gateway/server.js.map +1 -1
  36. package/dist/src/sessions/callbacks.d.ts.map +1 -1
  37. package/dist/src/sessions/callbacks.js +39 -11
  38. package/dist/src/sessions/callbacks.js.map +1 -1
  39. package/dist/src/sessions/context.js +20 -4
  40. package/dist/src/sessions/context.js.map +1 -1
  41. package/dist/src/shared/types.d.ts +37 -0
  42. package/dist/src/shared/types.d.ts.map +1 -1
  43. package/dist/src/workflows/repository-mutex.d.ts +1 -1
  44. package/dist/web/404.html +1 -1
  45. package/dist/web/__next.__PAGE__.txt +1 -1
  46. package/dist/web/__next._full.txt +1 -1
  47. package/dist/web/__next._tree.txt +1 -1
  48. package/dist/web/_next/static/chunks/{0los6agi5yfk-.js → 1ydtstxdw369l.js} +1 -1
  49. package/dist/web/_not-found/__next._full.txt +1 -1
  50. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +1 -1
  51. package/dist/web/_not-found/__next._tree.txt +1 -1
  52. package/dist/web/_not-found.html +1 -1
  53. package/dist/web/_not-found.txt +1 -1
  54. package/dist/web/chat/__next._full.txt +1 -1
  55. package/dist/web/chat/__next._tree.txt +1 -1
  56. package/dist/web/chat/__next.chat.__PAGE__.txt +1 -1
  57. package/dist/web/chat.html +1 -1
  58. package/dist/web/chat.txt +1 -1
  59. package/dist/web/cron/__next._full.txt +1 -1
  60. package/dist/web/cron/__next._tree.txt +1 -1
  61. package/dist/web/cron/__next.cron.__PAGE__.txt +1 -1
  62. package/dist/web/cron.html +1 -1
  63. package/dist/web/cron.txt +1 -1
  64. package/dist/web/index.html +1 -1
  65. package/dist/web/index.txt +1 -1
  66. package/dist/web/kanban/__next._full.txt +1 -1
  67. package/dist/web/kanban/__next._tree.txt +1 -1
  68. package/dist/web/kanban/__next.kanban.__PAGE__.txt +1 -1
  69. package/dist/web/kanban.html +1 -1
  70. package/dist/web/kanban.txt +1 -1
  71. package/dist/web/logs/__next._full.txt +1 -1
  72. package/dist/web/logs/__next._tree.txt +1 -1
  73. package/dist/web/logs/__next.logs.__PAGE__.txt +1 -1
  74. package/dist/web/logs.html +1 -1
  75. package/dist/web/logs.txt +1 -1
  76. package/dist/web/org/__next._full.txt +1 -1
  77. package/dist/web/org/__next._tree.txt +1 -1
  78. package/dist/web/org/__next.org.__PAGE__.txt +1 -1
  79. package/dist/web/org.html +1 -1
  80. package/dist/web/org.txt +1 -1
  81. package/dist/web/sessions/__next._full.txt +1 -1
  82. package/dist/web/sessions/__next._tree.txt +1 -1
  83. package/dist/web/sessions/__next.sessions.__PAGE__.txt +1 -1
  84. package/dist/web/sessions.html +1 -1
  85. package/dist/web/sessions.txt +1 -1
  86. package/dist/web/settings/__next._full.txt +2 -2
  87. package/dist/web/settings/__next._tree.txt +1 -1
  88. package/dist/web/settings/__next.settings.__PAGE__.txt +2 -2
  89. package/dist/web/settings.html +1 -1
  90. package/dist/web/settings.txt +2 -2
  91. package/dist/web/skills/__next._full.txt +1 -1
  92. package/dist/web/skills/__next._tree.txt +1 -1
  93. package/dist/web/skills/__next.skills.__PAGE__.txt +1 -1
  94. package/dist/web/skills.html +1 -1
  95. package/dist/web/skills.txt +1 -1
  96. package/package.json +1 -1
  97. package/template/docs/connectors.md +88 -1
  98. /package/dist/web/_next/static/{Kudq_QcLnSoz7UYDmluYu → vW8A0EhHuyi1vRgv7Qkyg}/_buildManifest.js +0 -0
  99. /package/dist/web/_next/static/{Kudq_QcLnSoz7UYDmluYu → vW8A0EhHuyi1vRgv7Qkyg}/_clientMiddlewareManifest.js +0 -0
  100. /package/dist/web/_next/static/{Kudq_QcLnSoz7UYDmluYu → vW8A0EhHuyi1vRgv7Qkyg}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,82074,e=>{"use strict";var a=e.i(56438),t=e.i(97566),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 s=e.i(77053),l=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),h=e.i(47721),m=e.i(43701);let u=[{value:"claude",label:"Anthropic(Claude)"},{value:"codex",label:"OpenAI(Codex)"},{value:"gemini",label:"Google(Gemini)"}],g=u.filter(e=>"gemini"!==e.value),b="__custom_model__",j=[{value:"claude-opus-5",label:"Opus 5 — 上(最上位 / 既定 / claude-opus-5)"},{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)"}],f=[{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 — 軽量(トリアージ向け)"}],y=[{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 k(e){return"claude"===e?j:"gemini"===e?y:f}function w(e){return"claude"===e?"claude-opus-5":"gemini"===e?"gemini-2.5-pro":"gpt-5.6-sol"}function N(e){return"claude"===e?"claude-haiku-4-5":"gpt-5-nano"}function C(e,a){return!!(a&&k(e).some(e=>e.value===a))}let S="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 T({id:e,engine:r,model:n,onChange:s,allowAutomatic:l=!1}){let o=C(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),h=`${e}-help`,m=`${e}-custom`,u="claude"===r?"例: claude-sonnet-5-20260801":"gemini"===r?"例: gemini-3.1-pro-preview":"例: gpt-private-preview";(0,t.useEffect)(()=>{let e=!!(n&&!C(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":h,onChange:e=>{let a=e.target.value;if(a===b){p(n&&!o?n:""),c(!0);return}c(!1),s(a||void 0)},className:`${S} cursor-pointer`,children:[l&&(0,a.jsx)("option",{value:"",children:"自動(ベンダー既定)"}),!l&&!n&&(0,a.jsx)("option",{value:"",children:"モデルを選択"}),k(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:m,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}s(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:u,"aria-label":"カスタムモデルID","aria-describedby":h,autoComplete:"off",className:S}),(0,a.jsx)("p",{id:h,className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:"一覧にないモデルは「カスタムモデルID」を選び、入力後に確定できます。"})]})}var A=e.i(23414),F=e.i(39331);let I="openryoko-update-notification";function E({connectorOptions:e,defaultConnector:r,defaultChannel:n}){let[s,l]=(0,t.useState)(null),[c,d]=(0,t.useState)({enabled:!1,schedule:"0 9 * * *",timezone:"",connector:r??"",channel:n??""}),[p,x]=(0,t.useState)(!0),[v,m]=(0,t.useState)(!1),[u,g]=(0,t.useState)(!1),[b,j]=(0,t.useState)(null),f=(0,t.useCallback)(()=>{x(!0),h.api.getCronJobs().then(e=>{let a=e.find(e=>e.id===I||"update-notification"===e.kind);a?(l(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||""})):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)(()=>{f()},[f]);let y=Array.from(new Set([...e,...c.connector?[c.connector]:[]]));async function k(){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:"通知を有効にするにはコネクタと送信先が必要です"});m(!0);let e={id:s?.id||I,name:"OpenRyoko Update Notification",kind:"update-notification",enabled:c.enabled,schedule:c.schedule.trim(),timezone:c.timezone.trim()||void 0,prompt:"",delivery:c.connector.trim()&&c.channel.trim()?{connector:c.connector.trim(),channel:c.channel.trim()}:void 0};try{let a=s?await h.api.updateCronJob(s.id,e):await h.api.createCronJob(e);l(a),j({type:"success",message:c.enabled?"更新通知を保存しました。新しいリリースが見つかった時だけAIがチャットへ知らせます。":"更新通知を無効で保存しました。"})}catch(e){j({type:"error",message:e instanceof Error?e.message:"保存に失敗しました"})}finally{m(!1)}}async function w(){if(s){g(!0),j(null);try{await h.api.triggerCronJob(s.id),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)(A.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:"AIによるアップデート通知"}),(0,a.jsx)("p",{className:"mt-1 text-[length:var(--text-caption2)] leading-relaxed text-[var(--text-tertiary)]",children:"定期確認はAIを使わず、新しいバージョンを見つけた時だけAIが通知文を作成します。同じバージョンは一度だけ送信されます。"})]})]}),(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:"選択してください"}),y.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)]"})]})]}),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:[s&&(0,a.jsxs)("button",{type:"button",onClick:w,disabled:u||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:[u?(0,a.jsx)(i.Loader2,{size:13,className:"animate-spin"}):(0,a.jsx)(F.Play,{size:13}),"今すぐ確認"]}),(0,a.jsxs)("button",{type:"button",onClick:k,disabled:v||u,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 D=[{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 B({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 P({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 O({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 _({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 M({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 G={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 L(){let[e,r]=(0,t.useState)(null),[n,s]=(0,t.useState)(!1),[l,o]=(0,t.useState)("");if((0,t.useEffect)(()=>{h.api.sttStatus().then(r).catch(()=>{})},[]),(0,t.useEffect)(()=>{if(!e?.downloading)return;let a=setInterval(()=>{h.api.sttStatus().then(r).catch(()=>{})},1500);return()=>clearInterval(a)},[e?.downloading]),!e)return null;let i=Object.entries(G).filter(([a])=>!e.languages.includes(a)).sort((e,a)=>e[1].localeCompare(a[1]));return(0,a.jsxs)(B,{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(){h.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}),G[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);s(!0),h.api.sttUpdateConfig(t).then(()=>r(e=>e?{...e,languages:t}:e)).catch(()=>{}).finally(()=>s(!1))})(t),disabled:n,"aria-label":`Remove ${G[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:l,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:l?"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(!l||!e||e.languages.includes(l))return;let a=[...e.languages,l];s(!0),o(""),h.api.sttUpdateConfig(a).then(()=>r(e=>e?{...e,languages:a}:e)).catch(()=>{}).finally(()=>s(!1))},disabled:!l||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:l?"var(--accent)":"var(--fill-tertiary)",color:l?"var(--accent-contrast)":"var(--text-quaternary)",cursor:l?"pointer":"default"},children:"Add"})]})]})})]})}function z(){let e,{settings:r}=(0,d.useSettings)(),[n,s]=(0,t.useState)(!1),[l,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:l?"閉じる":"開く"})]}),l&&(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(()=>{s(!0),setTimeout(()=>s(!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:f,setPortalEmoji:y,setLanguage:k,resetAll:C}=(0,d.useSettings)(),{theme:S,setTheme:A}=(0,x.useTheme)(),[F,I]=(0,t.useState)(e.portalName??""),[G,R]=(0,t.useState)(e.portalSubtitle??""),[$,W]=(0,t.useState)(e.operatorName??""),[H,U]=(0,t.useState)(e.portalEmoji??""),[J,q]=(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,es]=(0,t.useState)(!1),[el,eo]=(0,t.useState)(null),[ei,ec]=(0,t.useState)(null),[ed,ep]=(0,t.useState)("unknown"),[ex,ev]=(0,t.useState)([]),[eh,em]=(0,t.useState)(null),[eu,eg]=(0,t.useState)(!1),[eb,ej]=(0,t.useState)(null);(0,t.useEffect)(()=>{h.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 ef=async()=>{eg(!0),ej(null);try{let e=await fetch("/api/connectors/slack/channels"),a=await e.json();if(a?.ok)em(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}`),em(null)}}catch(e){ej(e instanceof Error?e.message:String(e)),em(null)}finally{eg(!1)}};function ey(){ea(!0),h.api.getConfig().then(e=>{X(e),er(null)}).catch(e=>er(e.message)).finally(()=>ea(!1))}function ek(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,r})}(0,t.useEffect)(()=>{I(e.portalName??""),R(e.portalSubtitle??""),W(e.operatorName??""),U(e.portalEmoji??""),q(e.language??"English"),V(e.accentColor??"")},[e.portalName,e.portalSubtitle,e.operatorName,e.portalEmoji,e.language,e.accentColor]),(0,t.useEffect)(()=>{ey()},[]),(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 ew=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)(B,{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=S===e.id;return(0,a.jsxs)("button",{onClick:()=>A(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:D.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)(l.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)(B,{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)(m.EmojiPicker,{current:e.portalEmoji??"🧞",onSelect:e=>{y(e),Q(!1)},onClose:()=>Q(!1)})]})]})}),(0,a.jsx)(B,{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:F,onChange:e=>I(e.target.value),onBlur:()=>{b(F||null),h.api.completeOnboarding({portalName:F||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:G,onChange:e=>R(e.target.value),onBlur:()=>j(G||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:$,onChange:e=>W(e.target.value),onBlur:()=>{f($||null),h.api.completeOnboarding({operatorName:$||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:H,onChange:e=>U(e.target.value),onBlur:()=>y(H||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:J,onChange:e=>q(e.target.value),onBlur:()=>{k(J||"English"),h.api.completeOnboarding({language:J||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"})]})]})]})}),el&&(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"===el.type?"rgba(34,197,94,0.1)":"rgba(239,68,68,0.1)",border:`1px solid ${"success"===el.type?"rgba(34,197,94,0.3)":"rgba(239,68,68,0.3)"}`,color:"success"===el.type?"var(--system-green)":"var(--system-red)"},children:el.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)(B,{title:"ゲートウェイ設定",children:[(0,a.jsx)(P,{label:"Port",children:(0,a.jsx)(O,{type:"number",value:String(Z.gateway?.port??""),onChange:e=>ek(["gateway","port"],Number(e)||0),placeholder:"7777"})}),(0,a.jsx)(P,{label:"Host",children:(0,a.jsx)(O,{value:Z.gateway?.host??"",onChange:e=>ek(["gateway","host"],e),placeholder:"127.0.0.1"})}),(0,a.jsx)(P,{label:"既定モデルのベンダー",htmlFor:"default-model-vendor",children:(0,a.jsx)(_,{id:"default-model-vendor",value:ew,onChange:e=>{ek(["engines","default"],e),Z.engines?.[e]?.model||ek(["engines",e,"model"],w(e)),"gemini"!==e||Z.engines?.gemini?.bin||ek(["engines","gemini","bin"],"gemini")},options:u})}),(0,a.jsx)(P,{label:"既定モデル",htmlFor:"default-model",children:(0,a.jsx)(T,{id:"default-model",engine:ew,model:Z.engines?.[ew]?.model??w(ew),onChange:e=>ek(["engines",ew,"model"],e??w(ew))})})]}),(0,a.jsxs)(B,{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)(P,{label:"Binary Path",children:(0,a.jsx)(O,{value:Z.engines?.claude?.bin??"",onChange:e=>ek(["engines","claude","bin"],e),placeholder:"claude"})}),(0,a.jsx)(P,{label:"Model",htmlFor:"claude-engine-model",children:(0,a.jsx)(T,{id:"claude-engine-model",engine:"claude",model:Z.engines?.claude?.model??w("claude"),onChange:e=>ek(["engines","claude","model"],e??w("claude"))})}),(0,a.jsx)(P,{label:"Effort Level",children:(0,a.jsx)(_,{value:Z.engines?.claude?.effortLevel??"default",onChange:e=>ek(["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"}]})}),(0,a.jsx)(P,{label:"インタラクティブPTY(Max定額)",children:(0,a.jsx)(M,{checked:Z.engines?.claude?.interactive??!1,onChange:e=>ek(["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)(P,{label:"Binary Path",children:(0,a.jsx)(O,{value:Z.engines?.codex?.bin??"",onChange:e=>ek(["engines","codex","bin"],e),placeholder:"codex"})}),(0,a.jsx)(P,{label:"Model",htmlFor:"codex-engine-model",children:(0,a.jsx)(T,{id:"codex-engine-model",engine:"codex",model:Z.engines?.codex?.model??w("codex"),onChange:e=>ek(["engines","codex","model"],e??w("codex"))})}),(0,a.jsx)(P,{label:"Effort Level",children:(0,a.jsx)(_,{value:Z.engines?.codex?.effortLevel??"default",onChange:e=>ek(["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"}]})}),(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)(P,{label:"Binary Path",children:(0,a.jsx)(O,{value:Z.engines?.gemini?.bin??"",onChange:e=>ek(["engines","gemini","bin"],e),placeholder:"gemini"})}),(0,a.jsx)(P,{label:"Model",htmlFor:"gemini-engine-model",children:(0,a.jsx)(T,{id:"gemini-engine-model",engine:"gemini",model:Z.engines?.gemini?.model??w("gemini"),onChange:e=>{ek(["engines","gemini","model"],e??w("gemini")),Z.engines?.gemini?.bin||ek(["engines","gemini","bin"],"gemini")}})})]}),(0,a.jsxs)(B,{title:"セッション",children:[(0,a.jsx)(P,{label:"新規メッセージで中断",children:(0,a.jsx)(M,{checked:Z.sessions?.interruptOnNewMessage??!0,onChange:e=>ek(["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)(P,{label:"Claude が利用上限に達した時",children:(0,a.jsx)(_,{value:Z.sessions?.rateLimitStrategy??"fallback",onChange:e=>ek(["sessions","rateLimitStrategy"],e),options:[{value:"wait",label:"待機して自動再開"},{value:"fallback",label:"GPT (Codex) に切り替え"}]})}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--label-secondary)] mt-[4px]",children:"「待機」は Claude のリセットを待ってからセッションを自動再開します。 「切り替え」は即座に GPT で応答し、リセット後に Claude へ戻します。"})]}),(0,a.jsxs)(B,{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)(z,{}),(0,a.jsx)(P,{label:"App Token",children:(0,a.jsx)(O,{type:"password",value:Z.connectors?.slack?.appToken??"",onChange:e=>ek(["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)(P,{label:"Bot Token",children:(0,a.jsx)(O,{type:"password",value:Z.connectors?.slack?.botToken??"",onChange:e=>ek(["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)(P,{label:"チャンネルでセッションを共有",children:(0,a.jsx)(M,{checked:Z.connectors?.slack?.shareSessionInChannel??!1,onChange:e=>ek(["connectors","slack","shareSessionInChannel"],e)})}),(0,a.jsx)(P,{label:"許可ユーザー",children:(0,a.jsx)(O,{value:Array.isArray(Z.connectors?.slack?.allowFrom)?Z.connectors?.slack?.allowFrom?.join(", "):Z.connectors?.slack?.allowFrom??"",onChange:e=>ek(["connectors","slack","allowFrom"],e.trim()?e.split(",").map(e=>e.trim()).filter(Boolean):void 0),placeholder:"U123, U456"})}),(0,a.jsx)(P,{label:"起動時に古いメッセージを無視",children:(0,a.jsx)(M,{checked:Z.connectors?.slack?.ignoreOldMessagesOnBoot??!0,onChange:e=>ek(["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)(P,{label:"im"===e?"DM(1対1)":"mpim"===e?"グループDM":"チャンネル",children:(0,a.jsx)(_,{value:Z.connectors?.slack?.respondTo?.[e]??"always",onChange:a=>ek(["connectors","slack","respondTo",e],a),options:[{value:"always",label:"常に応答"},{value:"mention",label:"@メンション時のみ"},{value:"never",label:"応答しない"}]})},e)),(0,a.jsx)(P,{label:"参加済みスレッドは再メンション不要",children:(0,a.jsx)(M,{checked:Z.connectors?.slack?.respondTo?.engagedThreads??!0,onChange:e=>ek(["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)(P,{label:"有効化",children:(0,a.jsx)(M,{checked:Z.connectors?.slack?.triage?.enabled??!1,onChange:e=>{ek(["connectors","slack","triage","enabled"],e),e&&!Z.connectors?.slack?.triage?.engine&&ek(["connectors","slack","triage","engine"],"codex"),e&&!Z.connectors?.slack?.triage?.model&&ek(["connectors","slack","triage","model"],N("codex"))}})}),(0,a.jsx)(P,{label:"モデルのベンダー",htmlFor:"triage-model-vendor",children:(0,a.jsx)(_,{id:"triage-model-vendor",value:Z.connectors?.slack?.triage?.engine??"codex",onChange:e=>{ek(["connectors","slack","triage","engine"],e),ek(["connectors","slack","triage","model"],N(e))},options:g})}),(0,a.jsx)(P,{label:"モデル",htmlFor:"triage-model",children:(0,a.jsx)(T,{id:"triage-model",engine:Z.connectors?.slack?.triage?.engine??"codex",model:Z.connectors?.slack?.triage?.model,allowAutomatic:!0,onChange:e=>ek(["connectors","slack","triage","model"],e??null)})}),(0,a.jsx)(P,{label:"タイムアウト (ms)",children:(0,a.jsx)(O,{type:"number",value:Z.connectors?.slack?.triage?.timeoutMs!==void 0?String(Z.connectors.slack.triage.timeoutMs):"",onChange:e=>ek(["connectors","slack","triage","timeoutMs"],e.trim()?Number(e):void 0),placeholder:"20000"})}),(0,a.jsx)(P,{label:"スレッド文脈の取得件数",children:(0,a.jsx)(O,{type:"number",value:Z.connectors?.slack?.triage?.threadContextLimit!==void 0?String(Z.connectors.slack.triage.threadContextLimit):"",onChange:e=>ek(["connectors","slack","triage","threadContextLimit"],e.trim()?Number(e):void 0),placeholder:"10"})}),(0,a.jsx)(P,{label:"ペルソナ(任意)",children:(0,a.jsx)(O,{value:Z.connectors?.slack?.triage?.persona??"",onChange:e=>ek(["connectors","slack","triage","persona"],e.trim()||void 0),placeholder:"Short description of what this bot is good at"})}),(0,a.jsx)(P,{label:"バイナリパス上書き(任意)",children:(0,a.jsx)(O,{value:Z.connectors?.slack?.triage?.bin??"",onChange:e=>ek(["connectors","slack","triage","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:"Goal 判定"}),(0,a.jsx)(P,{label:"有効化",children:(0,a.jsx)(M,{checked:Z.connectors?.slack?.goalExtraction?.enabled??!1,onChange:e=>{ek(["connectors","slack","goalExtraction","enabled"],e),e&&!Z.connectors?.slack?.goalExtraction?.engine&&ek(["connectors","slack","goalExtraction","engine"],"codex"),e&&!Z.connectors?.slack?.goalExtraction?.model&&ek(["connectors","slack","goalExtraction","model"],N("codex"))}})}),(0,a.jsx)(P,{label:"モデルのベンダー",htmlFor:"goal-model-vendor",children:(0,a.jsx)(_,{id:"goal-model-vendor",value:Z.connectors?.slack?.goalExtraction?.engine??"codex",onChange:e=>{ek(["connectors","slack","goalExtraction","engine"],e),ek(["connectors","slack","goalExtraction","model"],N(e))},options:g})}),(0,a.jsx)(P,{label:"モデル",htmlFor:"goal-model",children:(0,a.jsx)(T,{id:"goal-model",engine:Z.connectors?.slack?.goalExtraction?.engine??"codex",model:Z.connectors?.slack?.goalExtraction?.model,allowAutomatic:!0,onChange:e=>ek(["connectors","slack","goalExtraction","model"],e??null)})}),(0,a.jsx)(P,{label:"タイムアウト (ms)",children:(0,a.jsx)(O,{type:"number",value:Z.connectors?.slack?.goalExtraction?.timeoutMs!==void 0?String(Z.connectors.slack.goalExtraction.timeoutMs):"",onChange:e=>ek(["connectors","slack","goalExtraction","timeoutMs"],e.trim()?Number(e):void 0),placeholder:"30000"})}),(0,a.jsx)(P,{label:"バイナリパス上書き(任意)",children:(0,a.jsx)(O,{value:Z.connectors?.slack?.goalExtraction?.bin??"",onChange:e=>ek(["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)(P,{label:"有効化",children:(0,a.jsx)(M,{checked:Z.connectors?.slack?.agentsCanvas?.enabled??!1,onChange:e=>ek(["connectors","slack","agentsCanvas","enabled"],e)})}),(0,a.jsx)(P,{label:"表示先チャンネル",children:(0,a.jsxs)("div",{className:"flex w-full gap-[var(--space-2)] items-center",children:[eh&&eh.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=>ek(["connectors","slack","agentsCanvas","channelId"],e.target.value||void 0),children:[(0,a.jsx)("option",{value:"",children:"— 選択してください —"}),eh.map(e=>(0,a.jsxs)("option",{value:e.id,children:[e.isPrivate?"🔒 ":"#",e.name]},e.id))]}):(0,a.jsx)(O,{value:Z.connectors?.slack?.agentsCanvas?.channelId??"",onChange:e=>ek(["connectors","slack","agentsCanvas","channelId"],e.trim()||void 0),placeholder:"C01234ABCDE — bot が member のチャンネル"}),(0,a.jsx)("button",{type:"button",onClick:ef,disabled:eu,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:eu?(0,a.jsx)(i.Loader2,{className:"h-4 w-4 animate-spin"}):eh?"更新":"読み込み"})]})}),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)(P,{label:"Canvas タイトル",children:(0,a.jsx)(O,{value:Z.connectors?.slack?.agentsCanvas?.title??"",onChange:e=>ek(["connectors","slack","agentsCanvas","title"],e.trim()||void 0),placeholder:"Ryoko Agents View"})}),(0,a.jsx)(P,{label:"更新間隔 (ms)",children:(0,a.jsx)(O,{type:"number",value:Z.connectors?.slack?.agentsCanvas?.pollIntervalMs!==void 0?String(Z.connectors.slack.agentsCanvas.pollIntervalMs):"",onChange:e=>ek(["connectors","slack","agentsCanvas","pollIntervalMs"],e.trim()?Number(e):void 0),placeholder:"30000(30秒, 最小 5000)"})}),(0,a.jsx)(P,{label:"グループ毎の最大表示件数",children:(0,a.jsx)(O,{type:"number",value:Z.connectors?.slack?.agentsCanvas?.maxPerGroup!==void 0?String(Z.connectors.slack.agentsCanvas.maxPerGroup):"",onChange:e=>ek(["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)(P,{label:"Bot Token",children:(0,a.jsx)(O,{type:"password",value:Z.connectors?.discord?.botToken??"",onChange:e=>ek(["connectors","discord","botToken"],e),placeholder:"Bot token..."})}),(0,a.jsx)(P,{label:"Allow From",children:(0,a.jsx)(O,{value:Array.isArray(Z.connectors?.discord?.allowFrom)?Z.connectors?.discord?.allowFrom?.join(", "):Z.connectors?.discord?.allowFrom??"",onChange:e=>ek(["connectors","discord","allowFrom"],e.trim()?e.split(",").map(e=>e.trim()).filter(Boolean):void 0),placeholder:"User IDs, comma-separated (optional)"})}),(0,a.jsx)(P,{label:"Guild ID",children:(0,a.jsx)(O,{value:Z.connectors?.discord?.guildId??"",onChange:e=>ek(["connectors","discord","guildId"],e.trim()||void 0),placeholder:"サーバー/Guild ID(任意)"})}),(0,a.jsx)(P,{label:"Channel ID",children:(0,a.jsx)(O,{value:Z.connectors?.discord?.channelId??"",onChange:e=>ek(["connectors","discord","channelId"],e.trim()||void 0),placeholder:"このチャンネルに限定(右クリック → Copy Channel ID)"})}),(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)(P,{label:"Bot Token",children:(0,a.jsx)(O,{type:"password",value:Z.connectors?.telegram?.botToken??"",onChange:e=>ek(["connectors","telegram","botToken"],e),placeholder:"123456:ABC-DEF..."})}),(0,a.jsx)(P,{label:"許可ユーザー (User ID)",children:(0,a.jsx)(O,{value:Array.isArray(Z.connectors?.telegram?.allowFrom)?Z.connectors?.telegram?.allowFrom?.join(", "):"",onChange:e=>ek(["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)(P,{label:"起動時に古いメッセージを無視",children:(0,a.jsx)(M,{checked:Z.connectors?.telegram?.ignoreOldMessagesOnBoot??!0,onChange:e=>ek(["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)(P,{label:"認証ディレクトリ",children:(0,a.jsx)(O,{value:Z.connectors?.whatsapp?.authDir??"",onChange:e=>ek(["connectors","whatsapp","authDir"],e.trim()||void 0),placeholder:"デフォルト: ~/.ryoko/.whatsapp-auth"})}),(0,a.jsx)(P,{label:"許可送信元",children:(0,a.jsx)(O,{value:Array.isArray(Z.connectors?.whatsapp?.allowFrom)?Z.connectors?.whatsapp?.allowFrom?.join(", "):"",onChange:e=>ek(["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 h.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"}),ek(["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),ek(["connectors","instances"],e.length>0?e:void 0)},children:(0,a.jsx)(s.Trash2,{size:14})})]}),(0,a.jsx)(P,{label:"Instance ID",children:(0,a.jsx)(O,{value:e.id??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],id:e},ek(["connectors","instances"],a)},placeholder:"e.g. discord-vox"})}),(0,a.jsx)(P,{label:"Type",children:(0,a.jsx)(_,{value:e.type??"discord",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],type:e},ek(["connectors","instances"],a)},options:[{value:"discord",label:"Discord"},{value:"slack",label:"Slack"},{value:"whatsapp",label:"WhatsApp"}]})}),(0,a.jsx)(P,{label:"Employee",children:(0,a.jsx)(_,{value:e.employee??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],employee:e||void 0},ek(["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)(P,{label:"Bot Token",children:(0,a.jsx)(O,{type:"password",value:e.botToken??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],botToken:e},ek(["connectors","instances"],a)},placeholder:"Bot token..."})}),(0,a.jsx)(P,{label:"Guild ID",children:(0,a.jsx)(O,{value:e.guildId??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],guildId:e.trim()||void 0},ek(["connectors","instances"],a)},placeholder:"Server/Guild ID"})}),(0,a.jsx)(P,{label:"Channel ID",children:(0,a.jsx)(O,{value:e.channelId??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],channelId:e.trim()||void 0},ek(["connectors","instances"],a)},placeholder:"Restrict to channel (optional)"})}),(0,a.jsx)(P,{label:"Allow From",children:(0,a.jsx)(O,{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},ek(["connectors","instances"],a)},placeholder:"User IDs, comma-separated (optional)"})})]}),"slack"===e.type&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(P,{label:"App Token",children:(0,a.jsx)(O,{type:"password",value:e.appToken??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],appToken:e},ek(["connectors","instances"],a)},placeholder:"xapp-..."})}),(0,a.jsx)(P,{label:"Bot Token",children:(0,a.jsx)(O,{type:"password",value:e.botToken??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],botToken:e},ek(["connectors","instances"],a)},placeholder:"xoxb-..."})})]}),"whatsapp"===e.type&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(P,{label:"Auth Directory",children:(0,a.jsx)(O,{value:e.authDir??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],authDir:e.trim()||void 0},ek(["connectors","instances"],a)},placeholder:"Default: ~/.jinn/.whatsapp-auth"})}),(0,a.jsx)(P,{label:"Allow From",children:(0,a.jsx)(O,{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},ek(["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)(B,{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)(P,{label:"Connector",children:(0,a.jsx)(_,{value:Z.cron?.defaultDelivery?.connector??"",onChange:e=>ek(["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)(P,{label:"Channel",children:(0,a.jsx)(O,{value:Z.cron?.defaultDelivery?.channel??"",onChange:e=>ek(["cron","defaultDelivery","channel"],e),placeholder:"#general"})}),(0,a.jsx)(E,{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)(B,{title:"Logging",children:[(0,a.jsx)(P,{label:"Level",children:(0,a.jsx)(_,{value:Z.logging?.level??"info",onChange:e=>ek(["logging","level"],e),options:[{value:"debug",label:"Debug"},{value:"info",label:"Info"},{value:"warn",label:"Warn"},{value:"error",label:"Error"}]})}),(0,a.jsx)(P,{label:"Stdout",children:(0,a.jsx)(M,{checked:Z.logging?.stdout??!0,onChange:e=>ek(["logging","stdout"],e)})}),(0,a.jsx)(P,{label:"File Logging",children:(0,a.jsx)(M,{checked:Z.logging?.file??!1,onChange:e=>ek(["logging","file"],e)})})]}),(0,a.jsx)(L,{}),(0,a.jsxs)("div",{className:"flex justify-end gap-[var(--space-3)] mb-[var(--space-6)]",children:[(0,a.jsxs)("button",{onClick:()=>ey(),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(){es(!0),eo(null),h.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(()=>es(!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)(B,{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"),C(),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)(s.Trash2,{size:14}),"すべての設定をリセット"]})]})})]})})})}],82074)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,82074,e=>{"use strict";var a=e.i(56438),t=e.i(97566),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),h=e.i(47721),m=e.i(43701);let u=[{value:"claude",label:"Anthropic(Claude)"},{value:"codex",label:"OpenAI(Codex)"},{value:"gemini",label:"Google(Gemini)"}],g=u.filter(e=>"gemini"!==e.value),b="__custom_model__",j=[{value:"claude-opus-5",label:"Opus 5 — 上(最上位 / 既定 / claude-opus-5)"},{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)"}],f=[{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 — 軽量(トリアージ向け)"}],y=[{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 k(e){return"claude"===e?j:"gemini"===e?y:f}function w(e){return"claude"===e?"claude-opus-5":"gemini"===e?"gemini-2.5-pro":"gpt-5.6-sol"}function N(e){return"claude"===e?"claude-haiku-4-5":"gpt-5-nano"}function C(e,a){return!!(a&&k(e).some(e=>e.value===a))}let S="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 T({id:e,engine:r,model:n,onChange:l,allowAutomatic:s=!1}){let o=C(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),h=`${e}-help`,m=`${e}-custom`,u="claude"===r?"例: claude-sonnet-5-20260801":"gemini"===r?"例: gemini-3.1-pro-preview":"例: gpt-private-preview";(0,t.useEffect)(()=>{let e=!!(n&&!C(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":h,onChange:e=>{let a=e.target.value;if(a===b){p(n&&!o?n:""),c(!0);return}c(!1),l(a||void 0)},className:`${S} cursor-pointer`,children:[s&&(0,a.jsx)("option",{value:"",children:"自動(ベンダー既定)"}),!s&&!n&&(0,a.jsx)("option",{value:"",children:"モデルを選択"}),k(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:m,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:u,"aria-label":"カスタムモデルID","aria-describedby":h,autoComplete:"off",className:S}),(0,a.jsx)("p",{id:h,className:"text-[length:var(--text-caption2)] text-[var(--text-tertiary)]",children:"一覧にないモデルは「カスタムモデルID」を選び、入力後に確定できます。"})]})}var A=e.i(23414),F=e.i(39331);let I="openryoko-update-notification";function E({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??""}),[p,x]=(0,t.useState)(!0),[v,m]=(0,t.useState)(!1),[u,g]=(0,t.useState)(!1),[b,j]=(0,t.useState)(null),f=(0,t.useCallback)(()=>{x(!0),h.api.getCronJobs().then(e=>{let a=e.find(e=>e.id===I||"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||""})):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)(()=>{f()},[f]);let y=Array.from(new Set([...e,...c.connector?[c.connector]:[]]));async function k(){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:"通知を有効にするにはコネクタと送信先が必要です"});m(!0);let e={id:l?.id||I,name:"OpenRyoko Update Notification",kind:"update-notification",enabled:c.enabled,schedule:c.schedule.trim(),timezone:c.timezone.trim()||void 0,prompt:"",delivery:c.connector.trim()&&c.channel.trim()?{connector:c.connector.trim(),channel:c.channel.trim()}:void 0};try{let a=l?await h.api.updateCronJob(l.id,e):await h.api.createCronJob(e);s(a),j({type:"success",message:c.enabled?"更新通知を保存しました。新しいリリースが見つかった時だけAIがチャットへ知らせます。":"更新通知を無効で保存しました。"})}catch(e){j({type:"error",message:e instanceof Error?e.message:"保存に失敗しました"})}finally{m(!1)}}async function w(){if(l){g(!0),j(null);try{await h.api.triggerCronJob(l.id),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)(A.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:"AIによるアップデート通知"}),(0,a.jsx)("p",{className:"mt-1 text-[length:var(--text-caption2)] leading-relaxed text-[var(--text-tertiary)]",children:"定期確認はAIを使わず、新しいバージョンを見つけた時だけAIが通知文を作成します。同じバージョンは一度だけ送信されます。"})]})]}),(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:"選択してください"}),y.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)]"})]})]}),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.jsxs)("button",{type:"button",onClick:w,disabled:u||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:[u?(0,a.jsx)(i.Loader2,{size:13,className:"animate-spin"}):(0,a.jsx)(F.Play,{size:13}),"今すぐ確認"]}),(0,a.jsxs)("button",{type:"button",onClick:k,disabled:v||u,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 D=[{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 B({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 P({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 O({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 _({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 M({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 G={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 L(){let[e,r]=(0,t.useState)(null),[n,l]=(0,t.useState)(!1),[s,o]=(0,t.useState)("");if((0,t.useEffect)(()=>{h.api.sttStatus().then(r).catch(()=>{})},[]),(0,t.useEffect)(()=>{if(!e?.downloading)return;let a=setInterval(()=>{h.api.sttStatus().then(r).catch(()=>{})},1500);return()=>clearInterval(a)},[e?.downloading]),!e)return null;let i=Object.entries(G).filter(([a])=>!e.languages.includes(a)).sort((e,a)=>e[1].localeCompare(a[1]));return(0,a.jsxs)(B,{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(){h.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}),G[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),h.api.sttUpdateConfig(t).then(()=>r(e=>e?{...e,languages:t}:e)).catch(()=>{}).finally(()=>l(!1))})(t),disabled:n,"aria-label":`Remove ${G[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(""),h.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 z(){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:f,setPortalEmoji:y,setLanguage:k,resetAll:C}=(0,d.useSettings)(),{theme:S,setTheme:A}=(0,x.useTheme)(),[F,I]=(0,t.useState)(e.portalName??""),[G,R]=(0,t.useState)(e.portalSubtitle??""),[$,W]=(0,t.useState)(e.operatorName??""),[H,U]=(0,t.useState)(e.portalEmoji??""),[J,q]=(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)([]),[eh,em]=(0,t.useState)(null),[eu,eg]=(0,t.useState)(!1),[eb,ej]=(0,t.useState)(null);(0,t.useEffect)(()=>{h.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 ef=async()=>{eg(!0),ej(null);try{let e=await fetch("/api/connectors/slack/channels"),a=await e.json();if(a?.ok)em(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}`),em(null)}}catch(e){ej(e instanceof Error?e.message:String(e)),em(null)}finally{eg(!1)}};function ey(){ea(!0),h.api.getConfig().then(e=>{X(e),er(null)}).catch(e=>er(e.message)).finally(()=>ea(!1))}function ek(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,r})}(0,t.useEffect)(()=>{I(e.portalName??""),R(e.portalSubtitle??""),W(e.operatorName??""),U(e.portalEmoji??""),q(e.language??"English"),V(e.accentColor??"")},[e.portalName,e.portalSubtitle,e.operatorName,e.portalEmoji,e.language,e.accentColor]),(0,t.useEffect)(()=>{ey()},[]),(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 ew=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)(B,{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=S===e.id;return(0,a.jsxs)("button",{onClick:()=>A(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:D.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)(B,{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)(m.EmojiPicker,{current:e.portalEmoji??"🧞",onSelect:e=>{y(e),Q(!1)},onClose:()=>Q(!1)})]})]})}),(0,a.jsx)(B,{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:F,onChange:e=>I(e.target.value),onBlur:()=>{b(F||null),h.api.completeOnboarding({portalName:F||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:G,onChange:e=>R(e.target.value),onBlur:()=>j(G||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:$,onChange:e=>W(e.target.value),onBlur:()=>{f($||null),h.api.completeOnboarding({operatorName:$||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:H,onChange:e=>U(e.target.value),onBlur:()=>y(H||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:J,onChange:e=>q(e.target.value),onBlur:()=>{k(J||"English"),h.api.completeOnboarding({language:J||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)(B,{title:"ゲートウェイ設定",children:[(0,a.jsx)(P,{label:"Port",children:(0,a.jsx)(O,{type:"number",value:String(Z.gateway?.port??""),onChange:e=>ek(["gateway","port"],Number(e)||0),placeholder:"7777"})}),(0,a.jsx)(P,{label:"Host",children:(0,a.jsx)(O,{value:Z.gateway?.host??"",onChange:e=>ek(["gateway","host"],e),placeholder:"127.0.0.1"})}),(0,a.jsx)(P,{label:"既定モデルのベンダー",htmlFor:"default-model-vendor",children:(0,a.jsx)(_,{id:"default-model-vendor",value:ew,onChange:e=>{ek(["engines","default"],e),Z.engines?.[e]?.model||ek(["engines",e,"model"],w(e)),"gemini"!==e||Z.engines?.gemini?.bin||ek(["engines","gemini","bin"],"gemini")},options:u})}),(0,a.jsx)(P,{label:"既定モデル",htmlFor:"default-model",children:(0,a.jsx)(T,{id:"default-model",engine:ew,model:Z.engines?.[ew]?.model??w(ew),onChange:e=>ek(["engines",ew,"model"],e??w(ew))})})]}),(0,a.jsxs)(B,{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)(P,{label:"Binary Path",children:(0,a.jsx)(O,{value:Z.engines?.claude?.bin??"",onChange:e=>ek(["engines","claude","bin"],e),placeholder:"claude"})}),(0,a.jsx)(P,{label:"Model",htmlFor:"claude-engine-model",children:(0,a.jsx)(T,{id:"claude-engine-model",engine:"claude",model:Z.engines?.claude?.model??w("claude"),onChange:e=>ek(["engines","claude","model"],e??w("claude"))})}),(0,a.jsx)(P,{label:"Effort Level",children:(0,a.jsx)(_,{value:Z.engines?.claude?.effortLevel??"default",onChange:e=>ek(["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"}]})}),(0,a.jsx)(P,{label:"インタラクティブPTY(Max定額)",children:(0,a.jsx)(M,{checked:Z.engines?.claude?.interactive??!1,onChange:e=>ek(["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)(P,{label:"Binary Path",children:(0,a.jsx)(O,{value:Z.engines?.codex?.bin??"",onChange:e=>ek(["engines","codex","bin"],e),placeholder:"codex"})}),(0,a.jsx)(P,{label:"Model",htmlFor:"codex-engine-model",children:(0,a.jsx)(T,{id:"codex-engine-model",engine:"codex",model:Z.engines?.codex?.model??w("codex"),onChange:e=>ek(["engines","codex","model"],e??w("codex"))})}),(0,a.jsx)(P,{label:"Effort Level",children:(0,a.jsx)(_,{value:Z.engines?.codex?.effortLevel??"default",onChange:e=>ek(["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"}]})}),(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)(P,{label:"Binary Path",children:(0,a.jsx)(O,{value:Z.engines?.gemini?.bin??"",onChange:e=>ek(["engines","gemini","bin"],e),placeholder:"gemini"})}),(0,a.jsx)(P,{label:"Model",htmlFor:"gemini-engine-model",children:(0,a.jsx)(T,{id:"gemini-engine-model",engine:"gemini",model:Z.engines?.gemini?.model??w("gemini"),onChange:e=>{ek(["engines","gemini","model"],e??w("gemini")),Z.engines?.gemini?.bin||ek(["engines","gemini","bin"],"gemini")}})})]}),(0,a.jsxs)(B,{title:"セッション",children:[(0,a.jsx)(P,{label:"新規メッセージで中断",children:(0,a.jsx)(M,{checked:Z.sessions?.interruptOnNewMessage??!0,onChange:e=>ek(["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)(P,{label:"Claude が利用上限に達した時",children:(0,a.jsx)(_,{value:Z.sessions?.rateLimitStrategy??"fallback",onChange:e=>ek(["sessions","rateLimitStrategy"],e),options:[{value:"wait",label:"待機して自動再開"},{value:"fallback",label:"GPT (Codex) に切り替え"}]})}),(0,a.jsx)("div",{className:"text-[length:var(--text-caption1)] text-[var(--label-secondary)] mt-[4px]",children:"「待機」は Claude のリセットを待ってからセッションを自動再開します。 「切り替え」は即座に GPT で応答し、リセット後に Claude へ戻します。"})]}),(0,a.jsxs)(B,{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)(z,{}),(0,a.jsx)(P,{label:"App Token",children:(0,a.jsx)(O,{type:"password",value:Z.connectors?.slack?.appToken??"",onChange:e=>ek(["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)(P,{label:"Bot Token",children:(0,a.jsx)(O,{type:"password",value:Z.connectors?.slack?.botToken??"",onChange:e=>ek(["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)(P,{label:"チャンネルでセッションを共有",children:(0,a.jsx)(M,{checked:Z.connectors?.slack?.shareSessionInChannel??!1,onChange:e=>ek(["connectors","slack","shareSessionInChannel"],e)})}),(0,a.jsx)(P,{label:"許可ユーザー",children:(0,a.jsx)(O,{value:Array.isArray(Z.connectors?.slack?.allowFrom)?Z.connectors?.slack?.allowFrom?.join(", "):Z.connectors?.slack?.allowFrom??"",onChange:e=>ek(["connectors","slack","allowFrom"],e.trim()?e.split(",").map(e=>e.trim()).filter(Boolean):void 0),placeholder:"U123, U456"})}),(0,a.jsx)(P,{label:"起動時に古いメッセージを無視",children:(0,a.jsx)(M,{checked:Z.connectors?.slack?.ignoreOldMessagesOnBoot??!0,onChange:e=>ek(["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)(P,{label:"im"===e?"DM(1対1)":"mpim"===e?"グループDM":"チャンネル",children:(0,a.jsx)(_,{value:Z.connectors?.slack?.respondTo?.[e]??"always",onChange:a=>ek(["connectors","slack","respondTo",e],a),options:[{value:"always",label:"常に応答"},{value:"mention",label:"@メンション時のみ"},{value:"never",label:"応答しない"}]})},e)),(0,a.jsx)(P,{label:"参加済みスレッドは再メンション不要",children:(0,a.jsx)(M,{checked:Z.connectors?.slack?.respondTo?.engagedThreads??!0,onChange:e=>ek(["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)(P,{label:"有効化",children:(0,a.jsx)(M,{checked:Z.connectors?.slack?.triage?.enabled??!1,onChange:e=>{ek(["connectors","slack","triage","enabled"],e),e&&!Z.connectors?.slack?.triage?.engine&&ek(["connectors","slack","triage","engine"],"codex"),e&&!Z.connectors?.slack?.triage?.model&&ek(["connectors","slack","triage","model"],N("codex"))}})}),(0,a.jsx)(P,{label:"モデルのベンダー",htmlFor:"triage-model-vendor",children:(0,a.jsx)(_,{id:"triage-model-vendor",value:Z.connectors?.slack?.triage?.engine??"codex",onChange:e=>{ek(["connectors","slack","triage","engine"],e),ek(["connectors","slack","triage","model"],N(e))},options:g})}),(0,a.jsx)(P,{label:"モデル",htmlFor:"triage-model",children:(0,a.jsx)(T,{id:"triage-model",engine:Z.connectors?.slack?.triage?.engine??"codex",model:Z.connectors?.slack?.triage?.model,allowAutomatic:!0,onChange:e=>ek(["connectors","slack","triage","model"],e??null)})}),(0,a.jsx)(P,{label:"タイムアウト (ms)",children:(0,a.jsx)(O,{type:"number",value:Z.connectors?.slack?.triage?.timeoutMs!==void 0?String(Z.connectors.slack.triage.timeoutMs):"",onChange:e=>ek(["connectors","slack","triage","timeoutMs"],e.trim()?Number(e):void 0),placeholder:"20000"})}),(0,a.jsx)(P,{label:"スレッド文脈の取得件数",children:(0,a.jsx)(O,{type:"number",value:Z.connectors?.slack?.triage?.threadContextLimit!==void 0?String(Z.connectors.slack.triage.threadContextLimit):"",onChange:e=>ek(["connectors","slack","triage","threadContextLimit"],e.trim()?Number(e):void 0),placeholder:"10"})}),(0,a.jsx)(P,{label:"ペルソナ(任意)",children:(0,a.jsx)(O,{value:Z.connectors?.slack?.triage?.persona??"",onChange:e=>ek(["connectors","slack","triage","persona"],e.trim()||void 0),placeholder:"Short description of what this bot is good at"})}),(0,a.jsx)(P,{label:"バイナリパス上書き(任意)",children:(0,a.jsx)(O,{value:Z.connectors?.slack?.triage?.bin??"",onChange:e=>ek(["connectors","slack","triage","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:"Goal 判定"}),(0,a.jsx)(P,{label:"有効化",children:(0,a.jsx)(M,{checked:Z.connectors?.slack?.goalExtraction?.enabled??!1,onChange:e=>{ek(["connectors","slack","goalExtraction","enabled"],e),e&&!Z.connectors?.slack?.goalExtraction?.engine&&ek(["connectors","slack","goalExtraction","engine"],"codex"),e&&!Z.connectors?.slack?.goalExtraction?.model&&ek(["connectors","slack","goalExtraction","model"],N("codex"))}})}),(0,a.jsx)(P,{label:"モデルのベンダー",htmlFor:"goal-model-vendor",children:(0,a.jsx)(_,{id:"goal-model-vendor",value:Z.connectors?.slack?.goalExtraction?.engine??"codex",onChange:e=>{ek(["connectors","slack","goalExtraction","engine"],e),ek(["connectors","slack","goalExtraction","model"],N(e))},options:g})}),(0,a.jsx)(P,{label:"モデル",htmlFor:"goal-model",children:(0,a.jsx)(T,{id:"goal-model",engine:Z.connectors?.slack?.goalExtraction?.engine??"codex",model:Z.connectors?.slack?.goalExtraction?.model,allowAutomatic:!0,onChange:e=>ek(["connectors","slack","goalExtraction","model"],e??null)})}),(0,a.jsx)(P,{label:"タイムアウト (ms)",children:(0,a.jsx)(O,{type:"number",value:Z.connectors?.slack?.goalExtraction?.timeoutMs!==void 0?String(Z.connectors.slack.goalExtraction.timeoutMs):"",onChange:e=>ek(["connectors","slack","goalExtraction","timeoutMs"],e.trim()?Number(e):void 0),placeholder:"30000"})}),(0,a.jsx)(P,{label:"バイナリパス上書き(任意)",children:(0,a.jsx)(O,{value:Z.connectors?.slack?.goalExtraction?.bin??"",onChange:e=>ek(["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)(P,{label:"有効化",children:(0,a.jsx)(M,{checked:Z.connectors?.slack?.agentsCanvas?.enabled??!1,onChange:e=>ek(["connectors","slack","agentsCanvas","enabled"],e)})}),(0,a.jsx)(P,{label:"表示先チャンネル",children:(0,a.jsxs)("div",{className:"flex w-full gap-[var(--space-2)] items-center",children:[eh&&eh.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=>ek(["connectors","slack","agentsCanvas","channelId"],e.target.value||void 0),children:[(0,a.jsx)("option",{value:"",children:"— 選択してください —"}),eh.map(e=>(0,a.jsxs)("option",{value:e.id,children:[e.isPrivate?"🔒 ":"#",e.name]},e.id))]}):(0,a.jsx)(O,{value:Z.connectors?.slack?.agentsCanvas?.channelId??"",onChange:e=>ek(["connectors","slack","agentsCanvas","channelId"],e.trim()||void 0),placeholder:"C01234ABCDE — bot が member のチャンネル"}),(0,a.jsx)("button",{type:"button",onClick:ef,disabled:eu,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:eu?(0,a.jsx)(i.Loader2,{className:"h-4 w-4 animate-spin"}):eh?"更新":"読み込み"})]})}),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)(P,{label:"Canvas タイトル",children:(0,a.jsx)(O,{value:Z.connectors?.slack?.agentsCanvas?.title??"",onChange:e=>ek(["connectors","slack","agentsCanvas","title"],e.trim()||void 0),placeholder:"Ryoko Agents View"})}),(0,a.jsx)(P,{label:"更新間隔 (ms)",children:(0,a.jsx)(O,{type:"number",value:Z.connectors?.slack?.agentsCanvas?.pollIntervalMs!==void 0?String(Z.connectors.slack.agentsCanvas.pollIntervalMs):"",onChange:e=>ek(["connectors","slack","agentsCanvas","pollIntervalMs"],e.trim()?Number(e):void 0),placeholder:"30000(30秒, 最小 5000)"})}),(0,a.jsx)(P,{label:"グループ毎の最大表示件数",children:(0,a.jsx)(O,{type:"number",value:Z.connectors?.slack?.agentsCanvas?.maxPerGroup!==void 0?String(Z.connectors.slack.agentsCanvas.maxPerGroup):"",onChange:e=>ek(["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)(P,{label:"Bot Token",children:(0,a.jsx)(O,{type:"password",value:Z.connectors?.discord?.botToken??"",onChange:e=>ek(["connectors","discord","botToken"],e),placeholder:"Bot token..."})}),(0,a.jsx)(P,{label:"Allow From",children:(0,a.jsx)(O,{value:Array.isArray(Z.connectors?.discord?.allowFrom)?Z.connectors?.discord?.allowFrom?.join(", "):Z.connectors?.discord?.allowFrom??"",onChange:e=>ek(["connectors","discord","allowFrom"],e.trim()?e.split(",").map(e=>e.trim()).filter(Boolean):void 0),placeholder:"User IDs, comma-separated (optional)"})}),(0,a.jsx)(P,{label:"Guild ID",children:(0,a.jsx)(O,{value:Z.connectors?.discord?.guildId??"",onChange:e=>ek(["connectors","discord","guildId"],e.trim()||void 0),placeholder:"サーバー/Guild ID(任意)"})}),(0,a.jsx)(P,{label:"Channel ID",children:(0,a.jsx)(O,{value:Z.connectors?.discord?.channelId??"",onChange:e=>ek(["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)(P,{label:"dm"===e?"DM(1対1・グループ)":"チャンネル/スレッド",children:(0,a.jsx)(_,{value:Z.connectors?.discord?.respondTo?.[e]??"always",onChange:a=>ek(["connectors","discord","respondTo",e],a),options:[{value:"always",label:"常に応答"},{value:"mention",label:"@メンション/リプライ時のみ"},{value:"never",label:"応答しない"}]})},e)),(0,a.jsx)(P,{label:"参加済みスレッドは再メンション不要",children:(0,a.jsx)(M,{checked:Z.connectors?.discord?.respondTo?.engagedThreads??!0,onChange:e=>ek(["connectors","discord","respondTo","engagedThreads"],e)})}),(0,a.jsx)(P,{label:"返信スタイル(平場チャンネル)",children:(0,a.jsx)(_,{value:Z.connectors?.discord?.replyStyle??"channel",onChange:e=>ek(["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)(P,{label:"Bot Token",children:(0,a.jsx)(O,{type:"password",value:Z.connectors?.telegram?.botToken??"",onChange:e=>ek(["connectors","telegram","botToken"],e),placeholder:"123456:ABC-DEF..."})}),(0,a.jsx)(P,{label:"許可ユーザー (User ID)",children:(0,a.jsx)(O,{value:Array.isArray(Z.connectors?.telegram?.allowFrom)?Z.connectors?.telegram?.allowFrom?.join(", "):"",onChange:e=>ek(["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)(P,{label:"起動時に古いメッセージを無視",children:(0,a.jsx)(M,{checked:Z.connectors?.telegram?.ignoreOldMessagesOnBoot??!0,onChange:e=>ek(["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)(P,{label:"認証ディレクトリ",children:(0,a.jsx)(O,{value:Z.connectors?.whatsapp?.authDir??"",onChange:e=>ek(["connectors","whatsapp","authDir"],e.trim()||void 0),placeholder:"デフォルト: ~/.ryoko/.whatsapp-auth"})}),(0,a.jsx)(P,{label:"許可送信元",children:(0,a.jsx)(O,{value:Array.isArray(Z.connectors?.whatsapp?.allowFrom)?Z.connectors?.whatsapp?.allowFrom?.join(", "):"",onChange:e=>ek(["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 h.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"}),ek(["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),ek(["connectors","instances"],e.length>0?e:void 0)},children:(0,a.jsx)(l.Trash2,{size:14})})]}),(0,a.jsx)(P,{label:"Instance ID",children:(0,a.jsx)(O,{value:e.id??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],id:e},ek(["connectors","instances"],a)},placeholder:"e.g. discord-vox"})}),(0,a.jsx)(P,{label:"Type",children:(0,a.jsx)(_,{value:e.type??"discord",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],type:e},ek(["connectors","instances"],a)},options:[{value:"discord",label:"Discord"},{value:"slack",label:"Slack"},{value:"whatsapp",label:"WhatsApp"}]})}),(0,a.jsx)(P,{label:"Employee",children:(0,a.jsx)(_,{value:e.employee??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],employee:e||void 0},ek(["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)(P,{label:"Bot Token",children:(0,a.jsx)(O,{type:"password",value:e.botToken??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],botToken:e},ek(["connectors","instances"],a)},placeholder:"Bot token..."})}),(0,a.jsx)(P,{label:"Guild ID",children:(0,a.jsx)(O,{value:e.guildId??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],guildId:e.trim()||void 0},ek(["connectors","instances"],a)},placeholder:"Server/Guild ID"})}),(0,a.jsx)(P,{label:"Channel ID",children:(0,a.jsx)(O,{value:e.channelId??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],channelId:e.trim()||void 0},ek(["connectors","instances"],a)},placeholder:"Restrict to channel (optional)"})}),(0,a.jsx)(P,{label:"Allow From",children:(0,a.jsx)(O,{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},ek(["connectors","instances"],a)},placeholder:"User IDs, comma-separated (optional)"})})]}),"slack"===e.type&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(P,{label:"App Token",children:(0,a.jsx)(O,{type:"password",value:e.appToken??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],appToken:e},ek(["connectors","instances"],a)},placeholder:"xapp-..."})}),(0,a.jsx)(P,{label:"Bot Token",children:(0,a.jsx)(O,{type:"password",value:e.botToken??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],botToken:e},ek(["connectors","instances"],a)},placeholder:"xoxb-..."})})]}),"whatsapp"===e.type&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(P,{label:"Auth Directory",children:(0,a.jsx)(O,{value:e.authDir??"",onChange:e=>{let a=[...Z.connectors?.instances||[]];a[t]={...a[t],authDir:e.trim()||void 0},ek(["connectors","instances"],a)},placeholder:"Default: ~/.jinn/.whatsapp-auth"})}),(0,a.jsx)(P,{label:"Allow From",children:(0,a.jsx)(O,{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},ek(["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)(B,{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)(P,{label:"Connector",children:(0,a.jsx)(_,{value:Z.cron?.defaultDelivery?.connector??"",onChange:e=>ek(["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)(P,{label:"Channel",children:(0,a.jsx)(O,{value:Z.cron?.defaultDelivery?.channel??"",onChange:e=>ek(["cron","defaultDelivery","channel"],e),placeholder:"#general"})}),(0,a.jsx)(E,{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)(B,{title:"Logging",children:[(0,a.jsx)(P,{label:"Level",children:(0,a.jsx)(_,{value:Z.logging?.level??"info",onChange:e=>ek(["logging","level"],e),options:[{value:"debug",label:"Debug"},{value:"info",label:"Info"},{value:"warn",label:"Warn"},{value:"error",label:"Error"}]})}),(0,a.jsx)(P,{label:"Stdout",children:(0,a.jsx)(M,{checked:Z.logging?.stdout??!0,onChange:e=>ek(["logging","stdout"],e)})}),(0,a.jsx)(P,{label:"File Logging",children:(0,a.jsx)(M,{checked:Z.logging?.file??!1,onChange:e=>ek(["logging","file"],e)})})]}),(0,a.jsx)(L,{}),(0,a.jsxs)("div",{className:"flex justify-end gap-[var(--space-3)] mb-[var(--space-6)]",children:[(0,a.jsxs)("button",{onClick:()=>ey(),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),h.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)(B,{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"),C(),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)}]);
@@ -9,7 +9,7 @@ b:I[5437,["/_next/static/chunks/0nsg_lm2gtp4v.js","/_next/static/chunks/3tddjc7n
9
9
  d:I[56753,["/_next/static/chunks/0nsg_lm2gtp4v.js","/_next/static/chunks/3tddjc7ntk5ue.js"],"default",1]
10
10
  :HL["/_next/static/chunks/3stop8a72z6ft.css","style"]
11
11
  8:X
12
- 0:{"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/3stop8a72z6ft.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0nsg_lm2gtp4v.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/3tddjc7ntk5ue.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":[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/3stop8a72z6ft.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"Kudq_QcLnSoz7UYDmluYu"}
12
+ 0:{"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/3stop8a72z6ft.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0nsg_lm2gtp4v.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/3tddjc7ntk5ue.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":[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/3stop8a72z6ft.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"vW8A0EhHuyi1vRgv7Qkyg"}
13
13
  8:C
14
14
  a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]
15
15
  e:I[56045,["/_next/static/chunks/0nsg_lm2gtp4v.js","/_next/static/chunks/3tddjc7ntk5ue.js"],"IconMark"]
@@ -11,7 +11,7 @@ f:I[38085,["/_next/static/chunks/0nsg_lm2gtp4v.js","/_next/static/chunks/3tddjc7
11
11
  6:X
12
12
  e:X
13
13
  e:C
14
- 0:{"buildId":"Kudq_QcLnSoz7UYDmluYu","data":[{"rsc":["$","$1","c",{"children":[[["$","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."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":"$@5","staleTime":"$6","varyParams":null},{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",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":["$","$L8",null,{"children":["$","$3",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"}],["$","$L9","4",{}]]}]}]}],null]}],"isPartial":"$@a","staleTime":"$6","varyParams":null},{"rsc":["$","$1","c",{"children":[null,["$","$Lb",null,{"parallelRouterKey":"children","template":["$","$Lc",null,{}]}]]}],"isPartial":"$@d","staleTime":"$6","varyParams":"$e"},{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3stop8a72z6ft.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0nsg_lm2gtp4v.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/3tddjc7ntk5ue.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":["$","$Lb",null,{"parallelRouterKey":"children","template":["$","$Lc",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:data:0:rsc:props:children: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:data:0:rsc:props:children:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:data:0:rsc:props:children:0:1:props:children:props:children:2:props:style","children":"$L10"}]]}]}]],[]]}]}]}]]}]]}],"isPartial":"$@11","staleTime":"$6","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@12","rootVaryParams":null,"needsRuntimeRequest":"$@13"}
14
+ 0:{"buildId":"vW8A0EhHuyi1vRgv7Qkyg","data":[{"rsc":["$","$1","c",{"children":[[["$","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."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":"$@5","staleTime":"$6","varyParams":null},{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",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":["$","$L8",null,{"children":["$","$3",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"}],["$","$L9","4",{}]]}]}]}],null]}],"isPartial":"$@a","staleTime":"$6","varyParams":null},{"rsc":["$","$1","c",{"children":[null,["$","$Lb",null,{"parallelRouterKey":"children","template":["$","$Lc",null,{}]}]]}],"isPartial":"$@d","staleTime":"$6","varyParams":"$e"},{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3stop8a72z6ft.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0nsg_lm2gtp4v.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/3tddjc7ntk5ue.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":["$","$Lb",null,{"parallelRouterKey":"children","template":["$","$Lc",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:data:0:rsc:props:children: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:data:0:rsc:props:children:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:data:0:rsc:props:children:0:1:props:children:props:children:2:props:style","children":"$L10"}]]}]}]],[]]}]}]}]]}]]}],"isPartial":"$@11","staleTime":"$6","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@12","rootVaryParams":null,"needsRuntimeRequest":"$@13"}
15
15
  4:null
16
16
  10:["$","h2",null,{"style":"$0:data:0:rsc:props:children:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]
17
17
  6:300
@@ -1,2 +1,2 @@
1
1
  :HL["/_next/static/chunks/3stop8a72z6ft.css","style"]
2
- 0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"/_not-found","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"Kudq_QcLnSoz7UYDmluYu"}
2
+ 0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"/_not-found","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"vW8A0EhHuyi1vRgv7Qkyg"}
@@ -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/3stop8a72z6ft.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/2q9pem30qccb2.js"/><script src="/_next/static/chunks/3m14pwz5rz7tl.js" async=""></script><script src="/_next/static/chunks/0y7lqjb424p1t.js" async=""></script><script src="/_next/static/chunks/turbopack-0my_el9wn34di.js" async=""></script><script src="/_next/static/chunks/0nsg_lm2gtp4v.js" async="" crossorigin=""></script><script src="/_next/static/chunks/3tddjc7ntk5ue.js" async="" crossorigin=""></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/2q9pem30qccb2.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/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.js\"],\"ClientProviders\"]\n3:I[85920,[\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.js\"],\"default\"]\n4:I[5370,[\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.js\"],\"default\"]\n5:I[5437,[\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[5437,[\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.js\"],\"ViewportBoundary\"]\nb:I[5437,[\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.js\"],\"MetadataBoundary\"]\nd:I[56753,[\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/3stop8a72z6ft.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/3stop8a72z6ft.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/3tddjc7ntk5ue.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/3stop8a72z6ft.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Kudq_QcLnSoz7UYDmluYu\"}\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[56045,[\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.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/3stop8a72z6ft.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/2q9pem30qccb2.js"/><script src="/_next/static/chunks/3m14pwz5rz7tl.js" async=""></script><script src="/_next/static/chunks/0y7lqjb424p1t.js" async=""></script><script src="/_next/static/chunks/turbopack-0my_el9wn34di.js" async=""></script><script src="/_next/static/chunks/0nsg_lm2gtp4v.js" async="" crossorigin=""></script><script src="/_next/static/chunks/3tddjc7ntk5ue.js" async="" crossorigin=""></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/2q9pem30qccb2.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/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.js\"],\"ClientProviders\"]\n3:I[85920,[\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.js\"],\"default\"]\n4:I[5370,[\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.js\"],\"default\"]\n5:I[5437,[\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[5437,[\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.js\"],\"ViewportBoundary\"]\nb:I[5437,[\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.js\"],\"MetadataBoundary\"]\nd:I[56753,[\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/3stop8a72z6ft.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/3stop8a72z6ft.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/3tddjc7ntk5ue.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/3stop8a72z6ft.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"vW8A0EhHuyi1vRgv7Qkyg\"}\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[56045,[\"/_next/static/chunks/0nsg_lm2gtp4v.js\",\"/_next/static/chunks/3tddjc7ntk5ue.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>