pi-roundtable-web 0.23.1 → 0.24.0

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 (88) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +90 -16
  3. package/dist/chunk-action-menu-7v5fce2v.js +1 -0
  4. package/dist/chunk-agent-2rw4ydw2.js +1 -0
  5. package/dist/chunk-agent-sheet-2q24dkkf.js +3 -0
  6. package/dist/chunk-character-creator-8q6ympxj.js +1 -0
  7. package/dist/chunk-codeeditor-fgmq298t.js +2 -0
  8. package/dist/chunk-connectors-mr53r7fh.js +1 -0
  9. package/dist/chunk-conversations-4vy2z6w9.js +1 -0
  10. package/dist/chunk-entry-jg1eem82.js +1 -0
  11. package/dist/chunk-group-scene-na95b1te.js +1 -0
  12. package/dist/chunk-index-11rjg8a8.js +1 -0
  13. package/dist/chunk-index-1y50d6sj.js +2 -0
  14. package/dist/chunk-index-5y2r0eaj.js +47 -0
  15. package/dist/chunk-index-6t68gbex.js +2 -0
  16. package/dist/chunk-index-7fphxxzd.js +14 -0
  17. package/dist/chunk-index-80f1zkp6.css +1 -0
  18. package/dist/chunk-index-87h45frg.js +2 -0
  19. package/dist/chunk-index-bnwmssyn.js +2 -0
  20. package/dist/chunk-index-ckgbszwt.js +51 -0
  21. package/dist/chunk-index-fmjjekhd.js +2 -0
  22. package/dist/chunk-index-mpm90318.js +2 -0
  23. package/dist/chunk-index-t1m65yn6.js +13 -0
  24. package/dist/chunk-index-t711t17m.js +2 -0
  25. package/dist/chunk-index-txv7qvyy.js +2 -0
  26. package/dist/chunk-index-wr3dg24d.js +2 -0
  27. package/dist/chunk-index-yx683d5n.js +2 -0
  28. package/dist/chunk-lang-css-fkdg3x8x.js +1 -0
  29. package/dist/chunk-lang-dockerfile-ey0nvhhm.js +1 -0
  30. package/dist/chunk-lang-go-403qsw9f.js +7 -0
  31. package/dist/chunk-lang-html-v8h9g977.js +1 -0
  32. package/dist/chunk-lang-javascript-ykb2vhaa.js +1 -0
  33. package/dist/chunk-lang-json-2rze3rpy.js +1 -0
  34. package/dist/chunk-lang-markdown-6w2htnfc.js +6 -0
  35. package/dist/chunk-lang-python-9jk5a49y.js +3 -0
  36. package/dist/chunk-lang-rust-24fggcqx.js +1 -0
  37. package/dist/chunk-lang-shell-cgq6q0kj.js +1 -0
  38. package/dist/chunk-lang-sql-gjywb9ke.js +2 -0
  39. package/dist/chunk-lang-toml-xh45nm68.js +1 -0
  40. package/dist/chunk-lang-typescript-qh6rebyb.js +1 -0
  41. package/dist/chunk-lang-xml-1mh879j9.js +1 -0
  42. package/dist/chunk-lang-yaml-jac98srt.js +1 -0
  43. package/dist/chunk-menu-items-zjpyj51b.js +2 -0
  44. package/dist/chunk-notes-sjba7kw3.js +1 -0
  45. package/dist/chunk-overview-26r77kb6.js +1 -0
  46. package/dist/chunk-room-confirms-851184ep.js +1 -0
  47. package/dist/chunk-room-menu-8y9c026y.js +1 -0
  48. package/dist/chunk-skills-56s4hdbn.js +1 -0
  49. package/dist/chunk-table-qykpvp32.js +1 -0
  50. package/dist/chunk-table2d-k60ressj.js +1 -0
  51. package/dist/chunk-table3d-bv2ajk39.js +4220 -0
  52. package/dist/chunk-transcript-vekz1mh6.js +1 -0
  53. package/dist/chunk-workspace-hevefd0d.js +1 -0
  54. package/dist/chunk-zh-tw-5r2wjre0.js +1 -0
  55. package/dist/index.html +2 -1
  56. package/dist/sw.js +1 -1
  57. package/package.json +21 -3
  58. package/src/api-types.ts +161 -0
  59. package/src/app/app.ts +28 -0
  60. package/src/app/rooms.ts +7 -1
  61. package/src/app/routes.ts +223 -1
  62. package/src/app/workspace-files.ts +1485 -0
  63. package/src/console-api.ts +5 -0
  64. package/src/i18n/zh-tw.ts +185 -24
  65. package/src/options.ts +182 -5
  66. package/src/push/mutes.ts +68 -0
  67. package/src/push/quiet-hours.ts +60 -0
  68. package/src/push/triggers.ts +40 -9
  69. package/src/web-plugin.ts +46 -2
  70. package/dist/chunk-character-creator-660d2t6p.js +0 -1
  71. package/dist/chunk-connectors-d19v8cjc.js +0 -1
  72. package/dist/chunk-conversations-4cmexmqq.js +0 -1
  73. package/dist/chunk-entry-8xpx35ef.js +0 -1
  74. package/dist/chunk-index-19g8jmr8.js +0 -2
  75. package/dist/chunk-index-362dfedj.js +0 -1
  76. package/dist/chunk-index-6g69tqt0.js +0 -47
  77. package/dist/chunk-index-89q2qdkj.css +0 -1
  78. package/dist/chunk-index-9tvf6es7.js +0 -41
  79. package/dist/chunk-index-p8h0e861.js +0 -2
  80. package/dist/chunk-index-xw5hhmfq.js +0 -2
  81. package/dist/chunk-notes-fefwds14.js +0 -1
  82. package/dist/chunk-overview-bxpwpmn6.js +0 -1
  83. package/dist/chunk-skills-pce3zgxy.js +0 -1
  84. package/dist/chunk-table-zmpbrfvz.js +0 -1
  85. package/dist/chunk-table2d-ac2gez71.js +0 -1
  86. package/dist/chunk-table3d-g258jemr.js +0 -4229
  87. package/dist/chunk-transcript-yhtjp3pd.js +0 -1
  88. package/dist/chunk-zh-tw-anqhqpaz.js +0 -1
