evals-lab 0.6.0 → 0.7.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/CHANGELOG.md +40 -0
- package/lab/VERSION +1 -1
- package/lab/evals-core.mjs +285 -45
- package/lab/flows/flowApi.mjs +153 -0
- package/lab/flows/record.mjs +495 -0
- package/lab/metrics/builtin.mjs +39 -34
- package/lab/run-evals.js +24 -4
- package/lab/server.py +586 -167
- package/lab/web/dist/assets/gallery-BsbUQC7Q.js +3 -0
- package/lab/web/dist/assets/main-BQL5j5oF.js +20 -0
- package/lab/web/dist/assets/main-Cza2gwQd.css +1 -0
- package/lab/web/dist/assets/tokens-C3kp9sWp.js +61 -0
- package/lab/web/dist/assets/tokens-CjqaFuXm.css +1 -0
- package/lab/web/dist/gallery.html +3 -3
- package/lab/web/dist/index.html +4 -4
- package/package.json +1 -1
- package/lab/web/dist/assets/gallery-D_MxkfLj.js +0 -3
- package/lab/web/dist/assets/main-DDoeU6hq.css +0 -1
- package/lab/web/dist/assets/main-nz6Q4jVm.js +0 -21
- package/lab/web/dist/assets/tokens-Bl8cOqkf.js +0 -59
- package/lab/web/dist/assets/tokens-DCHW9ru7.css +0 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{$ as e,A as t,C as n,D as r,E as i,G as a,H as o,I as s,J as c,K as l,L as u,M as d,Mt as ee,O as f,P as p,S as m,T as h,U as g,V as _,X as v,Y as y,Z as b,a as x,ct as S,et as C,g as te,h as ne,i as re,j as w,jt as ie,k as ae,m as T,p as E,q as oe,t as se,v as D,z as O}from"./tokens-C3kp9sWp.js";var k=ee(),ce=ie(),A=[{id:`text`,label:`Plain text`,settings:[]},{id:`list`,label:`List`,settings:[{key:`parse`,label:`Parse as`,type:`select`,choices:[{value:`csv`,label:`CSV`},{value:`lines`,label:`One a line`},{value:`json`,label:`JSON array`}]},{key:`preamble`,label:`Ignore preamble`,type:`checkbox`}]}],j=[{id:`case`,label:`Case`,accepts:[`list`],options:[{key:`mode`,label:`Mode`,type:`select`,choices:[{value:`LOWER`,label:`lower`},{value:`SENTENCE`,label:`Sentence`},{value:`TITLE`,label:`Title`},{value:`UPPER`,label:`UPPER`},{value:`NONE`,label:`As replied`}]}],defaults:()=>({type:`case`,mode:`LOWER`})},{id:`join`,label:`Join`,accepts:[`list`],options:[{key:`with`,label:`Separator`,type:`text`}],defaults:()=>({type:`join`,with:`, `})}],le=[{name:`language`,type:`value`,value:`English UK`},{name:`geo-location`,type:`value`,value:`Hamilton, Waikato, New Zealand`},{name:`geo`,type:`block`,enabled:!1}],ue=[{path:`group/open`,title:`Group, open`},{path:`group/closed`,title:`Group, closed with a note`},{path:`group/no-menu`,title:`Group without actions`},{path:`group/sub`,title:`Sub-group, level 3`},{path:`group/depth`,title:`Group, three levels deep`},{path:`group/renaming`,title:`Group, renaming`},{path:`menu/disabled`,title:`Menu with a disabled item`},{path:`row/button`,title:`Row actions, one action a button`},{path:`row/menu`,title:`Row actions, two or more in the menu`},{path:`actionbar/states`,title:`Action bar, docked under a header, in its four states`},{path:`tabs/main`,title:`Tab strip, the lab's tabs`},{path:`tabs/section`,title:`Tab strip, a section strip under the lab's`},{path:`header/pipeline`,title:`Context header, a Pipeline`},{path:`header/dataset`,title:`Context header, a Dataset`},{path:`header/source`,title:`Context header, a Source`},{path:`header/switcher`,title:`Switcher, recent and more`},{path:`picker/fields`,title:`Picker, a profile and a Source`},{path:`header/long`,title:`Context header, a long name`},{path:`menu/busy`,title:`Menu with a busy item`},{path:`loading/group`,title:`Loading, inside a group`},{path:`loading/error`,title:`Loading failed, with Retry`},{path:`loading/busy-button`,title:`Busy buttons`},{path:`repeater/empty`,title:`Repeater, empty`},{path:`repeater/min`,title:`Repeater at min 1`},{path:`repeater/between`,title:`Repeater, two of four`},{path:`repeater/max`,title:`Repeater at max`},{path:`repeater/locked`,title:`Repeater, a locked row`},{path:`props/controls`,title:`Property table, every control`},{path:`props/required`,title:`Property table, required only`},{path:`props/long`,title:`Property table, long values`},{path:`props/widths`,title:`Property table, a width per value`},{path:`props/secret`,title:`Property table, a key held and not held`},{path:`props/code`,title:`Property table, an endpoint and a payload`},{path:`table/sortable`,title:`Table, sortable headers and a row menu`},{path:`table/paged`,title:`Table, paged ten at a time`},{path:`table/select`,title:`DataTable with selection`},{path:`table/select-on`,title:`Table, two rows selected`},{path:`table/filter`,title:`Table with a filter bar`},{path:`table/filter-on`,title:`Table, filtered, with a scope`},{path:`edit/form`,title:`Edit modal, a profile`},{path:`edit/plain`,title:`Edit modal, one section and no menu`},{path:`edit/long`,title:`Edit modal, a form that scrolls`},{path:`edit/status`,title:`Edit modal, a status that is a refusal`},{path:`view/tokens`,title:`Token mappings`},{path:`view/output`,title:`Output with Case`},{path:`view/output-text`,title:`Output, plain text`},{path:`view/output-two`,title:`Output with two modifiers`},{path:`view/output-twice`,title:`Output with the same modifier twice`},{path:`view/output-none`,title:`Responses, read as text`},{path:`view/output-flow`,title:`Responses with Read as`},{path:`view/field-chip`,title:`Field chips in a target's words, with a changed word`}],M=S(),N=()=>{},P=(...e)=>e.map(e=>({label:e,icon:e===`Remove`?d.remove:e===`Clone`?d.clone:d.rename,onSelect:N,destructive:e===`Remove`}));function F({start:e,min:t,max:n,locked:i}){let[a,o]=(0,k.useState)(e);return(0,M.jsx)(E,{noun:`scenario`,items:a,...t===void 0?{}:{min:t},...n===void 0?{}:{max:n},...i?{locked:i}:{},onAdd:()=>o([...a,`Target ${String.fromCharCode(65+a.length)}`]),onRemove:e=>o(a.filter((t,n)=>n!==e)),onClone:e=>o([...a.slice(0,e+1),`${a[e]} copy`,...a.slice(e+1)]),onRename:N,empty:`No targets yet.`,renderItem:(e,t,n)=>(0,M.jsx)(r,{id:`scenario-${t}`,title:e,level:3,actions:n,children:(0,M.jsx)(`p`,{className:`note`,children:`A Target profile and a prompt for each job.`})},`${e}-${t}`)})}function I(){let[e,t]=(0,k.useState)(le),n=(n,r)=>t(e.map(e=>e.name===n?{...e,...r}:e));return(0,M.jsx)(re,{mappings:e,onValue:(e,t)=>n(e,{value:t}),onEnabled:(e,t)=>n(e,{enabled:t}),onEdit:N,onRemove:n=>t(e.filter(e=>e.name!==n)),onAdd:()=>t([...e,{name:`token${e.length+1}`,type:`value`,value:``}])})}function L({start:e,format:t=!0,readAs:n}){let[r,i]=(0,k.useState)(e),[a,o]=(0,k.useState)(t),[s,c]=(0,k.useState)(n);return(0,M.jsx)(x,{id:`output`,out:r,format:a,readAs:s,outputKinds:A,modifiers:j,onAddFormat:()=>o(!0),onRemoveFormat:()=>{o(!1),i({kind:`text`,modifiers:[]})},onReadAs:c,onKind:e=>i({kind:e,modifiers:r.modifiers.filter(t=>j.find(e=>e.id===t.type)?.accepts.includes(e))}),onModifier:(e,t)=>i({...r,modifiers:r.modifiers.map((n,r)=>r===e?t:n)}),onAddModifier:e=>i({...r,modifiers:[...r.modifiers,e]}),onRemoveModifier:e=>i({...r,modifiers:r.modifiers.filter((t,n)=>n!==e)})})}function R(){let[e,t]=(0,k.useState)(`Job 1`),[n,i]=(0,k.useState)(!0);return(0,M.jsx)(r,{id:`renaming`,title:e,actions:[{label:`Rename…`,icon:d.rename,onSelect:()=>i(!0)}],...n?{rename:{value:e,onCommit:n=>{t(n||e),i(!1)},onCancel:()=>i(!1)}}:{},children:(0,M.jsx)(`p`,{className:`note`,children:`Enter or leaving keeps the name; Escape cancels.`})})}function z({sections:e,menu:t,status:n,statusBad:r,outcome:i}){return(0,M.jsx)(m,{title:`Lab Ollama`,...n?{status:n}:{},...r?{statusBad:!0}:{},...t?{menu:t}:{},sections:e,actions:[{label:`Test connection`,icon:o,onSelect:N,outcome:i?{label:i,onOpen:N}:void 0}],onClose:N})}var B=()=>[{key:`name`,label:`Name`,required:!0,control:{type:`text`,value:`Lab Ollama`,onChange:N}},{key:`type`,label:`Type`,required:!0,control:{type:`select`,value:`ollama`,onChange:N,options:[{value:`ollama`,label:`Ollama (Local)`},{value:`anthropic`,label:`Anthropic`}]}},{key:`url`,label:`Address`,control:{type:`text`,value:``,placeholder:`the lab's Ollama`,onChange:N}},{key:`key`,label:`Key`,control:{type:`secret`,value:``,onChange:N}},{key:`model`,label:`Model`,control:{type:`text`,value:`minicpm-v4.6:latest`,onChange:N}}],V=()=>[{key:`seed`,label:`Seed`,control:{type:`text`,value:``,placeholder:`1234`,onChange:N}},{key:`nPredict`,label:`Reply tokens`,control:{type:`text`,value:``,size:`num`,onChange:N}},{key:`temperature`,label:`Temperature`,control:{type:`text`,value:`0.3`,onChange:N}},{key:`repeatPenalty`,label:`Repeat penalty`,control:{type:`text`,value:``,size:`num`,onChange:N}}],H=()=>[{key:`endpoint`,label:`Endpoint`,required:!0,control:{type:`code`,text:`http://127.0.0.1:11434/api/chat`}},{key:`prompt`,label:`Prompt`,required:!0,control:{type:`static`,text:`(prompt)`}},{key:`model`,label:`model`,control:{type:`code`,text:`minicpm-v4.6:latest`}},{key:`options`,label:`options`,control:{type:`code`,text:`{"seed":1234,"temperature":0.3}`}}],U={key:`kind`,label:`Response Format`,required:!0,control:{type:`select`,value:`list`,onChange:N,options:A.map(e=>({value:e.id,label:e.label}))}};function W({actions:e}){return(0,M.jsx)(r,{id:`g`,title:`Actions`,children:(0,M.jsx)(D,{label:`Actions`,rows:[{name:`Ask_Claude`}],rowKey:e=>e.name,columns:[{key:`name`,header:`Name`,role:`title`,cell:e=>e.name},{key:`menu`,header:``,role:`menu`,sort:null,cell:()=>(0,M.jsx)(f,{label:`Ask_Claude actions`,actions:e})}]})})}var de=[[`home`,`Home`,oe],[`runs`,`Runs`,v],[`history`,`History`,c],[`library`,`Library`,l],[`setup`,`Setup`,O]],fe=[[`datasets`,`Datasets`,C],[`prompts`,`Prompts`,a],[`sources`,`Sources`,y]],G=e=>(0,M.jsx)(i,{label:`Lab`,current:e,items:de.map(([e,t,n])=>({key:e,label:t,icon:n,href:`#/${e}`}))}),K=e=>(0,M.jsx)(i,{label:`Library`,level:`section`,current:e,items:fe.map(([e,t,n])=>({key:e,label:t,icon:n,href:`#/library/${e}`}))}),q=({section:e,children:t})=>(0,M.jsxs)(`div`,{children:[G(e?`library`:`runs`),e&&K(e),t]}),J=(...e)=>e.map(e=>({label:e,icon:e===`Delete`?d.remove:e===`Clone`?d.clone:d.rename,onSelect:N,destructive:e===`Delete`})),pe={"header/pipeline":()=>(0,M.jsx)(q,{children:(0,M.jsx)(h,{kind:`Pipeline`,name:`Pipeline 1`,onPick:N,meta:`2 jobs, 3 targets`,primary:{label:`New pipeline`,icon:_,onSelect:N},actions:J(`Rename…`,`Clone`,`Export YAML`,`Import YAML…`,`Restore…`,`Delete`)})}),"header/dataset":()=>(0,M.jsx)(q,{section:`datasets`,children:(0,M.jsx)(h,{kind:`Dataset`,name:`Demo 1`,onPick:N,meta:`62 cases, 19 graded`,primary:{label:`New dataset`,icon:_,onSelect:N},actions:J(`Rename…`,`Clone`,`Import JSON…`,`Export JSON`,`Restore…`,`Delete`)})}),"header/switcher":()=>(0,M.jsx)(ne,{kind:`Pipeline`,value:`p5`,onPick:N,onClose:N,recent:[`p7`,`p6`,`p5`,`p4`,`p3`],options:Array.from({length:13},(e,t)=>({id:`p${t}`,label:[`Demo 1`,`Demo 2`,`Receipts`,`Menus`,`Street signs`,`Labels`,`Plates`,`Posters`,`Packaging`,`Whiteboards`,`Book spines`,`Shop fronts`,`Timetables`][t],used:t<8?{at:`2026-10-0${t+1}T09:30:00Z`,label:`Oct ${t+1}, 2026, 09:30`}:null}))}),"picker/fields":()=>(0,M.jsx)(r,{id:`g`,title:`Target A`,children:(0,M.jsx)(n,{label:`Target A setup`,rows:[{key:`profile`,label:`Profile`,control:{type:`picker`,kind:`Profile`,value:`p2`,usedLabel:`Last changed`,onChange:N,recent:[`p5`,`p4`,`p3`,`p2`,`p1`],options:[{id:`#echo`,label:`Echo`,fixed:!0},...[`Lab Ollama`,`Anthropic`,`Cloud vision`,`Local llama`,`OpenRouter`,`Bench`,`Vision`].map((e,t)=>({id:`p${t}`,label:e,used:t<6?{at:`2026-10-0${t+1}T09:30:00Z`,label:`Oct ${t+1}, 2026, 09:30`}:null}))]}},{key:`source`,label:`Source`,control:{type:`picker`,kind:`Source`,value:`gone`,usedLabel:`Last changed`,onChange:N,options:[{id:``,label:`Any`,fixed:!0},{id:`gone`,label:`Shoot 3 (missing)`},{id:`s1`,label:`Receipts`}]}}]})}),"header/source":()=>(0,M.jsx)(q,{section:`sources`,children:(0,M.jsx)(h,{kind:`Source`,name:`Demo 1 images`,onPick:N,meta:`File Library. 63 files, 48 MB`,primary:{label:`Upload…`,icon:p,onSelect:N},actions:J(`Rename…`,`Delete`)})}),"header/long":()=>(0,M.jsx)(q,{children:(0,M.jsx)(h,{kind:`Pipeline`,name:`Receipts and handwritten menus, second pass with the tighter prompt and a Contains metric`,onPick:N,meta:`12 jobs, 8 targets`,primary:{label:`New pipeline`,icon:_,onSelect:N},actions:J(`Rename…`,`Clone`,`Delete`)})}),"actionbar/states":()=>(0,M.jsxs)(`div`,{children:[G(`runs`),(0,M.jsx)(h,{kind:`Pipeline`,name:`Demo 1`,onPick:N,meta:`1 job, 2 targets`,docked:!0,primary:{label:`New pipeline`,icon:_,onSelect:N},actions:J(`Rename…`,`Delete`)}),(0,M.jsx)(T,{primary:{label:`Run`,icon:g,onSelect:N},status:(0,M.jsx)(`b`,{children:`Ready to run`})}),(0,M.jsxs)(`div`,{style:{display:`grid`,gap:`var(--s4)`,marginTop:`var(--s5)`},children:[(0,M.jsx)(T,{primary:{label:`Run`,icon:g,onSelect:N,disabled:!0},status:(0,M.jsxs)(M.Fragment,{children:[`Target profile "Vision" not found. `,(0,M.jsxs)(`a`,{href:`#/setup`,style:{whiteSpace:`nowrap`},children:[`Open`,`\xA0`,`Setup`]})]})}),(0,M.jsx)(T,{primary:{label:`Run`,icon:g,onSelect:N,disabled:!0},status:(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`b`,{children:`Running`}),` 12 of 42`]}),secondary:{label:`Stop`,icon:u,onSelect:N},progress:28,progressLabel:`Run progress`}),(0,M.jsx)(T,{primary:{label:`Run`,icon:g,onSelect:N},status:(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`b`,{children:`Done`}),` 42 in 2m`]})})]})]}),"tabs/main":()=>G(`runs`),"tabs/section":()=>(0,M.jsxs)(`div`,{children:[G(`library`),K(`datasets`)]}),"group/open":()=>(0,M.jsx)(r,{id:`g`,title:`Evals`,actions:P(`Change…`,`Remove`),children:(0,M.jsx)(`p`,{className:`note`,children:`The graded set.`})}),"group/closed":()=>(0,M.jsx)(r,{id:`g`,title:`Content`,open:!1,note:`Sample library, 63 files`,actions:P(`Change…`,`Remove`)}),"group/no-menu":()=>(0,M.jsx)(r,{id:`g`,title:`Mapping`,children:(0,M.jsx)(`p`,{className:`note`,children:`Nothing to do to it.`})}),"group/sub":()=>(0,M.jsx)(r,{id:`g`,title:`Job 1`,actions:P(`Rename…`,`Remove`),children:(0,M.jsx)(r,{id:`g-sub`,title:`Scenarios`,level:3,actions:P(`Clear`),children:(0,M.jsx)(`p`,{className:`note`,children:`Inside a pane.`})})}),"group/depth":()=>(0,M.jsxs)(r,{id:`g`,title:`Job 1`,actions:P(`Rename…`,`Remove`),children:[(0,M.jsxs)(r,{id:`g-scenarios`,title:`Scenarios`,level:3,children:[(0,M.jsx)(r,{id:`g-plain`,title:`Plain`,level:3,actions:P(`Rename…`,`Remove`),children:(0,M.jsx)(`p`,{className:`note`,children:`A pane, a section of it, and a thing with a name inside that section.`})}),(0,M.jsx)(r,{id:`g-strict`,title:`Strict`,level:3,actions:P(`Rename…`,`Remove`)})]}),(0,M.jsx)(r,{id:`g-output`,title:`Output`,level:3,children:(0,M.jsx)(`p`,{className:`note`,children:`The next section of the same pane.`})})]}),"group/renaming":()=>(0,M.jsx)(R,{}),"menu/disabled":()=>(0,M.jsx)(r,{id:`g`,title:`Target D`,actions:[{label:`Rename…`,icon:d.rename,onSelect:N},{label:`Clone`,icon:d.clone,onSelect:N,disabled:!0},{label:`Remove`,icon:d.remove,onSelect:N,destructive:!0}]}),"row/button":()=>(0,M.jsx)(W,{actions:[{label:`New pipeline`,icon:g,onSelect:N}]}),"row/menu":()=>(0,M.jsx)(W,{actions:[{label:`View…`,icon:b,onSelect:N},{label:`Download`,icon:e,onSelect:N},{label:`Remove`,icon:s,onSelect:N,destructive:!0}]}),"menu/busy":()=>(0,M.jsx)(r,{id:`g`,title:`History`,actions:[{label:`Export JSON`,icon:d.export,onSelect:N,busy:!0},{label:`Clear`,icon:d.clear,onSelect:N,destructive:!0}]}),"loading/group":()=>(0,M.jsx)(r,{id:`g`,title:`History`,actions:P(`Rename…`),children:(0,M.jsx)(t,{label:`Runs`,delay:0})}),"loading/error":()=>(0,M.jsx)(r,{id:`g`,title:`History`,children:(0,M.jsx)(t,{label:`Runs`,error:`Runs not loaded: server unreachable.`,onRetry:N})}),"loading/busy-button":()=>(0,M.jsx)(r,{id:`g`,title:`Run`,children:(0,M.jsxs)(`div`,{className:`gallery-row`,children:[(0,M.jsxs)(`button`,{type:`button`,className:`run`,disabled:!0,"aria-busy":!0,children:[(0,M.jsx)(w,{size:16}),`Run`]}),(0,M.jsxs)(`button`,{type:`button`,className:`ghost`,disabled:!0,"aria-busy":!0,children:[(0,M.jsx)(w,{}),`Older`]})]})}),"repeater/empty":()=>(0,M.jsx)(F,{start:[]}),"repeater/min":()=>(0,M.jsx)(F,{start:[`Target A`],min:1}),"repeater/between":()=>(0,M.jsx)(F,{start:[`Target A`,`Target B`],min:1,max:4}),"repeater/max":()=>(0,M.jsx)(F,{start:[`Target A`,`Target B`,`Target C`,`Target D`],min:1,max:4}),"repeater/locked":()=>(0,M.jsx)(F,{start:[`Reply`,`Target A`],locked:(e,t)=>t===0}),"props/controls":()=>(0,M.jsx)(n,{label:`Controls`,onRename:N,onRemove:N,onAdd:N,addLabel:`Add row`,rows:[U,{key:`language`,label:`{language}`,code:!0,control:{type:`text`,value:`English UK`,onChange:N}},{key:`geo`,label:`{geo}…{/geo}`,code:!0,control:{type:`static`,text:`Block`},enabled:{checked:!0,onChange:N}},{key:`image`,label:`Image`,control:{type:`checkbox`,checked:!0,label:`Send`,onChange:N}}]}),"props/required":()=>(0,M.jsx)(n,{label:`Output`,onRemove:N,rows:[U]}),"props/long":()=>(0,M.jsx)(n,{label:`Long`,onRemove:N,rows:[{key:`geo-location`,label:`{geo-location}`,code:!0,control:{type:`text`,value:`Hamilton, Waikato, New Zealand, Southern Hemisphere, Earth`,onChange:N}},{key:`averylongtokennamethatdoesnotbreak`,label:`{averylongtokennamethatdoesnotbreak}`,code:!0,control:{type:`text`,value:``,onChange:N}}]}),"props/widths":()=>(0,M.jsx)(n,{label:`Widths`,rows:[{key:`type`,label:`Type`,required:!0,control:{type:`select`,value:`ollama`,onChange:N,options:[{value:`ollama`,label:`Ollama (Local)`},{value:`anthropic`,label:`Anthropic`}]}},{key:`url`,label:`Address`,control:{type:`text`,value:``,placeholder:`the lab's Ollama`,onChange:N}},{key:`model`,label:`Model`,control:{type:`text`,value:`minicpm-v4.6:latest`,onChange:N}},{key:`seed`,label:`Seed`,control:{type:`text`,value:``,placeholder:`1234`,onChange:N}},{key:`nPredict`,label:`Reply tokens`,control:{type:`text`,value:``,size:`num`,onChange:N}},{key:`temperature`,label:`Temperature`,control:{type:`text`,value:`0.2`,onChange:N}},{key:`grammar`,label:`Grammar`,control:{type:`textarea`,value:`root ::= item (", " item)*
|
|
2
|
+
item ::= [a-z ]+`,onChange:N}}]}),"props/secret":()=>(0,M.jsx)(n,{label:`Keys`,rows:[{key:`held`,label:`Key`,control:{type:`secret`,value:`sk-not-a-real-key-0000`,onChange:N}},{key:`empty`,label:`Key`,control:{type:`secret`,value:``,onChange:N}},{key:`server`,label:`Key`,control:{type:`secret`,value:``,held:!0,onChange:N}}]}),"props/code":()=>(0,M.jsx)(n,{label:`Debug`,rows:[{key:`endpoint`,label:`Endpoint`,required:!0,control:{type:`code`,text:`https://api.anthropic.com/v1/messages`}},{key:`prompt`,label:`Prompt`,required:!0,control:{type:`static`,text:`(prompt)`}},{key:`model`,label:`model`,control:{type:`code`,text:`claude-sonnet-4-5-20250929`}},{key:`options`,label:`options`,control:{type:`code`,text:`{"seed":1234,"temperature":0}`}},{key:`stream`,label:`stream`,control:{type:`code`,text:`false`}}]}),"table/sortable":()=>(0,M.jsx)(Q,{count:4}),"table/paged":()=>(0,M.jsx)(Q,{count:35,pageSize:10}),"table/select":()=>(0,M.jsx)(Q,{count:5,picked:[]}),"table/select-on":()=>(0,M.jsx)(Q,{count:5,picked:[1,3]}),"table/filter":()=>(0,M.jsx)(Z,{}),"table/filter-on":()=>(0,M.jsx)(Z,{search:`IMG_40`,size:`large`}),"edit/form":()=>(0,M.jsx)(z,{outcome:`Connected`,menu:[{label:`Restore…`,icon:d.restore,onSelect:N},{label:`Apply preset: repeat 1.3`,icon:d.preset,onSelect:N}],sections:[{key:`identity`,rows:B()},{key:`settings`,title:`Settings`,rows:V()},{key:`debug`,title:`Debug`,rows:H(),folded:!0}]}),"edit/plain":()=>(0,M.jsx)(m,{title:`A mapping`,sections:[{key:`one`,rows:[U,{key:`with`,label:`Separator`,control:{type:`text`,value:`, `,onChange:N}}]}],onClose:N}),"edit/long":()=>(0,M.jsx)(z,{menu:[{label:`Restore…`,icon:d.restore,onSelect:N,disabled:!0}],sections:[{key:`identity`,rows:B()},{key:`settings`,title:`Settings`,rows:[...V(),{key:`grammar`,label:`Grammar`,control:{type:`textarea`,value:`root ::= item (", " item)*
|
|
3
|
+
item ::= [a-z ]+`,onChange:N}},{key:`imagePosition`,label:`Image position`,control:{type:`select`,value:`after`,onChange:N,options:[{value:`before`,label:`before the prompt`},{value:`after`,label:`after the prompt`}]}},{key:`cachePrompt`,label:`Cache prompt`,control:{type:`select`,value:`off`,onChange:N,options:[{value:`on`,label:`on`},{value:`off`,label:`off`}]}}]},{key:`debug`,title:`Debug`,rows:H(),folded:!0}]}),"edit/status":()=>(0,M.jsx)(z,{status:`the relay could not reach http://127.0.0.1:11434`,statusBad:!0,sections:[{key:`identity`,rows:B()}]}),"view/tokens":()=>(0,M.jsx)(r,{id:`g`,title:`Token mappings`,level:3,children:(0,M.jsx)(I,{})}),"view/output":()=>(0,M.jsx)(L,{start:{kind:`list`,parse:`csv`,modifiers:[{type:`case`,mode:`LOWER`}]}}),"view/output-text":()=>(0,M.jsx)(L,{start:{kind:`text`,modifiers:[]}}),"view/output-two":()=>(0,M.jsx)(L,{start:{kind:`list`,parse:`csv`,modifiers:[{type:`case`,mode:`TITLE`},{type:`join`,with:` | `}]}}),"view/output-twice":()=>(0,M.jsx)(L,{start:{kind:`list`,parse:`csv`,modifiers:[{type:`case`,mode:`TITLE`},{type:`case`,mode:`LOWER`}]}}),"view/output-none":()=>(0,M.jsx)(L,{start:{kind:`text`,modifiers:[]},format:!1}),"view/output-flow":()=>(0,M.jsx)(L,{start:{kind:`text`,modifiers:[]},readAs:`@body('Ask')?['content']?[0]?['text']`}),"view/field-chip":()=>(0,M.jsx)(r,{id:`g`,title:`Edited`,level:3,children:(0,M.jsxs)(`div`,{className:`prompt`,children:[(0,M.jsx)(`span`,{className:`prop-name`,children:`Prompt`}),(0,M.jsx)(se,{words:`Summarise @{triggerBody()?['text']} in two short sentences for @{variables('Audience')}.`,was:`Summarise @{triggerBody()?['text']} in one sentence for @{variables('Audience')}.`})]})})},Y=ue.map(e=>({...e,render:pe[e.path]})),X=e=>Array.from({length:e},(e,t)=>({name:`IMG_${String(4e3+t*7919%97).padStart(4,`0`)}.jpg`,kb:t*37%900+40}));function Z({search:e=``,size:t=`all`}){let[n,i]=(0,k.useState)(e),[a,o]=(0,k.useState)(t),[s,c]=(0,k.useState)(`shoot`),l=X(12),u=l.filter(e=>e.name.toLowerCase().includes(n.trim().toLowerCase())&&(a===`all`||a===`large`==e.kb>=400));return(0,M.jsxs)(r,{id:`files`,title:`Files`,children:[(0,M.jsx)(te,{noun:`files`,search:{label:`Name`,placeholder:`Search names`,value:n,onChange:i},count:{shown:u.length,total:l.length},filters:[{key:`source`,label:`Source`,value:s,neutral:null,onChange:c,options:[{value:`shoot`,label:`Tuesday shoot`},{value:`samples`,label:`Sample library`}]},{key:`size`,label:`Size`,value:a,onChange:o,options:[{value:`all`,label:`All`},{value:`small`,label:`Small`},{value:`large`,label:`Large`}]}]}),u.length?(0,M.jsx)(D,{label:`Files`,rows:u,rowKey:e=>e.name,columns:[{key:`name`,header:`Name`,cell:e=>e.name},{key:`size`,header:`Size`,sort:e=>e.kb,cell:e=>`${e.kb} KB`}]}):(0,M.jsx)(`p`,{className:`note`,children:`No files match these filters.`})]})}function Q({count:e,pageSize:t,picked:n}){let i=X(e),[a,o]=(0,k.useState)(i),[s,c]=(0,k.useState)(()=>new Set((n??[]).map(e=>i[e].name)));return(0,M.jsx)(r,{id:`files`,title:`Files`,children:(0,M.jsx)(D,{label:`Files`,cards:!0,rows:a,rowKey:e=>e.name,pageSize:t??null,select:n&&{noun:`file`,selected:s,onChange:c,actions:e=>[{label:`Move…`,icon:d.rename,onSelect:N},{label:`Remove`,icon:d.remove,destructive:!0,onSelect:()=>{o(t=>t.filter(t=>!e.includes(t))),c(new Set)}},{label:`Export`,icon:p,onSelect:N}]},columns:[{key:`name`,header:`Name`,role:`title`,cell:e=>e.name},{key:`size`,header:`Size`,className:`num`,sort:e=>e.kb,cell:e=>`${e.kb} KB`},{key:`menu`,header:``,role:`menu`,sort:null,cell:e=>(0,M.jsx)(ae,{label:`${e.name} actions`,actions:[{label:`Rename…`,icon:d.rename,onSelect:N},{label:`Remove`,icon:d.remove,destructive:!0,onSelect:N}]})}]})})}var $=()=>decodeURIComponent(location.hash.replace(/^#\/?/,``));function me(){let[e,t]=(0,k.useState)($);(0,k.useEffect)(()=>{let e=()=>t($());return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]);let n=Y.find(t=>t.path===e);return n?(0,M.jsxs)(`main`,{className:`gallery-one`,"data-route":n.path,children:[(0,M.jsxs)(`nav`,{className:`gallery-nav`,children:[(0,M.jsx)(`a`,{href:`#/`,children:`All`}),(0,M.jsx)(`span`,{children:n.title})]}),n.render()]}):(0,M.jsxs)(`main`,{className:`gallery-index`,"data-route":``,children:[(0,M.jsx)(`h1`,{children:`Components`}),(0,M.jsx)(`ul`,{children:Y.map(e=>(0,M.jsxs)(`li`,{children:[(0,M.jsx)(`a`,{href:`#/${e.path}`,children:e.title}),` `,(0,M.jsx)(`code`,{children:e.path})]},e.path))})]})}(0,ce.createRoot)(document.getElementById(`root`)).render((0,M.jsx)(k.StrictMode,{children:(0,M.jsx)(me,{})}));
|