@kubitnodes/stellaris 0.0.0-stage → 0.1.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.
- package/README.md +30 -2
- package/dist/cli/index.js +6262 -0
- package/dist/server/index.js +8941 -0
- package/package.json +42 -4
- package/web/dist/assets/ChannelView-B8BZLsf1.js +1 -0
- package/web/dist/assets/CitizenView-GomLDcrr.js +2 -0
- package/web/dist/assets/CitizensView-yNv8WtND.js +1 -0
- package/web/dist/assets/KnowledgeView--jxofSSN.js +1 -0
- package/web/dist/assets/Markdown-BpYzeV5r.js +28 -0
- package/web/dist/assets/MessageItem-BGPpqgpq.js +1 -0
- package/web/dist/assets/MetricsView-CcqLr6S1.js +1 -0
- package/web/dist/assets/NeedsYouView-r7gJGgVG.js +1 -0
- package/web/dist/assets/Overview-Cmz4_gfI.js +1 -0
- package/web/dist/assets/Pane-DRpHmeJ9.js +1 -0
- package/web/dist/assets/ProjectView-CuACZj4L.js +1 -0
- package/web/dist/assets/ProposalView-BiVcNEDL.js +1 -0
- package/web/dist/assets/ProposalsView-BIdkOfZO.js +1 -0
- package/web/dist/assets/SocietyView-Dya97szC.js +1 -0
- package/web/dist/assets/SubjectThread-2j_msY38.js +1 -0
- package/web/dist/assets/TaskView-CcJr7xnH.js +1 -0
- package/web/dist/assets/TasksView-BUvHntvK.js +1 -0
- package/web/dist/assets/ThreadCard-tzMGvn9j.js +1 -0
- package/web/dist/assets/ThreadForms-DE2yJEhz.js +1 -0
- package/web/dist/assets/ThreadView-FsNOTyVC.js +1 -0
- package/web/dist/assets/citizen-BXVebeiP.js +1 -0
- package/web/dist/assets/fira-code-cyrillic-ext-wght-normal-DhYMMuQd.woff2 +0 -0
- package/web/dist/assets/fira-code-cyrillic-wght-normal-Y3u8pIsh.woff2 +0 -0
- package/web/dist/assets/fira-code-greek-ext-wght-normal-wWus70Ix.woff2 +0 -0
- package/web/dist/assets/fira-code-greek-wght-normal-B2SviObF.woff2 +0 -0
- package/web/dist/assets/fira-code-latin-ext-wght-normal-Dvfvaomy.woff2 +0 -0
- package/web/dist/assets/fira-code-latin-wght-normal-CHoedHDv.woff2 +0 -0
- package/web/dist/assets/fira-code-symbols2-wght-normal-CE6EOz_n.woff2 +0 -0
- package/web/dist/assets/format-Ca2VAvEx.js +77 -0
- package/web/dist/assets/index-CtuchAFa.css +2 -0
- package/web/dist/assets/index-D4GJkeKU.js +237 -0
- package/web/dist/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.woff2 +0 -0
- package/web/dist/assets/instrument-sans-latin-wght-normal-BbzFLZTg.woff2 +0 -0
- package/web/dist/assets/onest-cyrillic-ext-wght-normal-DOFToQv1.woff2 +0 -0
- package/web/dist/assets/onest-cyrillic-wght-normal-DayYxulF.woff2 +0 -0
- package/web/dist/assets/onest-latin-ext-wght-normal-QAhDxQuo.woff2 +0 -0
- package/web/dist/assets/onest-latin-wght-normal-Dun_Rd-l.woff2 +0 -0
- package/web/dist/assets/onest-math-wght-normal-Bl4ZGkZl.woff2 +0 -0
- package/web/dist/assets/onest-symbols-wght-normal-DxQzqQfC.woff2 +0 -0
- package/web/dist/assets/onest-vietnamese-wght-normal-BBxOatbv.woff2 +0 -0
- package/web/dist/assets/tasks-rltmWd5a.js +1 -0
- package/web/dist/assets/useStickyScroll-DDS3s21P.js +1 -0
- package/web/dist/favicon.svg +5 -0
- package/web/dist/index.html +17 -0
package/package.json
CHANGED
|
@@ -1,6 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubitnodes/stellaris",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
"description": "A society of autonomous CLI agents on one shared board: the admin CLI and the board server with its interface",
|
|
4
|
+
"keywords": [
|
|
5
|
+
"stellaris",
|
|
6
|
+
"agents",
|
|
7
|
+
"claude-code",
|
|
8
|
+
"codex",
|
|
9
|
+
"multi-agent"
|
|
10
|
+
],
|
|
11
|
+
"version": "0.1.0",
|
|
12
|
+
"homepage": "https://github.com/kr4t0n/stellaris",
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "git+https://github.com/kr4t0n/stellaris.git"
|
|
16
|
+
},
|
|
17
|
+
"bugs": "https://github.com/kr4t0n/stellaris/issues",
|
|
18
|
+
"type": "module",
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": ">=24"
|
|
21
|
+
},
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public"
|
|
24
|
+
},
|
|
25
|
+
"bin": {
|
|
26
|
+
"stellaris": "dist/cli/index.js",
|
|
27
|
+
"stellaris-server": "dist/server/index.js"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist",
|
|
31
|
+
"web"
|
|
32
|
+
],
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@hono/node-server": "2.1.1",
|
|
35
|
+
"@modelcontextprotocol/sdk": "1.30.1",
|
|
36
|
+
"commander": "15.0.0",
|
|
37
|
+
"execa": "10.0.1",
|
|
38
|
+
"gray-matter": "4.0.3",
|
|
39
|
+
"hono": "4.13.10",
|
|
40
|
+
"pino": "10.3.1",
|
|
41
|
+
"ulid": "3.0.2",
|
|
42
|
+
"zod": "4.6.5"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{P as e,Pn as t,T as n,_ as r,j as i,jn as a,ln as o,p as s,v as c}from"./format-Ca2VAvEx.js";import{L as l,M as u,N as d,a as f,t as p}from"./index-D4GJkeKU.js";import{t as m}from"./MessageItem-BGPpqgpq.js";import{n as h,t as g}from"./Pane-DRpHmeJ9.js";import{n as _}from"./ThreadCard-tzMGvn9j.js";import{i as v}from"./ThreadForms-DE2yJEhz.js";import{t as y}from"./useStickyScroll-DDS3s21P.js";var b=t(a(),1),x=e(),S=`/home/climage/projects/stellaris/apps/web/src/board/ChannelView.tsx`;function C(){let{_splat:e=`general`}=l({from:`/c/$`});return(0,x.jsxDEV)(w,{channel:e},e,!1,{fileName:S,lineNumber:23,columnNumber:10},this)}function w({channel:e}){let{api:t}=n(),a=o({queryKey:[`channel`,e],queryFn:()=>t.channel(e)}),l=i(),C=s(),w=c(),T=r(3e4),[E,D]=(0,b.useState)(!1),O=(0,b.useMemo)(()=>{let t=(a.data??[]).map(e=>({kind:`message`,at:e.ts,id:e.id,message:e})),n=(l.data??[]).filter(t=>t.channel===e).map(e=>({kind:`thread`,at:e.openedAt,id:e.id,thread:e}));return[...t,...n].toSorted((e,t)=>e.at.localeCompare(t.at)||e.id.localeCompare(t.id))},[a.data,l.data,e]),k=a.data?.at(-1)?.id??null;(0,b.useEffect)(()=>u(e,k),[e,k]);let{ref:A,onScroll:j}=y(),[M,N]=e.split(`/`),P=N??M??e,F=N===void 0?void 0:w.data?.find(e=>e.slug===M),I=N===void 0?`society`:F?.name??M,L=F?.archived!==void 0,R=O.filter(e=>e.kind===`thread`&&e.thread.state===`open`);return(0,x.jsxDEV)(x.Fragment,{children:[(0,x.jsxDEV)(g,{title:`# ${P}`,subtitle:`${I} · ${a.data?.length??0} messages${R.length>0?` · ${R.length} open threads`:``}`,trailing:E||L?null:(0,x.jsxDEV)(f,{onClick:()=>D(!0),children:`New thread`},void 0,!1,{fileName:S,lineNumber:75,columnNumber:13},this)},void 0,!1,{fileName:S,lineNumber:68,columnNumber:7},this),E?(0,x.jsxDEV)(v,{channel:e,onDone:()=>D(!1)},void 0,!1,{fileName:S,lineNumber:79,columnNumber:19},this):null,(0,x.jsxDEV)(`div`,{ref:A,onScroll:j,className:`flex-1 overflow-y-auto py-2`,children:a.error instanceof d&&a.error.status===404?(0,x.jsxDEV)(h,{children:[`There is no channel `,e,`.`]},void 0,!0,{fileName:S,lineNumber:82,columnNumber:11},this):a.data===void 0?(0,x.jsxDEV)(h,{children:`Reading the channel…`},void 0,!1,{fileName:S,lineNumber:84,columnNumber:11},this):O.length===0?(0,x.jsxDEV)(h,{children:`Nothing has been said here yet.`},void 0,!1,{fileName:S,lineNumber:86,columnNumber:11},this):O.map(e=>e.kind===`message`?(0,x.jsxDEV)(m,{message:e.message,members:C.data,now:T},e.id,!1,{fileName:S,lineNumber:90,columnNumber:15},this):(0,x.jsxDEV)(_,{thread:e.thread,now:T},e.id,!1,{fileName:S,lineNumber:92,columnNumber:15},this))},void 0,!1,{fileName:S,lineNumber:80,columnNumber:7},this),a.data===void 0?null:L?(0,x.jsxDEV)(`p`,{className:`border-t border-line px-4 py-3 text-meta`,children:[I,` is archived, so its channels are read-only.`]},void 0,!0,{fileName:S,lineNumber:98,columnNumber:9},this):(0,x.jsxDEV)(p,{target:{channel:e},placeholder:`Message #${P}`},void 0,!1,{fileName:S,lineNumber:102,columnNumber:9},this)]},void 0,!0,{fileName:S,lineNumber:67,columnNumber:5},this)}export{C as ChannelView};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{A as e,C as t,M as n,N as r,P as i,Pn as a,Pt as o,S as s,T as c,_ as l,a as u,d,g as f,gt as p,jn as m,kn as h,l as g,m as _,p as v,t as y,u as b,w as x}from"./format-Ca2VAvEx.js";import{I as S,L as C,N as w,P as T,R as E,_ as D,a as O,d as ee,f as te,h as ne,l as k,m as re,p as ie,u as ae,v as oe,x as se}from"./index-D4GJkeKU.js";import{t as A}from"./Markdown-BpYzeV5r.js";import{n as j,t as ce}from"./Pane-DRpHmeJ9.js";import{n as le,r as M}from"./ThreadForms-DE2yJEhz.js";import{t as ue}from"./useStickyScroll-DDS3s21P.js";import{a as N,c as de,n as fe,o as pe,r as me,s as he,t as ge}from"./citizen-BXVebeiP.js";var P=a(m(),1),F=i(),I=`/home/climage/projects/stellaris/apps/web/src/board/Transcript.tsx`,_e={completed:`completed`,timeout:`timed out`,error:`failed`,interrupted:`was interrupted`,blocked:`was blocked`};function L(e){return new Date(e).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1})}function R({label:e,tone:t,children:n}){return(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`p`,{className:`px-0.5 pb-0.5 text-[10px] tracking-wider text-fg-muted uppercase`,children:e},void 0,!1,{fileName:I,lineNumber:27,columnNumber:7},this),(0,F.jsxDEV)(`pre`,{className:`max-h-72 overflow-auto rounded-md bg-surface-0/60 p-2 font-mono text-[11px] leading-relaxed whitespace-pre-wrap break-words ${t}`,children:n},void 0,!1,{fileName:I,lineNumber:28,columnNumber:7},this)]},void 0,!0,{fileName:I,lineNumber:26,columnNumber:5},this)}function ve({step:e,open:t}){if(e.kind===`say`)return(0,F.jsxDEV)(`li`,{className:`py-1.5 text-sm`,title:L(e.at),children:(0,F.jsxDEV)(A,{text:e.text},void 0,!1,{fileName:I,lineNumber:45,columnNumber:9},this)},void 0,!1,{fileName:I,lineNumber:44,columnNumber:7},this);if(e.kind===`error`)return(0,F.jsxDEV)(`li`,{className:`py-1 font-mono text-xs break-words text-red-400`,title:L(e.at),children:e.message},void 0,!1,{fileName:I,lineNumber:51,columnNumber:7},this);let n=e.ok===null?(0,F.jsxDEV)(`span`,{"aria-label":`running`,className:`size-1.5 animate-pulse rounded-full bg-amber-300`},void 0,!1,{fileName:I,lineNumber:58,columnNumber:7},this):e.ok?(0,F.jsxDEV)(`span`,{"aria-label":`succeeded`,className:`text-[11px] text-emerald-400`,children:`✓`},void 0,!1,{fileName:I,lineNumber:60,columnNumber:7},this):(0,F.jsxDEV)(`span`,{"aria-label":`failed`,className:`text-[11px] text-red-400`,children:`✕`},void 0,!1,{fileName:I,lineNumber:64,columnNumber:7},this);return(0,F.jsxDEV)(`li`,{children:(0,F.jsxDEV)(`details`,{open:t,className:`group rounded-md open:bg-surface-2/30`,children:[(0,F.jsxDEV)(`summary`,{className:`flex cursor-pointer list-none items-center gap-2 rounded-md px-1.5 py-1 text-xs hover:bg-surface-2/40`,children:[(0,F.jsxDEV)(`span`,{className:`grid w-3 shrink-0 place-items-center`,children:n},void 0,!1,{fileName:I,lineNumber:72,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`shrink-0 font-mono text-fg-tertiary`,children:te(e.name)},void 0,!1,{fileName:I,lineNumber:73,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-fg-secondary`,children:e.summary},void 0,!1,{fileName:I,lineNumber:74,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`shrink-0 font-mono text-[10px] text-fg-muted`,children:L(e.at)},void 0,!1,{fileName:I,lineNumber:77,columnNumber:11},this)]},void 0,!0,{fileName:I,lineNumber:71,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`space-y-1.5 px-1.5 pb-1.5`,children:[(0,F.jsxDEV)(R,{label:`Input`,tone:`text-fg-secondary`,children:e.detail},void 0,!1,{fileName:I,lineNumber:80,columnNumber:11},this),e.output===null?null:(0,F.jsxDEV)(R,{label:e.ok===!1?`Returned an error`:`Returned`,tone:e.ok===!1?`text-red-300`:`text-fg-tertiary`,children:e.output},void 0,!1,{fileName:I,lineNumber:84,columnNumber:13},this)]},void 0,!0,{fileName:I,lineNumber:79,columnNumber:9},this)]},void 0,!0,{fileName:I,lineNumber:70,columnNumber:7},this)},void 0,!1,{fileName:I,lineNumber:69,columnNumber:5},this)}function z({steps:e}){let[t,n]=(0,P.useState)(!1),r=e.filter(e=>e.kind===`tool`).length;return e.length===0?(0,F.jsxDEV)(`p`,{className:`mt-2 text-meta`,children:`No steps yet.`},void 0,!1,{fileName:I,lineNumber:102,columnNumber:12},this):(0,F.jsxDEV)(F.Fragment,{children:[r===0?null:(0,F.jsxDEV)(`p`,{className:`mt-2 flex items-center gap-2 text-meta`,children:[r===1?`1 tool call`:`${r} tool calls`,(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>n(!t),className:`rounded-md px-1.5 py-0.5 text-fg-tertiary transition-colors hover:bg-surface-2/60 hover:text-fg-primary`,children:t?`Collapse all`:`Expand all`},void 0,!1,{fileName:I,lineNumber:109,columnNumber:11},this)]},void 0,!0,{fileName:I,lineNumber:107,columnNumber:9},this),(0,F.jsxDEV)(`ol`,{className:`mt-1 space-y-0.5`,children:e.map(e=>(0,F.jsxDEV)(ve,{step:e,open:t},e.seq,!1,{fileName:I,lineNumber:120,columnNumber:11},this))},void 0,!1,{fileName:I,lineNumber:118,columnNumber:7},this)]},void 0,!0,{fileName:I,lineNumber:105,columnNumber:5},this)}function ye({turn:e,running:t,now:n}){if(e.end!==null){let t=e.end.costUsd>0?` · $${e.end.costUsd.toFixed(2)}`:``;return(0,F.jsxDEV)(`section`,{className:`mt-3 rounded-xl bg-surface-2/40 px-3.5 py-3 shadow-[inset_0_0_0_1px_rgba(255,255,255,0.06)]`,children:[(0,F.jsxDEV)(`p`,{className:`text-caps`,children:[`The turn `,_e[e.end.exitReason],` `,y(e.end.at,n),t,e.fromStart?` · ${ae(e.startedAt,Date.parse(e.end.at))}`:``]},void 0,!0,{fileName:I,lineNumber:141,columnNumber:9},this),e.end.summary===null?null:(0,F.jsxDEV)(`p`,{className:`mt-1 text-sm text-fg-secondary`,children:e.end.summary},void 0,!1,{fileName:I,lineNumber:147,columnNumber:11},this)]},void 0,!0,{fileName:I,lineNumber:140,columnNumber:7},this)}return t?(0,F.jsxDEV)(`p`,{className:`mt-3 flex items-center gap-2 text-meta`,"aria-live":`polite`,children:[(0,F.jsxDEV)(`span`,{className:`size-1.5 animate-pulse rounded-full bg-emerald-400`},void 0,!1,{fileName:I,lineNumber:157,columnNumber:7},this),`Working · last step `,y(e.lastAt,n)]},void 0,!0,{fileName:I,lineNumber:156,columnNumber:5},this):(0,F.jsxDEV)(`p`,{className:`mt-3 text-meta`,children:`The turn ended without a report.`},void 0,!1,{fileName:I,lineNumber:153,columnNumber:12},this)}var B=`/home/climage/projects/stellaris/apps/web/src/board/CitizenHistory.tsx`,be=30,xe={turn:`turn`,board:`board`,merge:`both kept`},Se={turn:`Changed by a turn`,board:`Written by the board`,merge:`Both versions kept`};function Ce(e){return e.status===`added`?`new`:e.status===`deleted`?`deleted`:e.added===null||e.removed===null?`binary`:`+${e.added} −${e.removed}`}function we(e){return e.files.map(e=>`${e.path} ${Ce(e)}`).join(`, `)}function Te(e){return e.startsWith(`@@`)||e.startsWith(`\\`)?`text-fg-muted`:e.startsWith(`+`)?`text-emerald-300`:e.startsWith(`-`)?`text-red-300`:`text-fg-tertiary`}function Ee({file:e}){return(0,F.jsxDEV)(`div`,{children:[(0,F.jsxDEV)(`p`,{className:`text-xs text-fg-secondary`,children:[e.path,e.status===`modified`?``:(0,F.jsxDEV)(`span`,{className:`text-fg-muted`,children:[` · `,e.status]},void 0,!0,{fileName:B,lineNumber:50,columnNumber:44},this)]},void 0,!0,{fileName:B,lineNumber:48,columnNumber:7},this),e.patch===null?(0,F.jsxDEV)(`p`,{className:`mt-1 text-meta`,children:`A binary file; its contents are not shown.`},void 0,!1,{fileName:B,lineNumber:53,columnNumber:9},this):e.patch===``?(0,F.jsxDEV)(`p`,{className:`mt-1 text-meta`,children:`Empty.`},void 0,!1,{fileName:B,lineNumber:55,columnNumber:9},this):(0,F.jsxDEV)(`pre`,{className:`mt-1 max-h-96 overflow-auto rounded-md bg-surface-0/60 p-2 font-mono text-[11px] leading-relaxed`,children:e.patch.split(`
|
|
2
|
+
`).map((e,t)=>(0,F.jsxDEV)(`span`,{className:`block whitespace-pre-wrap break-words ${Te(e)}`,children:e===``?` `:e},t,!1,{fileName:B,lineNumber:59,columnNumber:13},this))},void 0,!1,{fileName:B,lineNumber:57,columnNumber:9},this),e.truncated?(0,F.jsxDEV)(`p`,{className:`mt-1 text-meta`,children:`The rest of this file's change is cut.`},void 0,!1,{fileName:B,lineNumber:66,columnNumber:9},this):null]},void 0,!0,{fileName:B,lineNumber:47,columnNumber:5},this)}function De({name:e,change:t}){let n=g(e,t.commit,!0);return(0,F.jsxDEV)(`div`,{className:`space-y-3 px-4 pt-1 pb-3`,children:[(0,F.jsxDEV)(`p`,{className:`text-xs text-fg-secondary`,children:[t.kind===`merge`?`Two turns on different runners changed the same lines at once. The file kept one turn's version, and this copy holds the other's until the citizen reconciles them.`:t.kind===`board`?`Written by the board: ${t.subject.replace(/^home: /,``)}.`:t.turnId===void 0?t.subject:(0,F.jsxDEV)(o,{to:`/citizen/$name`,params:{name:e},search:{tab:`turns`,turn:t.turnId},className:`text-fg-secondary underline decoration-line underline-offset-2 hover:text-fg-primary`,children:`Open the turn that made it`},void 0,!1,{fileName:B,lineNumber:85,columnNumber:11},this),(0,F.jsxDEV)(`span`,{className:`text-fg-muted`,children:[` · `,L(t.at)]},void 0,!0,{fileName:B,lineNumber:94,columnNumber:9},this)]},void 0,!0,{fileName:B,lineNumber:77,columnNumber:7},this),n.data===void 0?(0,F.jsxDEV)(`p`,{className:`text-meta`,children:n.isError?`Could not read the change.`:`Reading the change…`},void 0,!1,{fileName:B,lineNumber:97,columnNumber:9},this):n.data.map(e=>(0,F.jsxDEV)(Ee,{file:e},e.path,!1,{fileName:B,lineNumber:101,columnNumber:36},this))]},void 0,!0,{fileName:B,lineNumber:76,columnNumber:5},this)}function Oe({name:e,change:t,now:n}){let[r,i]=(0,P.useState)(!1),a=t.files.length===0?t.subject:we(t);return(0,F.jsxDEV)(`li`,{className:`border-b border-line/60 last:border-b-0`,children:(0,F.jsxDEV)(`details`,{className:`group`,onToggle:e=>i(e.currentTarget.open),children:[(0,F.jsxDEV)(`summary`,{"aria-label":`${Se[t.kind]} ${y(t.at,n)}: ${a}`,className:`block cursor-pointer list-none px-4 py-2.5 transition-colors hover:bg-surface-2/30 group-open:bg-surface-2/20`,children:(0,F.jsxDEV)(`span`,{className:`flex items-center gap-2 text-xs`,children:[(0,F.jsxDEV)(`span`,{className:`shrink-0 text-fg-muted`,children:xe[t.kind]},void 0,!1,{fileName:B,lineNumber:118,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-fg-secondary`,children:a},void 0,!1,{fileName:B,lineNumber:119,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`shrink-0 text-fg-muted`,children:y(t.at,n)},void 0,!1,{fileName:B,lineNumber:120,columnNumber:13},this),(0,F.jsxDEV)(`span`,{"aria-hidden":`true`,className:`shrink-0 text-[10px] text-fg-muted transition-transform group-open:rotate-90`,children:`▸`},void 0,!1,{fileName:B,lineNumber:121,columnNumber:13},this)]},void 0,!0,{fileName:B,lineNumber:117,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:113,columnNumber:9},this),r?(0,F.jsxDEV)(De,{name:e,change:t},void 0,!1,{fileName:B,lineNumber:129,columnNumber:17},this):null]},void 0,!0,{fileName:B,lineNumber:112,columnNumber:7},this)},void 0,!1,{fileName:B,lineNumber:111,columnNumber:5},this)}function ke({name:e}){let[t,n]=(0,P.useState)(be),r=d(e,t),i=l(3e4);if(r.data===void 0)return(0,F.jsxDEV)(j,{children:r.isError?`Could not read the home's history.`:`Reading the history…`},void 0,!1,{fileName:B,lineNumber:145,columnNumber:7},this);let{changes:a,more:o}=r.data;return a.length===0?(0,F.jsxDEV)(j,{children:[e,`'s home has no history yet; it starts with the citizen's first turn.`]},void 0,!0,{fileName:B,lineNumber:153,columnNumber:7},this):(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto`,children:[(0,F.jsxDEV)(`p`,{className:`px-4 pt-3 pb-1 text-meta`,children:[`What `,e,`'s turns changed in its memory, skills, and profile, newest first.`]},void 0,!0,{fileName:B,lineNumber:160,columnNumber:7},this),(0,F.jsxDEV)(`ol`,{children:a.map(t=>(0,F.jsxDEV)(Oe,{name:e,change:t,now:i},t.commit,!1,{fileName:B,lineNumber:165,columnNumber:11},this))},void 0,!1,{fileName:B,lineNumber:163,columnNumber:7},this),o?(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>n(t+be),className:`px-4 py-3 text-xs text-fg-tertiary hover:text-fg-primary`,children:`Show earlier changes`},void 0,!1,{fileName:B,lineNumber:169,columnNumber:9},this):null]},void 0,!0,{fileName:B,lineNumber:159,columnNumber:5},this)}var V=`/home/climage/projects/stellaris/apps/web/src/board/CitizenMemory.tsx`;function H({title:e,children:t}){return(0,F.jsxDEV)(`section`,{className:`border-t border-line pt-4 first:border-t-0 first:pt-0`,children:[(0,F.jsxDEV)(`h3`,{className:`text-section`,children:e},void 0,!1,{fileName:V,lineNumber:11,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`mt-2`,children:t},void 0,!1,{fileName:V,lineNumber:12,columnNumber:7},this)]},void 0,!0,{fileName:V,lineNumber:10,columnNumber:5},this)}function Ae({member:e,charter:t}){let n=_(e.name),r=u(e.name),i=b(e.name),a=l(3e4);return(0,F.jsxDEV)(`div`,{className:`flex-1 space-y-5 overflow-y-auto px-4 py-4`,children:[i.data===void 0||i.data.length===0?null:(0,F.jsxDEV)(H,{title:`Edits to reconcile`,children:[(0,F.jsxDEV)(`p`,{className:`text-sm text-fg-secondary`,children:[`Two turns on different runners changed these files at once. Each file kept one version; the other waits beside it until `,e.name,` merges it in and deletes the copy.`]},void 0,!0,{fileName:V,lineNumber:37,columnNumber:11},this),(0,F.jsxDEV)(`ul`,{className:`mt-2 space-y-1.5`,children:i.data.map(e=>(0,F.jsxDEV)(`li`,{className:`text-sm`,children:[(0,F.jsxDEV)(`span`,{className:`text-fg-primary`,children:e.file},void 0,!1,{fileName:V,lineNumber:44,columnNumber:17},this),(0,F.jsxDEV)(`span`,{className:`text-meta`,children:[` `,`· `,e.path.slice(e.path.lastIndexOf(`/`)+1),` · left`,` `,y(e.since,a)]},void 0,!0,{fileName:V,lineNumber:45,columnNumber:17},this)]},e.path,!0,{fileName:V,lineNumber:43,columnNumber:15},this))},void 0,!1,{fileName:V,lineNumber:41,columnNumber:11},this)]},void 0,!0,{fileName:V,lineNumber:36,columnNumber:9},this),(0,F.jsxDEV)(H,{title:`Profile`,children:e.profile.trim()===``?(0,F.jsxDEV)(`p`,{className:`text-meta`,children:`No profile yet. The citizen writes its own profile.md.`},void 0,!1,{fileName:V,lineNumber:57,columnNumber:11},this):(0,F.jsxDEV)(A,{text:de(e.profile,`Profile`)},void 0,!1,{fileName:V,lineNumber:59,columnNumber:11},this)},void 0,!1,{fileName:V,lineNumber:55,columnNumber:7},this),(0,F.jsxDEV)(H,{title:`Core memory`,children:n.data===void 0?(0,F.jsxDEV)(`p`,{className:`text-meta`,children:`Reading…`},void 0,!1,{fileName:V,lineNumber:64,columnNumber:11},this):n.data.body.trim()===``?(0,F.jsxDEV)(`p`,{className:`text-meta`,children:`Empty. Every turn loads this file in full.`},void 0,!1,{fileName:V,lineNumber:66,columnNumber:11},this):(0,F.jsxDEV)(A,{text:de(n.data.body,`Core memory`)},void 0,!1,{fileName:V,lineNumber:68,columnNumber:11},this)},void 0,!1,{fileName:V,lineNumber:62,columnNumber:7},this),(0,F.jsxDEV)(H,{title:`Own skills`,children:r.data===void 0?(0,F.jsxDEV)(`p`,{className:`text-meta`,children:`Reading…`},void 0,!1,{fileName:V,lineNumber:73,columnNumber:11},this):r.data.length===0?(0,F.jsxDEV)(`p`,{className:`text-meta`,children:`None yet.`},void 0,!1,{fileName:V,lineNumber:75,columnNumber:11},this):(0,F.jsxDEV)(`ul`,{className:`space-y-1.5`,children:r.data.map(e=>(0,F.jsxDEV)(`li`,{className:`text-sm`,children:[(0,F.jsxDEV)(`span`,{className:`text-fg-primary`,children:e.name},void 0,!1,{fileName:V,lineNumber:80,columnNumber:17},this),e.summary===``?null:(0,F.jsxDEV)(`span`,{className:`text-fg-secondary`,children:[` · `,e.summary]},void 0,!0,{fileName:V,lineNumber:82,columnNumber:19},this)]},e.name,!0,{fileName:V,lineNumber:79,columnNumber:15},this))},void 0,!1,{fileName:V,lineNumber:77,columnNumber:11},this)},void 0,!1,{fileName:V,lineNumber:71,columnNumber:7},this),t===void 0?null:(0,F.jsxDEV)(H,{title:`Charter of ${t.name}`,children:[(0,F.jsxDEV)(`p`,{className:`text-sm text-fg-secondary`,children:t.purpose},void 0,!1,{fileName:V,lineNumber:91,columnNumber:11},this),(0,F.jsxDEV)(`p`,{className:`mt-2 text-meta`,children:[`Wakes on mentions, stages, and `,t.wakeTriggers.join(`, `)||`nothing else`,t.resident?` · keeps a warm session`:``,t.reflects?` · reflects`:``]},void 0,!0,{fileName:V,lineNumber:92,columnNumber:11},this),(0,F.jsxDEV)(`p`,{className:`mt-2 flex flex-wrap gap-1`,children:t.verbs.map(e=>(0,F.jsxDEV)(`span`,{className:`rounded-md bg-surface-2/70 px-1.5 py-px font-mono text-[11px] text-fg-tertiary`,children:e},e,!1,{fileName:V,lineNumber:99,columnNumber:15},this))},void 0,!1,{fileName:V,lineNumber:97,columnNumber:11},this)]},void 0,!0,{fileName:V,lineNumber:90,columnNumber:9},this)]},void 0,!0,{fileName:V,lineNumber:34,columnNumber:5},this)}function U(e,t){let r=n(e,t?.turnId??null);return{turn:(0,P.useMemo)(()=>t===void 0||r.data===void 0?void 0:ie(r.data,e,t.project,t.thread),[t,r.data,e]),loading:t?.turnId!==void 0&&r.isPending,missing:t!==void 0&&(t.turnId===void 0||r.isError)}}var W=`/home/climage/projects/stellaris/apps/web/src/board/CitizenTurns.tsx`,G=50;function je({name:e,entry:t,cli:n,now:r,opened:i}){let[a,o]=(0,P.useState)(i),s=(0,P.useRef)(null);(0,P.useEffect)(()=>{i&&s.current?.scrollIntoView({block:`start`})},[i]);let c=oe(),l=pe(t),u=t.thread===void 0?null:c.get(t.thread)?.title??`a thread`,d=t.error??t.summary??``,f=t.error===null?`text-fg-secondary`:`text-red-300`;return(0,F.jsxDEV)(`li`,{ref:s,className:`border-b border-line/60 last:border-b-0`,children:(0,F.jsxDEV)(`details`,{className:`group`,open:a,onToggle:e=>o(e.currentTarget.open),children:[(0,F.jsxDEV)(`summary`,{className:`block cursor-pointer list-none px-4 py-2.5 transition-colors hover:bg-surface-2/30 group-open:bg-surface-2/20`,children:[(0,F.jsxDEV)(`span`,{className:`flex items-center gap-2 text-xs`,children:[(0,F.jsxDEV)(`span`,{className:`min-w-0 truncate text-fg-secondary`,children:[N(t.project),u===null?``:` · ${u}`]},void 0,!0,{fileName:W,lineNumber:49,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`text-fg-muted`,children:t.trigger},void 0,!1,{fileName:W,lineNumber:53,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-fg-muted`,children:[fe(t),` `,y(t.ts,r)]},void 0,!0,{fileName:W,lineNumber:54,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`shrink-0 font-mono text-[11px] text-fg-tertiary`,children:[l,t.toolCalls===void 0?null:`${t.toolCalls} tools`,ge(t,n)].filter(e=>e!==null).join(` · `)},void 0,!1,{fileName:W,lineNumber:57,columnNumber:13},this),(0,F.jsxDEV)(`span`,{"aria-hidden":`true`,className:`shrink-0 text-[10px] text-fg-muted transition-transform group-open:rotate-90`,children:`▸`},void 0,!1,{fileName:W,lineNumber:66,columnNumber:13},this)]},void 0,!0,{fileName:W,lineNumber:48,columnNumber:11},this),d.trim()===``?null:(0,F.jsxDEV)(`span`,{className:`mt-1 line-clamp-2 block text-xs leading-relaxed group-open:hidden ${f}`,children:(0,F.jsxDEV)(D,{text:d,links:!1},void 0,!1,{fileName:W,lineNumber:77,columnNumber:15},this)},void 0,!1,{fileName:W,lineNumber:74,columnNumber:13},this)]},void 0,!0,{fileName:W,lineNumber:47,columnNumber:9},this),a?(0,F.jsxDEV)(Me,{name:e,entry:t,text:d,tone:f},void 0,!1,{fileName:W,lineNumber:81,columnNumber:17},this):null]},void 0,!0,{fileName:W,lineNumber:42,columnNumber:7},this)},void 0,!1,{fileName:W,lineNumber:41,columnNumber:5},this)}function Me({name:e,entry:t,text:n,tone:r}){let i=U(e,t);return(0,F.jsxDEV)(`div`,{className:`px-4 pt-1 pb-3`,children:[n.trim()===``?null:(0,F.jsxDEV)(`p`,{className:`text-xs leading-relaxed whitespace-pre-wrap ${r}`,children:(0,F.jsxDEV)(D,{text:n},void 0,!1,{fileName:W,lineNumber:104,columnNumber:11},this)},void 0,!1,{fileName:W,lineNumber:103,columnNumber:9},this),(0,F.jsxDEV)(`div`,{className:`mt-2`,children:t.turnId===void 0?(0,F.jsxDEV)(`p`,{className:`text-meta`,children:`This turn ran before turns kept their steps.`},void 0,!1,{fileName:W,lineNumber:109,columnNumber:11},this):i.loading?(0,F.jsxDEV)(`p`,{className:`text-meta`,children:`Reading the steps…`},void 0,!1,{fileName:W,lineNumber:111,columnNumber:11},this):i.turn===void 0?(0,F.jsxDEV)(`p`,{className:`text-meta`,children:`No steps were kept for this turn.`},void 0,!1,{fileName:W,lineNumber:113,columnNumber:11},this):(0,F.jsxDEV)(F.Fragment,{children:[t.startedAt===void 0?null:(0,F.jsxDEV)(`p`,{className:`text-caps`,children:[`Started `,L(t.startedAt)]},void 0,!0,{fileName:W,lineNumber:117,columnNumber:15},this),(0,F.jsxDEV)(z,{steps:i.turn.steps},void 0,!1,{fileName:W,lineNumber:119,columnNumber:13},this)]},void 0,!0,{fileName:W,lineNumber:115,columnNumber:11},this)},void 0,!1,{fileName:W,lineNumber:107,columnNumber:7},this)]},void 0,!0,{fileName:W,lineNumber:101,columnNumber:5},this)}function Ne({name:e,cli:t,opened:n}){let[i,a]=(0,P.useState)(G),o=r(e,i),s=l(3e4);if(o.data===void 0)return(0,F.jsxDEV)(j,{children:`Reading the turns…`},void 0,!1,{fileName:W,lineNumber:144,columnNumber:12},this);let c=o.data.toReversed();if(c.length===0)return(0,F.jsxDEV)(j,{children:[e,` has not finished a turn yet.`]},void 0,!0,{fileName:W,lineNumber:148,columnNumber:12},this);let u=me(c),d=t===`codex`?`unmetered`:`$${u.costUsd.toFixed(2)}`;return(0,F.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto`,children:[(0,F.jsxDEV)(`p`,{className:`px-4 pt-3 pb-1 text-meta`,children:[u.turns===1?`1 turn`:`${u.turns} turns`,u.failed===0?``:`, ${u.failed} not completed`,` · `,d]},void 0,!0,{fileName:W,lineNumber:154,columnNumber:7},this),n!==null&&!c.some(e=>e.turnId===n)?(0,F.jsxDEV)(`p`,{className:`px-4 pb-1 text-meta`,children:o.data.length===i?`The turn this address opens is further back; show earlier turns to reach it.`:`The turn this address opens is not in this citizen's history.`},void 0,!1,{fileName:W,lineNumber:159,columnNumber:9},this):null,(0,F.jsxDEV)(`ol`,{children:c.map(r=>(0,F.jsxDEV)(je,{name:e,entry:r,cli:t,now:s,opened:n!==null&&r.turnId===n},r.id,!1,{fileName:W,lineNumber:167,columnNumber:11},this))},void 0,!1,{fileName:W,lineNumber:165,columnNumber:7},this),o.data.length===i?(0,F.jsxDEV)(`button`,{type:`button`,onClick:()=>a(i+G),className:`px-4 py-3 text-xs text-fg-tertiary hover:text-fg-primary`,children:[`Show `,G,` earlier turns`]},void 0,!0,{fileName:W,lineNumber:178,columnNumber:9},this):null]},void 0,!0,{fileName:W,lineNumber:153,columnNumber:5},this)}var K=`/home/climage/projects/stellaris/apps/web/src/components/Picker.tsx`;function Pe(e){return e===void 0?``:`${e.name}${e.id===null?``:` · ${e.id}`}`}function Fe({label:e,choices:t,value:n,onChange:r}){let[i,a]=(0,P.useState)(!1),o=(0,P.useRef)(null),s=(0,P.useRef)(null),c=(0,P.useRef)([]),l=t.findIndex(e=>e.value===n);(0,P.useEffect)(()=>{if(!i)return;c.current[Math.max(l,0)]?.focus();let e=e=>{e.target instanceof Node&&o.current?.contains(e.target)===!0||a(!1)};return window.addEventListener(`pointerdown`,e),()=>window.removeEventListener(`pointerdown`,e)},[i,l]);let u=e=>{if(e.key===`Escape`){e.stopPropagation(),a(!1),s.current?.focus();return}if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`)return;e.preventDefault();let n=(c.current.findIndex(e=>e===document.activeElement)+(e.key===`ArrowDown`?1:-1)+t.length)%t.length;c.current[n]?.focus()},d=t[l];return(0,F.jsxDEV)(`div`,{ref:o,className:`relative min-w-0 flex-1`,children:[(0,F.jsxDEV)(`button`,{ref:s,type:`button`,"aria-label":`${e}: ${Pe(d)}`,"aria-expanded":i,onClick:()=>a(!i),onKeyDown:i?u:void 0,className:`flex h-7 w-full items-center gap-1.5 rounded-md bg-surface-2/60 px-2.5 text-xs text-fg-secondary transition-colors hover:bg-surface-2 focus-visible:ring-2 focus-visible:ring-fg-primary/30 focus-visible:outline-none`,children:[(0,F.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-left`,children:[d?.name,d?.id===null||d===void 0?null:(0,F.jsxDEV)(`span`,{className:`text-fg-tertiary`,children:[` · `,d.id]},void 0,!0,{fileName:K,lineNumber:81,columnNumber:13},this)]},void 0,!0,{fileName:K,lineNumber:78,columnNumber:9},this),(0,F.jsxDEV)(`span`,{"aria-hidden":`true`,className:`text-[10px] text-fg-muted transition-transform ${i?`rotate-180`:``}`,children:`▾`},void 0,!1,{fileName:K,lineNumber:84,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:69,columnNumber:7},this),i?(0,F.jsxDEV)(`div`,{className:`absolute inset-x-0 top-full z-20 mt-1 max-h-80 overflow-y-auto rounded-xl bg-surface-1/95 p-1 shadow-[inset_0_0_0_1px_rgba(255,255,255,0.08),0_16px_32px_-12px_rgba(0,0,0,0.8)] backdrop-blur-xl`,children:t.map((e,t)=>{let i=e.value===n;return(0,F.jsxDEV)(`button`,{ref:e=>{c.current[t]=e},type:`button`,"aria-current":i?`true`:void 0,onKeyDown:u,onClick:()=>{r(e.value),a(!1),s.current?.focus()},className:`flex w-full items-start gap-2 rounded-lg px-2.5 py-1.5 text-left transition-colors focus-visible:outline-none ${i?`bg-surface-2/80`:`hover:bg-surface-2/50 focus-visible:bg-surface-2/50`}`,children:[(0,F.jsxDEV)(`span`,{className:`min-w-0 flex-1`,children:[(0,F.jsxDEV)(`span`,{className:`block truncate text-xs text-fg-secondary`,children:[e.name,e.id===null?null:(0,F.jsxDEV)(`span`,{className:`text-fg-tertiary`,children:[` · `,e.id]},void 0,!0,{fileName:K,lineNumber:117,columnNumber:23},this)]},void 0,!0,{fileName:K,lineNumber:114,columnNumber:19},this),e.description===``?null:(0,F.jsxDEV)(`span`,{className:`block truncate text-[11px] text-fg-muted`,children:e.description},void 0,!1,{fileName:K,lineNumber:121,columnNumber:21},this)]},void 0,!0,{fileName:K,lineNumber:113,columnNumber:17},this),(0,F.jsxDEV)(`span`,{"aria-hidden":`true`,className:`w-3 shrink-0 pt-px text-[11px] text-fg-primary`,children:i?`✓`:``},void 0,!1,{fileName:K,lineNumber:126,columnNumber:17},this)]},e.value,!0,{fileName:K,lineNumber:96,columnNumber:15},this)})},void 0,!1,{fileName:K,lineNumber:92,columnNumber:9},this):null]},void 0,!0,{fileName:K,lineNumber:68,columnNumber:5},this)}var q=`/home/climage/projects/stellaris/apps/web/src/board/ModelForm.tsx`,J=``;function Ie(e,t){return[{value:J,name:`CLI default`,id:e.find(e=>e.isDefault)?.name??null,description:`Whatever the CLI runs when no model is set.`},...e.map(e=>({value:e.id,name:e.name,id:e.name===e.id?null:e.id,description:e.description})),...t===null?[]:[{value:t,name:t,id:null,description:`Not in the CLI's list.`}]]}function Le({member:e,onDone:t}){let{api:n}=c(),r=h(),i=f(e.cli),a=e.model??J,[o,s]=(0,P.useState)(a),l=E({mutationFn:()=>n.setModel(e.name,o===J?null:o),onSuccess:()=>{r.invalidateQueries({queryKey:[`members`]}),t()}}),u=i.data??[],d=e.model!==void 0&&!u.some(t=>t.id===e.model)?e.model:null;return(0,F.jsxDEV)(`form`,{"aria-label":`Model of ${e.name}`,className:`space-y-2 border-b border-line bg-surface-2/20 p-3`,onSubmit:e=>{e.preventDefault(),l.mutate()},children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[i.isPending?(0,F.jsxDEV)(`p`,{className:`min-w-0 flex-1 truncate text-meta`,children:[`Asking `,e.cli,` for its models…`]},void 0,!0,{fileName:q,lineNumber:70,columnNumber:11},this):i.error===null?(0,F.jsxDEV)(Fe,{label:`Model`,choices:Ie(u,d),value:o,onChange:s},void 0,!1,{fileName:q,lineNumber:79,columnNumber:11},this):(0,F.jsxDEV)(`p`,{role:`alert`,className:`min-w-0 flex-1 truncate text-xs text-red-400`,children:[e.cli,` did not list its models:`,` `,i.error instanceof w?i.error.message:`the board server did not answer`]},void 0,!0,{fileName:q,lineNumber:72,columnNumber:11},this),(0,F.jsxDEV)(O,{onClick:t,children:`Cancel`},void 0,!1,{fileName:q,lineNumber:86,columnNumber:9},this),(0,F.jsxDEV)(O,{variant:`primary`,type:`submit`,disabled:l.isPending||o===a||i.error!==null,children:l.isPending?`Saving…`:`Use this model`},void 0,!1,{fileName:q,lineNumber:87,columnNumber:9},this)]},void 0,!0,{fileName:q,lineNumber:68,columnNumber:7},this),(0,F.jsxDEV)(M,{error:l.error},void 0,!1,{fileName:q,lineNumber:95,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:60,columnNumber:5},this)}var Y=`/home/climage/projects/stellaris/apps/web/src/board/RunnerForm.tsx`,X=``;function Re(e,t){let n=t.cli;return[e.status,e.clis.length===0?`offers no CLI yet`:e.clis.join(`, `),n!==null&&e.clis.length>0&&!e.clis.includes(n)?`has no ${n}`:``,e.capabilities.length===0?``:e.capabilities.join(`, `)].filter(e=>e!==``).join(` · `)}function ze(e,t){return[{value:X,name:`Any runner`,id:null,description:`Pinned to the least busy runner on its next turn outside a project.`},...e.map(e=>({value:e.name,name:e.name,id:e.os,description:Re(e,t)}))]}function Be({member:e,onDone:n}){let{api:r}=c(),i=h(),a=t(),o=e.homeRunner??X,[s,l]=(0,P.useState)(o),u=E({mutationFn:()=>r.setRunner(e.name,s===X?null:s),onSuccess:()=>{i.invalidateQueries({queryKey:[`members`]}),n()}});return(0,F.jsxDEV)(`form`,{"aria-label":`Runner of ${e.name}`,className:`space-y-2 border-b border-line bg-surface-2/20 p-3`,onSubmit:e=>{e.preventDefault(),u.mutate()},children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[a.data===void 0?(0,F.jsxDEV)(`p`,{className:`min-w-0 flex-1 truncate text-meta`,children:`Reading the runners…`},void 0,!1,{fileName:Y,lineNumber:70,columnNumber:11},this):(0,F.jsxDEV)(Fe,{label:`Runner`,choices:ze(a.data,e),value:s,onChange:l},void 0,!1,{fileName:Y,lineNumber:72,columnNumber:11},this),(0,F.jsxDEV)(O,{onClick:n,children:`Cancel`},void 0,!1,{fileName:Y,lineNumber:79,columnNumber:9},this),(0,F.jsxDEV)(O,{variant:`primary`,type:`submit`,disabled:u.isPending||s===o,children:u.isPending?`Saving…`:`Run here`},void 0,!1,{fileName:Y,lineNumber:80,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:68,columnNumber:7},this),(0,F.jsxDEV)(`p`,{className:`text-meta`,children:`Its conversations outside projects start afresh there from its next turn; its memory and skills follow it. Project work runs where each project lives.`},void 0,!1,{fileName:Y,lineNumber:84,columnNumber:7},this),(0,F.jsxDEV)(M,{error:u.error},void 0,!1,{fileName:Y,lineNumber:88,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:60,columnNumber:5},this)}var Z=`/home/climage/projects/stellaris/apps/web/src/board/WakeForm.tsx`;function Ve({member:e,scopes:t,preferred:n,running:r,paused:i,onDone:a}){let{api:o}=c(),s=h(),[l,u]=(0,P.useState)(`manual`),[d,f]=(0,P.useState)(n!==null&&t.includes(n)?n:t[0]??``),[p,m]=(0,P.useState)(``),g=(0,P.useRef)(null);(0,P.useEffect)(()=>g.current?.focus(),[]);let _=E({mutationFn:()=>o.wake({agent:e.name,project:d,kind:l,...p.trim()===``?{}:{reason:p.trim()}}),onSuccess:()=>{s.invalidateQueries({queryKey:[`scheduler`]}),a()}}),v=N(d),y=l===`reflection`?`Asks ${e.name} to reflect at ${v}: consolidate its memory, skills, and profile, and take no new work. It restarts the reflection clock.`:`Starts a turn for ${e.name} at ${v} as soon as the scheduler takes it.`,b=i?` The society is paused, so it waits until you resume.`:r.includes(d)?` ${e.name} is in a turn there now; this one follows it.`:``;return(0,F.jsxDEV)(`form`,{"aria-label":`Wake ${e.name}`,className:`space-y-2 border-b border-line bg-surface-2/20 p-3`,onSubmit:e=>{e.preventDefault(),_.mutate()},children:[(0,F.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxDEV)(`fieldset`,{className:`flex gap-1`,children:[(0,F.jsxDEV)(`legend`,{className:`sr-only`,children:`Kind of turn`},void 0,!1,{fileName:Z,lineNumber:77,columnNumber:11},this),[`manual`,`reflection`].map(e=>(0,F.jsxDEV)(`label`,{className:`cursor-pointer rounded-md px-2.5 py-1 text-xs transition-colors has-focus-visible:ring-2 has-focus-visible:ring-fg-primary/30 ${l===e?`bg-surface-2 text-fg-primary`:`text-fg-tertiary hover:bg-surface-2/60 hover:text-fg-primary`}`,children:[(0,F.jsxDEV)(`input`,{type:`radio`,name:`kind`,value:e,checked:l===e,onChange:()=>u(e),className:`sr-only`},void 0,!1,{fileName:Z,lineNumber:87,columnNumber:15},this),e===`manual`?`A turn`:`A reflection`]},e,!0,{fileName:Z,lineNumber:79,columnNumber:13},this))]},void 0,!0,{fileName:Z,lineNumber:76,columnNumber:9},this),(0,F.jsxDEV)(`label`,{className:`ml-auto flex items-center gap-2 text-xs text-fg-tertiary`,children:[`at`,(0,F.jsxDEV)(`select`,{value:d,onChange:e=>f(e.target.value),"aria-label":`Where`,className:`rounded-md bg-surface-2/60 px-2 py-1 text-xs text-fg-primary outline-none`,children:t.map(e=>(0,F.jsxDEV)(`option`,{value:e,children:N(e)},e,!1,{fileName:Z,lineNumber:108,columnNumber:15},this))},void 0,!1,{fileName:Z,lineNumber:101,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:99,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:75,columnNumber:7},this),(0,F.jsxDEV)(`textarea`,{ref:g,value:p,rows:2,placeholder:l===`reflection`?`Anything to reflect on in particular? Optional.`:`What should it look at? It reads this as the reason it was woken.`,"aria-label":`Reason`,onChange:e=>m(e.target.value),className:`${le} resize-none`},void 0,!1,{fileName:Z,lineNumber:115,columnNumber:7},this),(0,F.jsxDEV)(`p`,{className:`text-[11px] leading-relaxed text-fg-muted`,children:[y,b,` Each turn costs money.`]},void 0,!0,{fileName:Z,lineNumber:128,columnNumber:7},this),(0,F.jsxDEV)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,F.jsxDEV)(O,{onClick:a,children:`Cancel`},void 0,!1,{fileName:Z,lineNumber:133,columnNumber:9},this),(0,F.jsxDEV)(O,{variant:`primary`,type:`submit`,disabled:_.isPending||d===``,children:_.isPending?`Waking…`:l===`reflection`?`Ask for a reflection`:`Wake ${e.name}`},void 0,!1,{fileName:Z,lineNumber:134,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:132,columnNumber:7},this),(0,F.jsxDEV)(M,{error:_.error},void 0,!1,{fileName:Z,lineNumber:142,columnNumber:7},this)]},void 0,!0,{fileName:Z,lineNumber:67,columnNumber:5},this)}var Q=`/home/climage/projects/stellaris/apps/web/src/board/CitizenView.tsx`,He={working:`bg-emerald-500/15 text-emerald-300`,queued:`bg-amber-500/15 text-amber-300`,idle:`bg-surface-2 text-fg-tertiary`};function Ue({project:t,name:n}){let r=(e(t).data??[]).filter(e=>e.status===`claimed`&&e.claimedBy===n);return r.length===0?null:(0,F.jsxDEV)(`ul`,{className:`mt-1.5 space-y-1`,children:r.map(e=>(0,F.jsxDEV)(`li`,{children:(0,F.jsxDEV)(o,{to:`/task/$taskId`,params:{taskId:e.id},className:`flex items-center gap-2 rounded-md text-xs text-fg-secondary hover:text-fg-primary`,children:[(0,F.jsxDEV)(`span`,{"aria-hidden":`true`,className:`text-fg-muted`,children:`◇`},void 0,!1,{fileName:Q,lineNumber:63,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.title},void 0,!1,{fileName:Q,lineNumber:66,columnNumber:13},this),(0,F.jsxDEV)(`span`,{className:`max-w-[40%] shrink-0 truncate font-mono text-[11px] text-fg-muted`,children:p(e)?.name??e.stage},void 0,!1,{fileName:Q,lineNumber:67,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:58,columnNumber:11},this)},e.id,!1,{fileName:Q,lineNumber:57,columnNumber:9},this))},void 0,!1,{fileName:Q,lineNumber:55,columnNumber:5},this)}function We(){let{name:e}=C({from:`/citizen/$name`}),{scope:t,tab:n,turn:r}=S({from:`/citizen/$name`});return(0,F.jsxDEV)(Ke,{name:e,chosen:t??null,tab:n??`now`,turn:r??null},e,!1,{fileName:Q,lineNumber:82,columnNumber:5},this)}var Ge=[{tab:`now`,label:`Now`},{tab:`turns`,label:`Turns`},{tab:`memory`,label:`Memory`},{tab:`history`,label:`History`}];function Ke({name:e,chosen:t,tab:n,turn:r}){let i=v(),a=s(),c=x(),l=ne(),[u,d]=(0,P.useState)(null),f=i.data?.find(t=>t.name===e);if(f===void 0)return(0,F.jsxDEV)(j,{children:i.data===void 0?`Reading the roster…`:`There is no citizen ${e}.`},void 0,!1,{fileName:Q,lineNumber:119,columnNumber:7},this);let p=T(c.data?.running??[]).filter(t=>t.agent===e),m=[...new Set(p.map(e=>e.scope))],h=p.map(e=>ee(e.agent,e.scope,e.thread)),g=T(c.data?.pending??[]).find(t=>t.agent===e),_=m.length>0?`working`:g===void 0?`idle`:`queued`,y=re(l,e)[0],b=y?.model??f.lastModel,S=b??f.model??`CLI default`,C=f.model!==void 0&&f.model!==b?f.model:null,w=a.data?.find(e=>e.name===f.role),E=he(f),D=f.status===`active`&&f.cli!==null;return(0,F.jsxDEV)(F.Fragment,{children:[(0,F.jsxDEV)(ce,{leading:f.cli===null?null:(0,F.jsxDEV)(`span`,{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-surface-2/70`,children:(0,F.jsxDEV)(se,{cli:f.cli,size:20},void 0,!1,{fileName:Q,lineNumber:145,columnNumber:15},this)},void 0,!1,{fileName:Q,lineNumber:144,columnNumber:13},this),title:e,subtitle:(0,F.jsxDEV)(F.Fragment,{children:[f.role,` · `,S,C===null?``:` · set to ${C}`,f.homeRunner===void 0?``:` · on ${f.homeRunner}`,f.status===`retired`?` · retired`:``]},void 0,!0,{fileName:Q,lineNumber:151,columnNumber:11},this),trailing:(0,F.jsxDEV)(F.Fragment,{children:[D&&u===null?(0,F.jsxDEV)(F.Fragment,{children:[(0,F.jsxDEV)(O,{onClick:()=>d(`model`),children:`Model…`},void 0,!1,{fileName:Q,lineNumber:162,columnNumber:17},this),(0,F.jsxDEV)(O,{onClick:()=>d(`runner`),children:`Runner…`},void 0,!1,{fileName:Q,lineNumber:163,columnNumber:17},this),(0,F.jsxDEV)(O,{onClick:()=>d(`wake`),children:`Wake…`},void 0,!1,{fileName:Q,lineNumber:164,columnNumber:17},this)]},void 0,!0,{fileName:Q,lineNumber:161,columnNumber:15},this):null,(0,F.jsxDEV)(`span`,{className:`shrink-0 rounded-full px-2 py-0.5 text-[11px] font-medium ${He[_]}`,children:_},void 0,!1,{fileName:Q,lineNumber:167,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:159,columnNumber:11},this)},void 0,!1,{fileName:Q,lineNumber:141,columnNumber:7},this),u===`wake`?(0,F.jsxDEV)(Ve,{member:f,scopes:E,preferred:t?.split(`/`)[0]??y?.scope??null,running:m,paused:c.data?.paused??!1,onDone:()=>d(null)},void 0,!1,{fileName:Q,lineNumber:176,columnNumber:9},this):u===`model`?(0,F.jsxDEV)(Le,{member:f,onDone:()=>d(null)},void 0,!1,{fileName:Q,lineNumber:185,columnNumber:9},this):u===`runner`?(0,F.jsxDEV)(Be,{member:f,onDone:()=>d(null)},void 0,!1,{fileName:Q,lineNumber:187,columnNumber:9},this):null,(0,F.jsxDEV)(`nav`,{"aria-label":`Citizen views`,className:`flex gap-1 border-b border-line px-3 py-2`,children:Ge.map(r=>(0,F.jsxDEV)(o,{to:`/citizen/$name`,params:{name:e},search:{...t===null?{}:{scope:t},...r.tab===`now`?{}:{tab:r.tab}},replace:!0,"aria-current":r.tab===n?`page`:void 0,className:`rounded-md px-2.5 py-1 text-xs transition-colors ${r.tab===n?`bg-surface-2 text-fg-primary`:`text-fg-tertiary hover:bg-surface-2/60 hover:text-fg-primary`}`,children:r.label},r.tab,!1,{fileName:Q,lineNumber:191,columnNumber:11},this))},void 0,!1,{fileName:Q,lineNumber:189,columnNumber:7},this),n===`turns`?(0,F.jsxDEV)(Ne,{name:e,cli:f.cli,opened:r},r,!1,{fileName:Q,lineNumber:212,columnNumber:9},this):n===`memory`?(0,F.jsxDEV)(Ae,{member:f,charter:w},void 0,!1,{fileName:Q,lineNumber:214,columnNumber:9},this):n===`history`?(0,F.jsxDEV)(ke,{name:e},void 0,!1,{fileName:Q,lineNumber:216,columnNumber:9},this):(0,F.jsxDEV)(qe,{name:e,chosen:t,lastTurnAt:f.lastTurnAt,state:_,runningScopes:m,runningKeys:h,queuedScope:g?.scope??null},void 0,!1,{fileName:Q,lineNumber:218,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:140,columnNumber:5},this)}function $(e){return e.toSorted((e,t)=>e.startedAt.localeCompare(t.startedAt))[0]}function qe({name:e,chosen:t,lastTurnAt:n,state:i,runningScopes:a,runningKeys:s,queuedScope:c}){let u=ne(),d=l(5e3),{ref:f,onScroll:p}=ue(),m=re(u,e),h=r(e,1),g=U(e,m.length===0?h.data?.at(-1):void 0),_=oe(),v=e=>e.end===null&&s.includes(ee(e.agent,e.scope,e.thread)),b=t?.split(`/`)[0]??null,x=(t?.includes(`/`)===!0?m.find(e=>k(e)===t):void 0)??$(m.filter(e=>e.scope===b&&v(e)))??m.find(e=>k(e)===t)??$(m.filter(v))??m[0]??g.turn,S=e=>e.thread===void 0?N(e.scope):`${N(e.scope)} · ${_.get(e.thread)?.title??`a thread`}`,C=x!==void 0&&v(x),w=x?.scope??a[0]??c;return(0,F.jsxDEV)(F.Fragment,{children:[(0,F.jsxDEV)(`section`,{className:`border-b border-line px-4 py-3 text-xs text-fg-tertiary`,children:[(0,F.jsxDEV)(`p`,{children:C?`In a turn at ${N(x.scope)} for ${x.fromStart?``:`at least `}${ae(x.startedAt,d)}`:a.length>0?`In a turn at ${a.map(N).join(` and `)}`:c===null?n===void 0?`No turns yet`:`Last turn ${y(n,d)}`:`Queued for a turn at ${N(c)}`},void 0,!1,{fileName:Q,lineNumber:294,columnNumber:9},this),w===null||w===`society`?null:(0,F.jsxDEV)(Ue,{project:w,name:e},void 0,!1,{fileName:Q,lineNumber:306,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:293,columnNumber:7},this),(0,F.jsxDEV)(`div`,{ref:f,onScroll:p,className:`flex-1 overflow-y-auto px-4 py-3`,children:x===void 0?(0,F.jsxDEV)(j,{children:i===`working`?`The turn has not reported a step yet.`:g.loading?`Reading the last turn…`:n===void 0?`${e} has not taken a turn yet.`:`${e}'s last turn kept no steps; Turns lists every finished one.`},void 0,!1,{fileName:Q,lineNumber:311,columnNumber:11},this):(0,F.jsxDEV)(F.Fragment,{children:[m.length>1?(0,F.jsxDEV)(`div`,{className:`mb-3 flex flex-wrap gap-1.5`,"aria-label":`Turns by conversation`,children:m.toSorted((e,t)=>k(e).localeCompare(k(t))).map(t=>(0,F.jsxDEV)(o,{to:`/citizen/$name`,params:{name:e},search:{scope:k(t)},replace:!0,"aria-current":t===x?`true`:void 0,className:`inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-[11px] transition-colors ${t===x?`bg-surface-2 text-fg-primary`:`text-fg-tertiary hover:bg-surface-2/60 hover:text-fg-primary`}`,children:[v(t)?(0,F.jsxDEV)(`span`,{className:`size-1.5 animate-pulse rounded-full bg-emerald-400`},void 0,!1,{fileName:Q,lineNumber:341,columnNumber:25},this):null,S(t)]},k(t),!0,{fileName:Q,lineNumber:327,columnNumber:21},this))},void 0,!1,{fileName:Q,lineNumber:323,columnNumber:15},this):null,(0,F.jsxDEV)(`p`,{className:`text-caps`,children:[C?`This turn`:`Last turn`,` · `,S(x),` · started`,` `,x.fromStart?L(x.startedAt):`before the earliest step shown`]},void 0,!0,{fileName:Q,lineNumber:348,columnNumber:13},this),x.fromStart?null:(0,F.jsxDEV)(`p`,{className:`mt-1 text-meta`,children:[`Earlier steps of this turn are no longer in the server's live buffer`,C?``:`; Turns has the whole turn`,`.`]},void 0,!0,{fileName:Q,lineNumber:353,columnNumber:15},this),(0,F.jsxDEV)(z,{steps:x.steps},void 0,!1,{fileName:Q,lineNumber:358,columnNumber:13},this),(0,F.jsxDEV)(ye,{turn:x,running:C,now:d},void 0,!1,{fileName:Q,lineNumber:359,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:321,columnNumber:11},this)},void 0,!1,{fileName:Q,lineNumber:309,columnNumber:7},this)]},void 0,!0,{fileName:Q,lineNumber:292,columnNumber:5},this)}export{We as CitizenView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{P as e,Pt as t,p as n,v as r,w as i}from"./format-Ca2VAvEx.js";import{P as a,x as o}from"./index-D4GJkeKU.js";import{n as s,t as c}from"./Pane-DRpHmeJ9.js";import{a as l,i as u}from"./citizen-BXVebeiP.js";var d=e(),f=`/home/climage/projects/stellaris/apps/web/src/board/CitizensView.tsx`;function p(e){let t=e.lastModel??e.model??`CLI default`;return e.model!==void 0&&e.model!==t?`${t} · set to ${e.model}`:t}function m(e,t){return e.name.localeCompare(t.name)}function h(e,t){return e.role.localeCompare(t.role)||m(e,t)}function g(){let e=n(),g=i(),_=r();if(e.data===void 0)return(0,d.jsxDEV)(s,{children:`Reading the roster…`},void 0,!1,{fileName:f,lineNumber:34,columnNumber:12},this);let v=e.data.filter(e=>e.cli!==null),y=v.filter(e=>e.status===`active`).toSorted(h),b=v.filter(e=>e.status!==`active`).toSorted(m),x=new Set(y.map(e=>e.role)).size,S=a(g.data?.running??[]),C=a(g.data?.pending??[]),w=new Map((_.data??[]).flatMap(e=>e.runner===void 0?[]:[[e.slug,e.runner]])),T=e=>{let t=[...new Set(S.filter(t=>t.agent===e.name).map(e=>e.scope))];return t.length>0?{label:`working`,detail:`in a turn at ${t.map(l).join(` and `)}`,tone:`text-emerald-300`}:C.some(t=>t.agent===e.name)?{label:`queued`,detail:`queued for a turn`,tone:`text-amber-300`}:{label:`resting`,detail:`resting`,tone:`text-fg-muted`}};return(0,d.jsxDEV)(d.Fragment,{children:[(0,d.jsxDEV)(c,{title:`Citizens`,subtitle:`${y.length} active in ${x===1?`1 role`:`${x} roles`}${b.length===0?``:` · ${b.length} retired`}`},void 0,!1,{fileName:f,lineNumber:68,columnNumber:7},this),(0,d.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto px-2 py-2`,children:[y.length===0?(0,d.jsxDEV)(`p`,{className:`px-2 py-2 text-meta`,children:`No citizens yet. Ask the concierge for one.`},void 0,!1,{fileName:f,lineNumber:74,columnNumber:11},this):null,(0,d.jsxDEV)(`ul`,{className:`grid grid-cols-[auto_auto_auto_minmax(0,max-content)_auto_minmax(3rem,1fr)_auto] gap-x-3`,children:y.map(e=>{let n=T(e),r=p(e),i=e.memberships.length===0?`no projects`:e.memberships.join(`, `),a=u(e,w);return(0,d.jsxDEV)(`li`,{className:`col-span-full grid grid-cols-subgrid`,children:(0,d.jsxDEV)(t,{to:`/citizen/$name`,params:{name:e.name},className:`col-span-full grid grid-cols-subgrid items-center rounded-lg px-2 py-1.5 text-sm transition-colors hover:bg-surface-2/50`,children:[(0,d.jsxDEV)(`span`,{className:`grid size-4 place-items-center`,children:e.cli===null?null:(0,d.jsxDEV)(o,{cli:e.cli,size:13},void 0,!1,{fileName:f,lineNumber:95,columnNumber:51},this)},void 0,!1,{fileName:f,lineNumber:94,columnNumber:19},this),(0,d.jsxDEV)(`span`,{className:`text-fg-primary`,children:e.name},void 0,!1,{fileName:f,lineNumber:97,columnNumber:19},this),(0,d.jsxDEV)(`span`,{className:`text-fg-secondary`,children:e.role},void 0,!1,{fileName:f,lineNumber:98,columnNumber:19},this),(0,d.jsxDEV)(`span`,{className:`truncate text-xs text-fg-muted`,title:r,children:r},void 0,!1,{fileName:f,lineNumber:99,columnNumber:19},this),(0,d.jsxDEV)(`span`,{className:`text-xs text-fg-muted`,title:a.detail,children:a.label},void 0,!1,{fileName:f,lineNumber:102,columnNumber:19},this),(0,d.jsxDEV)(`span`,{className:`truncate text-xs text-fg-muted`,title:i,children:i},void 0,!1,{fileName:f,lineNumber:105,columnNumber:19},this),(0,d.jsxDEV)(`span`,{className:`text-right text-xs ${n.tone}`,title:n.detail,children:n.label},void 0,!1,{fileName:f,lineNumber:108,columnNumber:19},this)]},void 0,!0,{fileName:f,lineNumber:89,columnNumber:17},this)},e.name,!1,{fileName:f,lineNumber:88,columnNumber:15},this)})},void 0,!1,{fileName:f,lineNumber:80,columnNumber:9},this),b.length===0?null:(0,d.jsxDEV)(`p`,{className:`mt-2 border-t border-line px-2 pt-2 text-meta`,children:[`Retired: `,b.map(e=>`${e.name} (${e.role})`).join(`, `)]},void 0,!0,{fileName:f,lineNumber:117,columnNumber:11},this)]},void 0,!0,{fileName:f,lineNumber:72,columnNumber:7},this)]},void 0,!0,{fileName:f,lineNumber:67,columnNumber:5},this)}export{g as CitizensView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{P as e,Pt as t,_ as n,f as r,t as i,ut as a,v as o}from"./format-Ca2VAvEx.js";import{L as s}from"./index-D4GJkeKU.js";import{t as c}from"./Markdown-BpYzeV5r.js";import{n as l,t as u}from"./Pane-DRpHmeJ9.js";var d=e(),f=`/home/climage/projects/stellaris/apps/web/src/board/KnowledgeView.tsx`,p=`grid size-7 shrink-0 place-items-center rounded-lg text-fg-tertiary hover:bg-surface-2/70 hover:text-fg-primary`;function m(){let{scope:e,topic:m}=s({from:`/knowledge/$scope/$topic`}),h=r(e),g=o(),_=n(3e4),v=e===a,y=v?`the society`:g.data?.find(t=>t.slug===e)?.name??e,b=h.data?.find(e=>e.topic===m),x=v?(0,d.jsxDEV)(t,{to:`/society`,"aria-label":`Back to the society`,className:p,children:`←`},void 0,!1,{fileName:f,lineNumber:23,columnNumber:5},this):(0,d.jsxDEV)(t,{to:`/p/$slug`,params:{slug:e},"aria-label":`Back to ${y}`,className:p,children:`←`},void 0,!1,{fileName:f,lineNumber:27,columnNumber:5},this);return b===void 0?(0,d.jsxDEV)(l,{children:h.data===void 0?`Reading…`:`${y} has no topic ${m}.`},void 0,!1,{fileName:f,lineNumber:34,columnNumber:7},this):(0,d.jsxDEV)(d.Fragment,{children:[(0,d.jsxDEV)(u,{leading:x,title:b.topic,subtitle:`Knowledge of ${y} · written by ${b.updatedBy} ${i(b.updatedAt,_)}`},void 0,!1,{fileName:f,lineNumber:41,columnNumber:7},this),(0,d.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto px-4 py-4`,children:(0,d.jsxDEV)(c,{text:b.body},void 0,!1,{fileName:f,lineNumber:47,columnNumber:9},this)},void 0,!1,{fileName:f,lineNumber:46,columnNumber:7},this)]},void 0,!0,{fileName:f,lineNumber:40,columnNumber:5},this)}export{m as KnowledgeView};
|