@@ -1,2 +0,0 @@
1
- var o=(a)=>{let e=a.codePointAt(0)??0;return e>=11904&&e<=64255?1:e>=65280&&e<=65519?1:0.6};function ie(a,e){if(e(a))return a;let t=Array.from(a);while(t.length>1){t.pop();let n=`${t.join("").trimEnd()}…`;if(e(n))return n}return"…"}function oe(a,e){let t=(n)=>Array.from(n).reduce((l,r)=>l+o(r),0);return ie(a,(n)=>t(n)<=e)}var Y=11,f=13.5,i=1.6,b=2;function le(a){let e=a.fontCell/a.cellWidth*a.plateWidth*a.pxPerUnit;if(!(e>0))return{scale:1,names:!1,px:0};let t=Math.max(1,Math.min(b,0.95*a.gap/a.plateWidth)),n=t>=i?f:Y*1.02,l=Math.min(t,Math.max(1,n/e)),r=e*l;return{scale:l,names:r>=Y-0.000001,px:r}}function ce(a){return a.map((e,t)=>({value:e,index:t})).sort((e,t)=>e.value-t.value||e.index-t.index).map((e)=>e.index)}function re(a,e){let t=Math.min(1,Math.max(0,-a));return e*t*t}var s={modern:{light:{bg:"#e8ebef",floor:"#d6dbe2",floorTex:"plain",table:"#e6c79a",rim:"#bf986a",pedestal:"#a3a9b2",stool:"#8e98a8",inlay:"#ffffff",inlayTex:"ring",rug:"#f8f9fb",rugEdge:"#b7bfca",hemiSky:"#ffffff",hemiGround:"#c7ccd4",hemiI:1.9,keyColor:"#fff3e2",keyI:1.5,pointColor:"#ffffff",pointI:0,candles:!1,flame:"#ffd9a0",flameI:0.5,shadow:0.3,labelBg:"#ffffff",labelFg:"#1f2430",labelAccent:"#1f2430",glowBlend:"normal",glowGain:0.9,css:{bg:"#e8ebef",table:"#e6c79a",rim:"#bf986a",floor:"#d6dbe2",text:"#1f2430",plate:"#ffffff"}},dark:{bg:"#0f1218",floor:"#1a1f29",floorTex:"plain",table:"#a7794f",rim:"#6e4d33",pedestal:"#3a404c",stool:"#5d6a82",inlay:"#e9d3b4",inlayTex:"ring",rug:"#262e3b",rugEdge:"#161b24",hemiSky:"#9bb0d6",hemiGround:"#222633",hemiI:1.5,keyColor:"#d7e4ff",keyI:1.1,pointColor:"#ffffff",pointI:0,candles:!1,flame:"#ffcf8a",flameI:0.7,shadow:0.55,labelBg:"#1c212b",labelFg:"#f2f4f8",labelAccent:"#f2f4f8",glowBlend:"add",glowGain:1,css:{bg:"#0f1218",table:"#a7794f",rim:"#6e4d33",floor:"#1a1f29",text:"#f2f4f8",plate:"#1c212b"}}},camelot:{light:{bg:"#e4d4ab",floor:"#b6ad9a",floorTex:"stone",table:"#b57a3f",rim:"#c9a227",pedestal:"#715f48",stool:"#a8744a",inlay:"#e8c24a",inlayTex:"rune",rug:"#8d4a3d",rugEdge:"#c9a227",hemiSky:"#fff1d2",hemiGround:"#a89168",hemiI:1.8,keyColor:"#ffe0ac",keyI:1.35,pointColor:"#ffb35c",pointI:10,candles:!0,flame:"#ff9d2e",flameI:0.8,shadow:0.38,labelBg:"#f6ebcd",labelFg:"#3a2a14",labelAccent:"#b8901c",glowBlend:"normal",glowGain:0.95,css:{bg:"#e4d4ab",table:"#b57a3f",rim:"#c9a227",floor:"#b6ad9a",text:"#3a2a14",plate:"#f6ebcd"}},dark:{bg:"#070c24",floor:"#222844",floorTex:"stone",table:"#7a4b2b",rim:"#d4af37",pedestal:"#2c2640",stool:"#9c6b3c",inlay:"#e0b94a",inlayTex:"rune",rug:"#3a1730",rugEdge:"#d4af37",hemiSky:"#5365b8",hemiGround:"#0f1330",hemiI:1.15,keyColor:"#a8bcff",keyI:0.7,pointColor:"#ffa04a",pointI:26,candles:!0,flame:"#ffa63d",flameI:1,shadow:0.6,labelBg:"#0f1638",labelFg:"#f6e6b4",labelAccent:"#d4af37",glowBlend:"add",glowGain:1.05,css:{bg:"#070c24",table:"#7a4b2b",rim:"#d4af37",floor:"#222844",text:"#f6e6b4",plate:"#0f1638"}}}},H=(a,e)=>s[a][e],F={done:"#58c878",error:"#ee4b4b"};
2
- export{ie,oe,Y,le,ce,re,H,F};
@@ -1,2 +0,0 @@
1
- import{a,o,t,e,n}from"./chunk-index-9tvf6es7.js";function N(l){let s=o(null),{open:c}=l;return a(()=>{let i=s.current;if(!i)return;if(c&&!i.open)i.showModal();if(!c&&i.open)i.close()},[c]),e("dialog",{ref:s,onClose:l.onClose,"aria-label":l.title,children:n("div",{className:"stack",children:[n("div",{className:"card-head",children:[e("h2",{children:l.title}),e("button",{type:"button",className:"secondary","aria-label":t("Close"),onClick:l.onClose,children:t("Close")})]}),l.open?l.children:null]})})}
2
- export{N};
@@ -1 +0,0 @@
1
- import{A,a,o,i,t,r,e,n,p,l,m,f,s,d,g,S,se,x}from"./chunk-index-9tvf6es7.js";import{N}from"./chunk-index-xw5hhmfq.js";var B=[{kind:"core",label:r("Core"),hint:r("Carried into every turn.")},{kind:"note",label:r("Note"),hint:r("Searched when the assistant needs them.")},{kind:"event",label:r("Events"),hint:r("Carried into every turn until their date.")}],O=300;function ae(){let{timeZone:h}=g(),{version:v}=S(),[u,D]=i("core"),[k,E]=i(""),[C,I]=i(),[b,F]=i(),[w,P]=i(),[V,L]=i(),[K,H]=i(),T=x(()=>s.principals(),"principals").data,W=o(0),R=A(async(c)=>{let y=++W.current;try{let q=await s.notes(c.trim(),K);if(y!==W.current)return;I(q),F(void 0)}catch(q){if(y===W.current)F(d(q))}},[K]);a(()=>{let c=setTimeout(()=>void R(k),O);return()=>clearTimeout(c)},[k,R,v]);let _=(C??[]).filter((c)=>c.kind===u).sort((c,y)=>u==="event"?(c.eventDate??"").localeCompare(y.eventDate??""):c.id-y.id),M=se(h);return n("section",{className:"stack",children:[n("div",{className:"card-head",children:[n("div",{children:[e("h2",{children:t("Notes")}),e("p",{className:"hint",children:t("What the assistant remembers. A change applies from the next turn.")})]}),e("button",{type:"button",onClick:()=>P({draft:{kind:u,fact:"",eventDate:""}}),children:t("Add")})]}),T&&T.principals.length>1?e(Q,{people:T,shown:K,choose:(c)=>{I(void 0),H(c)}}):null,n("div",{className:"toolbar",children:[e("div",{className:"tabs",role:"tablist",children:B.map((c)=>n("button",{type:"button",role:"tab","aria-selected":u===c.kind,onClick:()=>D(c.kind),children:[t(c.label),C?` ${C.filter((y)=>y.kind===c.kind).length}`:""]},c.kind))}),e("input",{type:"search",placeholder:t("Search (words separated by spaces)"),"aria-label":t("Search notes"),value:k,onChange:(c)=>E(c.target.value)})]}),e("p",{className:"hint",children:t(B.find((c)=>c.kind===u)?.hint??"")}),b?e(l,{message:b}):null,!C?e(p,{}):_.length===0?e(m,{children:k?t("No matching notes."):t("Nothing of this kind yet.")}):_.map((c)=>e("article",{className:"card",children:n("div",{className:"card-head",children:[n("div",{children:[c.eventDate?n("p",{className:"meta",children:[c.eventDate," ",c.eventDate<M?e(f,{children:t("past")}):null]}):null,e("p",{className:"text",children:c.fact})]}),n("div",{className:"actions",children:[e("button",{type:"button",className:"secondary",onClick:()=>P({note:c,draft:{kind:c.kind,fact:c.fact,eventDate:c.eventDate??""}}),children:t("Edit")}),e("button",{type:"button",className:"danger",onClick:()=>L(c),children:t("Delete")})]})]})},c.id)),e(N,{open:w!==void 0,title:w?.note?t("Edit note"):t("Add note"),onClose:()=>P(void 0),children:w?e(Y,{initial:w.draft,save:async(c)=>{if(w.note)await s.updateNote(w.note.id,c,K);else await s.addNote(c,K);P((y)=>y===w?void 0:y),await R(k)},cancel:()=>P(void 0)}):null}),e(N,{open:V!==void 0,title:t("Delete this note?"),onClose:()=>L(void 0),children:V?e(Z,{text:V.fact,run:async()=>{await s.deleteNote(V.id,K),L((c)=>c===V?void 0:c),await R(k)},cancel:()=>L(void 0)}):null})]})}function Q(h){let{people:v}=h;return n("label",{className:"inline",children:[t("Whose notes")," ",e("select",{value:h.shown??v.self,onChange:(u)=>h.choose(u.target.value===v.self?void 0:u.target.value),children:v.principals.map((u)=>e("option",{value:u.id,children:u.id===v.self?t("{name} (you)",{name:u.name}):u.disabled?t("{name} (disabled)",{name:u.name}):u.name},u.id))})]})}function Y(h){let[v,u]=i(h.initial),[D,k]=i(!1),[E,C]=i(),I=async()=>{k(!0),C(void 0);try{await h.save({kind:v.kind,fact:v.fact,...v.kind==="event"&&v.eventDate?{eventDate:v.eventDate}:{}})}catch(b){C(d(b)),k(!1)}};return n("form",{className:"stack",onSubmit:(b)=>{b.preventDefault(),I()},children:[n("fieldset",{children:[e("legend",{children:t("Kind")}),e("div",{className:"tabs",children:B.map((b)=>e("button",{type:"button","aria-pressed":v.kind===b.kind,onClick:()=>u({...v,kind:b.kind}),children:t(b.label)},b.kind))})]}),v.kind==="event"?n("label",{children:[t("Date"),e("input",{type:"date",value:v.eventDate,onChange:(b)=>u({...v,eventDate:b.target.value})})]}):null,n("label",{children:[t("Text"),e("textarea",{rows:4,value:v.fact,onChange:(b)=>u({...v,fact:b.target.value})})]}),E?e(l,{message:E}):null,n("div",{className:"actions",children:[e("button",{type:"button",className:"secondary",onClick:h.cancel,children:t("Cancel")}),e("button",{type:"submit",disabled:D,children:D?t("Saving…"):t("Save")})]})]})}function Z(h){let[v,u]=i(!1),[D,k]=i();return n("div",{className:"stack",children:[e("p",{className:"text",children:h.text}),D?e(l,{message:D}):null,n("div",{className:"actions",children:[e("button",{type:"button",className:"secondary",onClick:h.cancel,children:t("Cancel")}),e("button",{type:"button",className:"danger",disabled:v,onClick:()=>{u(!0),h.run().catch((E)=>{k(d(E)),u(!1)})},children:v?t("Deleting…"):t("Delete")})]})]})}export{ae as NotesPage};
@@ -1 +0,0 @@
1
- import{i,t,r,h,e,n,u,p,l,m,f,s,d,g,S,C,T,k,j,z,G,x}from"./chunk-index-9tvf6es7.js";import{N}from"./chunk-index-xw5hhmfq.js";function A(a){let{cleanup:o}=g(),[w,I]=i(),[y,v]=i(!1),[b,c]=i();if(!o)return null;let V=()=>{if(!y)I(void 0),c(void 0)};return n("div",{className:"actions",children:[e("button",{type:"button",className:"secondary",onClick:()=>I("start-over"),children:t("Start over")}),a.deletable?e("button",{type:"button",className:"danger",onClick:()=>I("delete"),children:t("Delete")}):null,n(N,{open:w!==void 0,title:w==="delete"?t("Permanently delete {name}?",{name:a.title}):t("Start over {name}?",{name:a.title}),onClose:V,children:[e("p",{children:w==="delete"?t("The live conversation and all archives will be permanently deleted. Memory and schedules are preserved."):t("The current conversation will be archived; the next message starts a new one. Long-term memory is preserved. Active turns finish first.")}),b?e(l,{message:b}):null,n("div",{className:"actions",children:[e("button",{type:"button",className:"secondary",disabled:y,onClick:V,children:t("Cancel")}),e("button",{type:"button",className:w==="delete"?"danger":"",disabled:y,onClick:async()=>{if(!w)return;v(!0),c(void 0);try{if(w==="delete")await s.deleteConversation(a.channel);else await s.startOver(a.channel);I(void 0),a.refresh()}catch(D){c(d(D))}finally{v(!1)}},children:y?w==="delete"?t("Deleting…"):a.busy?t("Waiting for this turn…"):t("Starting over…"):w==="delete"?t("Delete permanently"):t("Start over")})]})]})]})}function se(){let a=g(),{now:o}=S(),[w,I]=i(0),y=()=>I((c)=>c+1),{data:v,error:b}=x(()=>s.overview(),`overview:${w}`);if(!v)return b?e(l,{message:b}):e(p,{});return n(h,{children:[b?e(l,{message:b}):null,n("section",{className:"stack",children:[e("h2",{children:t("Agent server")}),e("p",{className:"hint",children:t("Agent and group status; starting over archives the conversation and preserves memory.")}),v.agents.length+v.groups.length===0?e(m,{children:t("No agents.")}):null,v.agents.map((c)=>e(L,{agent:c,groups:v.groups,agents:v.agents,guildId:v.guildId,now:o,refresh:y},c.name)),v.groups.map((c)=>e(E,{group:c,guildId:v.guildId,now:o,timeZone:a.timeZone,refresh:y},c.name))]}),n("section",{className:"stack",children:[e("h2",{children:t("My workspaces")}),e("p",{className:"hint",children:t("Direct messages and channels where you mention the assistant. Start over archives; delete removes every archive permanently.")}),v.workspaces?.length?v.workspaces.map((c)=>e(W,{conversation:c,schedules:c.schedules,now:o,refresh:y},c.key)):e(m,{children:t("No workspaces.")})]}),n("section",{className:"stack",children:[e("h2",{children:t("Outside-agent conversations")}),e("p",{className:"hint",children:t("Conversations opened through remote MCP; after deletion the session ID cannot be resumed.")}),v.outside?.length?v.outside.map((c)=>e(W,{conversation:c,now:o,refresh:y},c.key)):e(m,{children:t("No outside-agent conversations.")})]}),n("section",{className:"stack",children:[e("h2",{children:t("Party channels")}),e("p",{className:"hint",children:t("Starting over stops the container and archives role conversations; each speaker's memory is preserved.")}),v.party?.length?v.party.map((c)=>e(M,{party:c,now:o,refresh:y},c.key)):e(m,{children:t("No party channels.")})]})]})}function B({busy:a}){return e(f,{tone:a?"busy":"plain",children:a===0?t("idle"):a===1?t("Working"):t("Working, {count} waiting",{count:a-1})})}function E(a){let{group:o,now:w,timeZone:I}=a;return n("article",{className:"card",children:[n("div",{className:"card-head",children:[o.channelId?e("a",{href:G(o.channelId,a.guildId),target:"_blank",rel:"noreferrer",children:o.displayName}):e("strong",{children:o.displayName}),e(f,{children:t("Group")}),e(B,{busy:o.busy})]}),e("p",{children:t("Members: {members} | Host: {host}",{members:o.members.join(", "),host:o.host})}),n("p",{className:"hint",children:[t("Last active")," ",C(o.lastActive,w,I)]}),o.channelId?e(A,{channel:`discord:${o.channelId}`,title:o.displayName,busy:o.busy>0,refresh:a.refresh}):null]})}function L(a){let{agent:o}=a,{timeZone:w,panes:I}=g(),y=a.groups.find((c)=>c.channelId===o.workingIn),v=a.agents.find((c)=>c.channelId===o.workingIn),b=!o.workingIn?void 0:o.workingIn===o.channelId?t("Working in own channel"):y?t("Working in group {name}",{name:y.displayName}):v?t("Replying in {name}'s channel",{name:v.displayName}):t("Replying in another channel");return n("article",{className:"card",children:[n("div",{className:"card-head",children:[e("strong",{children:o.channelId?e("a",{href:G(o.channelId,a.guildId),target:"_blank",rel:"noreferrer",children:o.displayName}):o.displayName}),e(f,{children:"agent"}),o.workingIn?e(B,{busy:1+o.waiting}):o.waiting>0?e(f,{tone:"busy",children:t("{count} waiting",{count:o.waiting})}):e(f,{children:t("idle")})]}),b?e("p",{children:b}):null,n("dl",{className:"facts",children:[n("div",{children:[e("dt",{children:t("Model")}),n("dd",{children:[o.model," · thinking ",o.thinking]})]}),n("div",{children:[e("dt",{children:t("Context")}),e("dd",{children:o.context?o.context.tokens===null?t("Just compacted (limit {limit})",{limit:j(o.context.contextWindow)}):`${j(o.context.tokens)} / ${j(o.context.contextWindow)} (${Math.round(o.context.tokens/o.context.contextWindow*100)}%)`:"—"})]}),n("div",{children:[e("dt",{children:t("Schedules")}),e("dd",{children:o.schedules})]}),n("div",{children:[e("dt",{children:t("Last active")}),e("dd",{children:C(o.lastActive,a.now,w)})]})]}),o.channelId?n(h,{children:[e(A,{channel:`discord:${o.channelId}`,title:o.displayName,busy:!!o.workingIn||o.waiting>0,refresh:a.refresh}),I.includes("conversations")?e("a",{href:u("conversations",`discord:${o.channelId}`),children:t("transcript")}):null]}):null]})}function W({conversation:a,schedules:o,now:w,refresh:I}){let{timeZone:y,panes:v}=g(),{title:b,detail:c}=a.kind==="outside"?{title:a.firstMessage||t("(No messages)"),detail:a.id}:z(a.channel,a.id);return n("article",{className:"card",children:[n("div",{className:"card-head",children:[e("strong",{children:a.channel&&a.channel.kind!=="gone"?e("a",{href:G(a.id,a.channel.kind==="guild"?a.channel.guildId:void 0),target:"_blank",rel:"noreferrer",children:b}):b}),e(B,{busy:a.busy})]}),c?e("p",{className:"hint",children:c}):null,e("p",{children:a.liveBytes>0?t("Conversation {size} · Archives {count}",{size:k(a.liveBytes),count:a.archives}):t("No live conversation · Archives {count}",{count:a.archives})}),a.startedAt?n("p",{children:[t("Started")," ",T(a.startedAt,y)]}):null,n("p",{className:"hint",children:[o!==void 0?`${t("Schedules")} ${o} · `:"",t("Last active")," ",C(a.lastActive,w,y)]}),e(A,{channel:a.key,title:b,busy:a.busy>0,deletable:!0,refresh:I}),v.includes("conversations")?e("a",{href:u("conversations",a.key),children:t("transcript")}):null]})}function M({party:a,now:o,refresh:w}){let{timeZone:I}=g(),{title:y,detail:v}=z(a.channel,a.channelId),b={running:r("Container running"),stopped:r("Container stopped"),missing:r("No container yet"),unknown:r("Container status unknown")};return n("article",{className:"card",children:[n("div",{className:"card-head",children:[e("strong",{children:a.channel.kind!=="gone"?e("a",{href:G(a.channelId,a.channel.kind==="guild"?a.channel.guildId:void 0),target:"_blank",rel:"noreferrer",children:y}):y}),e(f,{children:a.profile}),e(f,{children:t(b[a.container])}),e(B,{busy:a.busy})]}),v?e("p",{className:"hint",children:v}):null,e("p",{children:t("Enabled by {name} at {time}",{name:a.enabledBy,time:T(a.enabledAt,I)})}),n("p",{className:"hint",children:[t("Last active")," ",C(a.lastActive,o,I)]}),e(A,{channel:a.key,title:y,busy:a.busy>0,refresh:w})]})}export{se as OverviewPage};
@@ -1 +0,0 @@
1
- import{K,i,t,e,n,p,l,m,f,s,d,W,B,x}from"./chunk-index-9tvf6es7.js";import{N}from"./chunk-index-xw5hhmfq.js";function h({source:a}){return e(W,{remarkPlugins:[B],components:{a:({href:r,children:o})=>r&&/^https?:\/\//.test(r)?e("a",{href:r,target:"_blank",rel:"noreferrer",children:o}):e("span",{children:o}),img:({alt:r})=>e("span",{children:r})},children:a})}function O(){let{data:a,error:r}=x(()=>s.skills(),"skills");return n("section",{className:"stack",children:[e("h2",{children:t("Skills")}),e("p",{className:"hint",children:t("Registered skills and their carriers; ask an agent on Discord to edit their contents.")}),r?e(l,{message:r}):null,!a&&!r?e(p,{}):null,a?.length===0?e(m,{children:t("No skills.")}):null,a?.map((o)=>e(S,{skill:o},o.name))]})}function S({skill:a}){let[r,o]=i(!1),[u,w]=i(),[g,k]=i(),y=a.source.kind==="builtin"?t("Built-in"):a.source.kind==="written"?t("Assistant-written"):a.source.kind==="package"?a.source.package:`${a.source.repo}:${a.source.path}`;return n("article",{className:"card",children:[n("div",{className:"card-head",children:[e("strong",{children:a.name}),e(f,{children:y}),a.missing?e(f,{tone:"warn",children:t("File missing")}):e("button",{type:"button",className:"secondary",onClick:()=>{if(o(!0),!u)k(void 0),s.skill(a.name).then(w).catch((c)=>k(d(c)))},children:"SKILL.md"})]}),e("p",{children:a.missing??a.description}),n("p",{className:"hint",children:[t("Carriers"),":"," ",a.source.kind==="builtin"?t("All agents"):a.carriers.join(", ")||t("None")]}),a.groups.length?n("p",{className:"hint",children:[t("Groups"),": ",a.groups.join(", ")]}):null,e(N,{open:r,title:a.name,onClose:()=>o(!1),children:g?e(l,{message:g}):!u?e(p,{}):n("div",{className:"skill-document",children:[e("dl",{className:"facts",children:u.metadata.map((c)=>n(K,{children:[e("dt",{children:c.key}),e("dd",{className:"text",children:c.value})]},c.key))}),e(h,{source:u.body})]})})]})}export{O as SkillsPage};
@@ -1 +0,0 @@
1
- import{i,t,e,n,X}from"./chunk-index-9tvf6es7.js";function b(){let[a,l]=i();return n("div",{className:"table-page",children:[n("header",{className:"page-head",children:[e("h1",{children:t("Round table")}),a?.kind==="webgl"?e("button",{type:"button",className:"secondary",onClick:()=>a.resetCamera(),children:t("Reset view")}):null]}),e("div",{className:"table-frame",children:e(X,{onHandle:l})})]})}export{b as TablePage};
@@ -1 +0,0 @@
1
- import{oe,H,F}from"./chunk-index-p8h0e861.js";import{D}from"./chunk-index-19g8jmr8.js";var se="http://www.w3.org/2000/svg",t=(r,i={},u)=>{let h=document.createElementNS(se,r);for(let[v,k]of Object.entries(i))h.setAttribute(v,String(k));return u?.appendChild(h),h},ae=(r)=>{let i=/<svg[^>]*\swidth=/.test(r)?r:r.replace("<svg",'<svg width="256" height="256"');return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(i)}`},ie=0;function de(r,i){let u=`t2d${++ie}`,h=window.matchMedia("(prefers-reduced-motion: reduce)"),v=i.reducedMotion==="auto"||i.reducedMotion===void 0?h.matches:i.reducedMotion,k=i.labels??D,{theme:K,scheme:P}=i,f=[],w=new Map,S=new Map,M=document.createElement("div");M.className="t2d";let l=t("svg",{role:"group","aria-label":k.table});if(M.appendChild(l),getComputedStyle(r).position==="static")r.style.position="relative";r.appendChild(M);function b(){let s=H(K,P);M.classList.toggle("reduced",v),M.classList.toggle("dim",f.some((o)=>S.get(o.id)==="speaking"));let a=Math.max(r.clientWidth,200),m=Math.max(r.clientHeight,i.variant==="compact"?60:200);l.setAttribute("viewBox",`0 0 ${a} ${m}`),l.replaceChildren();let C=Math.max(f.length,1),A=a/m<0.8,p=a/2,x=m/2,d=Math.max(44,Math.min(96,Math.min(a,m)*(C>8?0.13:C>6?0.15:0.19)*(A?1.1:1))),L=Math.min(m/2-d*1.15,A?a*0.5:m),Q=Math.max(d*1.5,Math.max(11,Math.min(15,d*0.2))*5.5+14),I=Math.min(a/2-Math.max(d*0.8,Q/2)-1,A?a:L*1.75),z=Math.max(I-d*0.85,30),R=Math.max(L-d*0.8,24);t("rect",{width:a,height:m,fill:s.bg},l);let q=t("defs",{},l),B=t("radialGradient",{id:`${u}-floor`},q);if(t("stop",{offset:0,"stop-color":s.rug},B),t("stop",{offset:0.9,"stop-color":s.rug},B),t("stop",{offset:1,"stop-color":s.rugEdge},B),t("ellipse",{cx:p,cy:x+10,rx:I+d*0.75,ry:L+d*0.5,fill:`url(#${u}-floor)`},l),t("ellipse",{cx:p,cy:x+16,rx:z*1.05,ry:R*1.1,fill:"#000",opacity:s.shadow*0.45},l),t("ellipse",{cx:p,cy:x+9,rx:z,ry:R,fill:s.rim},l),t("ellipse",{cx:p,cy:x,rx:z,ry:R,fill:s.table},l),t("ellipse",{cx:p,cy:x,rx:z*0.5,ry:R*0.5,fill:"none",stroke:s.inlay,"stroke-width":2,opacity:0.7,"stroke-dasharray":s.candles?"5 4":"0"},l),s.candles)t("circle",{cx:p,cy:x-4,r:5,fill:s.flame},l);f.forEach((o,n)=>{let g=`${u}-h${n}`,e=t("radialGradient",{id:g},q);t("stop",{offset:0,"stop-color":o.color,"stop-opacity":0.95},e),t("stop",{offset:1,"stop-color":o.color,"stop-opacity":0},e)});let X=i.variant==="compact"?f.map((o,n)=>{let g=a/C,e=Math.min(m*0.62,g*0.82);return{s:o,x:g*(n+0.5),y:m*0.7,size:e,a:0}}):f.map((o,n)=>({s:o,a:Math.PI+n/C*Math.PI*2})).sort((o,n)=>Math.cos(o.a)-Math.cos(n.a)).map(({s:o,a:n})=>{let g=0.9+0.1*Math.cos(n);return{s:o,a:n,x:p+Math.sin(n)*I,y:x+Math.cos(n)*L+d*0.22,size:d*g}});for(let{s:o,x:n,y:g,size:e}of X){let N=S.get(o.id)??"idle",c=t("g",{class:"seat","data-state":N,transform:`translate(${n.toFixed(1)} ${g.toFixed(1)})`,tabindex:i.listBelow?-1:0,role:"button","aria-label":k.seat(o.name,N),color:s.css.text,...i.listBelow?{"aria-hidden":"true"}:{}},l);t("ellipse",{cx:0,cy:4,rx:e*0.55,ry:e*0.16,fill:"#000",opacity:s.shadow*0.6},c),t("ellipse",{class:"halo",cx:0,cy:-e*0.5,rx:e*0.85,ry:e*0.85,fill:`url(#${u}-h${f.indexOf(o)})`},c);let Y=t("polygon",{class:"beam",points:`${-e*0.12},${-e*2.1} ${e*0.12},${-e*2.1} ${e*0.5},0 ${-e*0.5},0`,fill:o.color,opacity:0.22},c),G=t("g",{class:"lift"},c),Z=t("image",{href:w.has(o.id)?ae(w.get(o.id)):"",x:-e/2,y:-e,width:e,height:e},G);if(!w.has(o.id)){Z.remove(),t("circle",{cx:0,cy:-e/2,r:e*0.36,fill:o.color},G);let T=t("text",{x:0,y:-e/2+e*0.12,"text-anchor":"middle","font-size":e*0.36,"font-weight":700,fill:"#fff"},G);T.textContent=o.name.slice(0,1).toUpperCase()}let y=Math.max(11,Math.min(15,e*0.2)),E=Math.min(Math.max(e*1.5,y*5.5+14),Math.max(e*0.9,o.name.length*y*0.62+18));t("rect",{class:"plate",x:-E/2,y:2,width:E,height:y+12,rx:7,fill:s.css.plate,stroke:"none"},c),t("rect",{x:-E/2,y:2+y+7,width:E,height:5,rx:2.5,fill:o.color},c);let ee=t("text",{x:0,y:2+y+1,"text-anchor":"middle","font-size":y,"font-weight":700,fill:s.css.text},c);ee.textContent=oe(o.name,(E-14)/y);let W=t("g",{class:"badge"},t("g",{transform:`translate(${e*0.42} ${-e*0.9})`},c)),j=N==="done",V=N==="error";t("circle",{r:e*0.17,fill:j?F.done:V?F.error:o.color},W);let te=t("text",{x:0,y:e*0.07,"text-anchor":"middle","font-size":e*0.22,"font-weight":800,fill:"#fff"},W);te.textContent=j?"✓":V?"✕":"!";let J=t("g",{class:"orbit"},c);t("circle",{cx:e*0.38,cy:-e*0.62,r:e*0.055,fill:o.color},J),t("circle",{cx:-e*0.38,cy:-e*0.62,r:e*0.035,fill:o.color,opacity:0.6},J),c.addEventListener("click",()=>i.onSeatClick({id:o.id,name:o.name})),c.addEventListener("keydown",(T)=>{if(T.key==="Enter"||T.key===" ")T.preventDefault(),i.onSeatClick({id:o.id,name:o.name})})}}let U=new ResizeObserver(b);U.observe(r);let _=()=>{if(i.reducedMotion==="auto"||i.reducedMotion===void 0)O.setReducedMotion(h.matches)};h.addEventListener("change",_);let O={kind:"svg",setTheme(s,a){K=s,P=a,b()},setSeats(s){f=s;for(let a of s)if(S.set(a.id,a.state??"idle"),a.avatarSvg)w.set(a.id,a.avatarSvg);b()},setState(s,a){if(S.get(s)===a)return;S.set(s,a),b()},setAvatar(s,a){return w.set(s,a),b(),Promise.resolve()},setReducedMotion(s){v=s,b()},resetCamera(){},getStats(){return{kind:"svg",fps:0,frameMs:0,frameMsMax:0,drawCalls:0,triangles:0,textures:0,geometries:0,dpr:1,lowPower:!1,reduced:v,loop:"idle",seats:f.length,renders:0}},dispose(){U.disconnect(),h.removeEventListener("change",_),M.remove()}};return O.setSeats(i.seats),O}export{de as createTable2D};