Files
stack/agents/dewey/work/wui/mockups/shared/data.js
T
jason.woltjeandClaude Opus 5.5 1f4882d2b4 docs(wui): Dewey's design work: brand board, five mockups, slice 1 S5 views and checks
Brand board revisions, the five dashboard mockups with their verify
script and evidence, the slice 1 S5 design note (SLICE1-VIEWS.md, rev 3
plus the S2c section 10 update), the Console mockup of inbox, tasks,
agents and trail (mockups/slice1/) and checks/slice1-verify.mjs (16
checks; check 16 pinned to bus at d27042fa). Also the CHAT-03 progress
log and the 2026-09-26 dirty-tree manifest. Design and evidence only;
no package code. Row 40 (#1522), committed on its own at Sage's
direction, 2026-10-09.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 17:54:50 -05:00

148 lines
18 KiB
JavaScript

// Sample data for the five dashboard mockups. Prototype only: nothing here is live.
// Names follow the repository's seats and plans so the review reads like Mosaic, not lorem ipsum.
(() => {
'use strict';
const projects = [
{id:'mosaic-stack', name:'Mosaic Stack', policy:'reviewed', status:'active',
workspaces:[{id:'sessions',name:'sessions',status:'active'},{id:'skills',name:'skills',status:'active'},{id:'wui',name:'wui',status:'active'},{id:'archive-2025',name:'archive-2025',status:'retired'}],
agents:['darkwing','dewey','rocko','filbert','sage'], missions:['m-foundation','m-wui']},
{id:'personal', name:'Personal', policy:'reviewed', status:'active',
workspaces:[{id:'journal',name:'journal',status:'active'},{id:'health',name:'health',status:'active'}],
agents:['darkwing','velma'], missions:['m-journal']},
{id:'acme-ops', name:'Acme operations', policy:'reviewed', status:'active',
workspaces:[{id:'ops',name:'ops',status:'active'},{id:'social',name:'social',status:'active'}],
agents:['topher','velma','rocko'], missions:['m-social']},
];
const agents = [
{id:'darkwing', name:'Darkwing', type:'coordinator', harness:'pi 0.85.1', model:'claude-opus-5', soul:'rev 14', skills:['ms-agent','ms-honesty','ms-executive-update'], registrations:[['mosaic-stack','sessions','Coordinator'],['mosaic-stack','skills','Coordinator'],['personal','journal','Contributor']]},
{id:'dewey', name:'Dewey', type:'design', harness:'pi 0.85.1', model:'claude-sonnet-5', soul:'rev 6', skills:['ms-frontend-design','ms-unslop'], registrations:[['mosaic-stack','wui','Contributor']]},
{id:'rocko', name:'Rocko', type:'coder', harness:'pi 0.85.1', model:'claude-sonnet-5', soul:'rev 9', skills:['ms-agent'], registrations:[['mosaic-stack','sessions','Contributor'],['acme-ops','ops','Contributor']]},
{id:'filbert', name:'Filbert', type:'reviewer', harness:'pi 0.85.1', model:'claude-opus-5', soul:'rev 5', skills:['ms-honesty'], registrations:[['mosaic-stack','sessions','Reviewer'],['mosaic-stack','wui','Reviewer']]},
{id:'sage', name:'Sage', type:'advisor', harness:'claude code', model:'claude-fable-5-1', soul:'rev 2', skills:[], registrations:[['mosaic-stack','skills','Reader']]},
{id:'velma', name:'Velma', type:'research', harness:'pi 0.85.1', model:'glm-5', soul:'rev 11', skills:['ms-file-read'], registrations:[['personal','health','Contributor'],['acme-ops','ops','Reader']]},
{id:'topher', name:'Topher', type:'writer', harness:'pi 0.85.1', model:'claude-sonnet-5', soul:'rev 3', skills:['ms-unslop'], registrations:[['acme-ops','social','Contributor']]},
];
// state: running | waiting | quiet | blocked | stalled | settled | stopped
const sessions = [
{id:'s-01a08111', agent:'dewey', project:'mosaic-stack', workspace:'wui', state:'waiting', since:'2026-09-12T14:02:00Z', started:'2026-09-08T12:49:00Z', controller:'you (web)', generation:3, observers:['darkwing'], config:'matching',
goal:{text:'Five dashboard mockups and a comparison page', status:'blocked', report:'Waiting on Jason to pick a design.'}, last:'Published comparison page for review', turns:322},
{id:'s-01a07cfa', agent:'darkwing', project:'mosaic-stack', workspace:'sessions', state:'running', since:'2026-09-12T15:40:00Z', started:'2026-09-10T09:12:00Z', controller:'jarvis (terminal)', generation:7, observers:[], config:'changed',
goal:{text:'Re-plan against MOSAIC-STACK-D-001', status:'in_progress', report:'Drafting reconciliation plan.'}, last:'Reading registry queue candidates', turns:1204},
{id:'s-00f2b9e1', agent:'rocko', project:'mosaic-stack', workspace:'sessions', state:'quiet', since:'2026-09-12T11:15:00Z', started:'2026-09-11T20:00:00Z', controller:'none', generation:2, observers:[], config:'matching',
goal:{text:'Fixture increment 3 candidate', status:'in_progress', report:'Quiet wait until Filbert review returns. Deadline wake 18:00 UTC.'}, last:'Quiet wait started', turns:88},
{id:'s-00e77c20', agent:'filbert', project:'mosaic-stack', workspace:'sessions', state:'blocked', since:'2026-09-12T09:30:00Z', started:'2026-09-12T08:00:00Z', controller:'none', generation:1, observers:[], config:'matching',
goal:{text:'Independent review of increment 2', status:'blocked', report:'Need owner ruling on credential-shaped fixture field.'}, last:'goal_report blocked', turns:41},
{id:'s-00d1a044', agent:'velma', project:'personal', workspace:'health', state:'running', since:'2026-09-12T15:55:00Z', started:'2026-09-12T15:50:00Z', controller:'you (phone)', generation:1, observers:[], config:'matching',
goal:{text:'Summarize this week\'s sleep log', status:'in_progress', report:'Reading journal entries.'}, last:'Reading 6 entries', turns:4},
{id:'s-00c9f3b7', agent:'topher', project:'acme-ops', workspace:'social', state:'stalled', since:'2026-09-12T06:10:00Z', started:'2026-09-11T22:30:00Z', controller:'none', generation:4, observers:[], config:'unknown',
goal:{text:'Draft three posts for the launch', status:'in_progress', report:'No progress for 9 h 40 m.'}, last:'Tool call did not return', turns:210},
{id:'s-00b8e2a6', agent:'sage', project:'mosaic-stack', workspace:'skills', state:'settled', since:'2026-09-11T23:05:00Z', started:'2026-09-11T21:00:00Z', controller:'none', generation:1, observers:[], config:'matching',
goal:{text:'Private advisory charter', status:'satisfied', report:'Charter recorded and verified.'}, last:'goal_report satisfied', turns:30},
{id:'s-00a7d195', agent:'rocko', project:'acme-ops', workspace:'ops', state:'running', since:'2026-09-12T15:20:00Z', started:'2026-09-12T13:00:00Z', controller:'ops-bot (service)', generation:2, observers:['you'], config:'matching',
goal:{text:'Rotate log retention to 30 days', status:'in_progress', report:'Applying to staging first.'}, last:'Ran retention check on staging', turns:19},
{id:'s-0096c084', agent:'darkwing', project:'personal', workspace:'journal', state:'stopped', since:'2026-09-10T18:00:00Z', started:'2026-09-09T07:00:00Z', controller:'none', generation:5, observers:[], config:'changed',
goal:{text:'Weekly review', status:'satisfied', report:'Review written to journal/2026-09-10.md'}, last:'Stopped by owner', turns:62},
{id:'s-0085b973', agent:'velma', project:'acme-ops', workspace:'ops', state:'waiting', since:'2026-09-12T13:48:00Z', started:'2026-09-12T12:00:00Z', controller:'none', generation:1, observers:[], config:'matching',
goal:{text:'Vendor comparison for backups', status:'blocked', report:'Two vendors need a decision: price or retention.'}, last:'Decision requested', turns:27},
];
const waiting = [
{id:'w1', kind:'acceptance', session:'s-01a08111', title:'Pick a dashboard design', detail:'Dewey published five mockups. Selection is the D05 gate; nothing proceeds until you choose.', since:'2026-09-12T14:02:00Z', actions:[['Open comparison','#/sessions/s-01a08111'],['Reply','#/messages']]},
{id:'w2', kind:'blocked', session:'s-00e77c20', title:'Ruling needed: credential-shaped fixture field', detail:'Filbert asks whether a fake marker in a fixture may be named "apiKey". The suite forbids secret-shaped output.', since:'2026-09-12T09:30:00Z', actions:[['Answer','#/sessions/s-00e77c20'],['Open task','#/work']]},
{id:'w3', kind:'decision', session:'s-0085b973', title:'Backup vendor: price or retention', detail:'Velma prepared a two-vendor comparison for acme-ops. One is cheaper, one keeps 90 days.', since:'2026-09-12T13:48:00Z', actions:[['Decide','#/sessions/s-0085b973']]},
{id:'w4', kind:'stalled', session:'s-00c9f3b7', title:'Topher has made no progress for 9 h', detail:'Last tool call did not return. Recovery ladder suggests a non-destructive check, then stop and Fresh.', since:'2026-09-12T06:10:00Z', actions:[['Investigate','#/sessions/s-00c9f3b7'],['Stop session','action:stop:s-00c9f3b7']]},
{id:'w5', kind:'config', session:'s-01a07cfa', title:'Darkwing is running on an older SOUL revision', detail:'Base configuration changed after launch (rev 13 to rev 14). Non-blocking; Fresh is recommended at a safe point.', since:'2026-09-12T10:05:00Z', actions:[['Check now','action:config-check:s-01a07cfa'],['Plan Fresh','#/launch']]},
];
const missions = [
{id:'m-foundation', project:'mosaic-stack', workspace:null, title:'Agent, project, workspace foundation', status:'active', owner:'Jason', criteria:'Owner-accepted increments with green suites and independent review.'},
{id:'m-wui', project:'mosaic-stack', workspace:'wui', parent:'m-foundation', title:'Web interface design', status:'active', owner:'Jason', criteria:'Selected HTML design iterated to explicit owner acceptance.'},
{id:'m-journal', project:'personal', workspace:'journal', title:'Weekly reflection habit', status:'active', owner:'Jason', criteria:'One review per week written to the journal.'},
{id:'m-social', project:'acme-ops', workspace:'social', title:'Launch announcement', status:'active', owner:'Acme marketing', criteria:'Three approved posts scheduled.'},
];
// column: backlog | ready | doing | review | waiting | done
const tasks = [
{id:'t-d01', mission:'m-wui', title:'Feature inventory from docs/plans', column:'done', assignee:'dewey', deps:[], evidence:'FEATURES.md'},
{id:'t-d03', mission:'m-wui', title:'Five navigable mockups plus index', column:'review', assignee:'dewey', deps:['t-d01'], evidence:'mockups/'},
{id:'t-d05', mission:'m-wui', title:'Owner selects a design', column:'waiting', assignee:'jason', deps:['t-d03'], evidence:''},
{id:'t-1500-3', mission:'m-foundation', title:'Increment 3 candidate: launcher integration', column:'backlog', assignee:null, deps:['t-1500-2'], evidence:''},
{id:'t-1500-2', mission:'m-foundation', title:'Fixture-only materialization and refresh', column:'done', assignee:'rocko', deps:[], evidence:'run r-20260910T1412Z'},
{id:'t-env', mission:'m-foundation', title:'Headless identity-env leak intake', column:'ready', assignee:'darkwing', deps:[], evidence:''},
{id:'t-rev2', mission:'m-foundation', title:'Independent review of increment 2', column:'waiting', assignee:'filbert', deps:['t-1500-2'], evidence:''},
{id:'t-post', mission:'m-social', title:'Draft three launch posts', column:'doing', assignee:'topher', deps:[], evidence:''},
{id:'t-sched', mission:'m-social', title:'Schedule approved posts', column:'backlog', assignee:null, deps:['t-post'], evidence:''},
{id:'t-wk', mission:'m-journal', title:'Weekly review 2026-09-17', column:'ready', assignee:'darkwing', deps:[], evidence:''},
{id:'t-backup', mission:null, project:'acme-ops', title:'Choose backup vendor', column:'waiting', assignee:'velma', deps:[], evidence:'comparison.md'},
];
const decisions = [
{id:'MOSAIC-STACK-D-001', date:'2026-09-12', by:'Jason', kind:'owner-checkpoint', outcome:'approved', text:'MVP is a control board: one page listing running agent sessions across projects with status and a "waiting on you" section.'},
{id:'Q28-A', date:'2026-09-06', by:'Jason', kind:'plan-approval', outcome:'approved', text:'Initial managed terminal may be Mosaic-controlled with Pi as the engine.'},
{id:'Q27-A', date:'2026-09-06', by:'Jason', kind:'plan-approval', outcome:'approved', text:'Invocation-level command evidence with enforced limits.'},
{id:'ACC-1500', date:'2026-09-12', by:'Jason', kind:'acceptance', outcome:'approved', text:'Fixture-only increment accepted after the two-test demo passed 2/2.'},
];
const runs = [
{id:'r-20260912T151002Z-3c9a1e', task:'tasks/foundation-fixture-demo.json', agent:'rocko', workspace:'mosaic-stack/sessions', outcome:'success', exit:0, duration:'2 m 14 s', model:'claude-sonnet-5', tools:'read,ls,bash(limited)', evidence:'result.json, stderr.txt, 2 snapshots'},
{id:'r-20260912T093311Z-8b12f0', task:'tasks/unslop-check.json', agent:'topher', workspace:'acme-ops/social', outcome:'failure', exit:1, duration:'0 m 41 s', model:'claude-sonnet-5', tools:'read', evidence:'result.json, stderr.txt'},
{id:'r-20260911T220015Z-77aa03', task:'tasks/review-increment-2.json', agent:'filbert', workspace:'mosaic-stack/sessions', outcome:'success', exit:0, duration:'11 m 03 s', model:'claude-opus-5', tools:'read,ls', evidence:'result.json, review.md'},
{id:'r-20260910T141200Z-1f00c2', task:'tasks/fixture-materialize.json', agent:'rocko', workspace:'mosaic-stack/sessions', outcome:'success', exit:0, duration:'4 m 52 s', model:'claude-sonnet-5', tools:'read,write,bash(limited)', evidence:'result.json, 48 fixture receipts'},
{id:'r-20260906T024609Z-68ee7f', task:'tasks/foundation-phase2-source-facts.json', agent:'researcher', workspace:'mosaic-stack/sessions', outcome:'success', exit:0, duration:'3 m 30 s', model:'claude-opus-5', tools:'none', evidence:'result.json (sha256 e81ac68a…)'},
];
const releases = [
{id:'0.0.12', state:'active', activated:'2026-09-11T19:40:00Z', by:'Jason', image:'mosaic-poc-agent:0.85.1-r0.0.12'},
{id:'0.0.11', state:'previous', activated:'2026-09-08T16:10:00Z', by:'Jason', image:'mosaic-poc-agent:0.85.1-r0.0.11'},
{id:'0.0.13', state:'packaged', activated:null, by:null, image:'mosaic-poc-agent:0.85.1-r0.0.13'},
];
const accounts = [
{id:'anthropic-main', provider:'Anthropic', kind:'oauth', status:'valid', expires:'2026-09-14', defaultFor:['darkwing','dewey','filbert'], credential:'runtime mount, not shown'},
{id:'openrouter-shared', provider:'OpenRouter', kind:'api', status:'valid', expires:null, defaultFor:['velma'], credential:'environment, not shown'},
{id:'zai-trial', provider:'Z.ai', kind:'api', status:'expiring', expires:'2026-09-13', defaultFor:[], credential:'environment, not shown'},
{id:'codex-personal', provider:'OpenAI Codex', kind:'oauth', status:'needs login', expires:null, defaultFor:[], credential:'none stored'},
];
const skills = [
{id:'ms-agent', version:'1.4.0', state:'active', ceiling:'all roles', note:'Operation cycle for seats'},
{id:'ms-frontend-design', version:'0.9.2', state:'active', ceiling:'design, coder', note:'Design loop and accessibility checks'},
{id:'ms-unslop', version:'1.1.0', state:'active', ceiling:'all roles', note:'Prose gate'},
{id:'ms-honesty', version:'1.0.3', state:'active', ceiling:'all roles', note:'Evidence and claims'},
{id:'ms-executive-update', version:'0.4.0', state:'installed', ceiling:'coordinator', note:'Owner update format'},
{id:'ms-grill-me', version:'0.2.1', state:'deactivated', ceiling:'coordinator', note:'Decision interview'},
{id:'goal', version:'2.3.0', state:'active', ceiling:'extension', note:'Goal footer, quiet waits, deadline wake'},
{id:'mosaic-core', version:'2.3.0', state:'active', ceiling:'extension', note:'Role enforcement and journal'},
];
const messages = [
{id:'msg1', project:'mosaic-stack', workspace:'wui', from:'dewey', to:'you', when:'2026-09-12T14:02:00Z', unread:true, text:'Five mockups are ready at mockups/index.html. Review script in README.md. Which one should I iterate?'},
{id:'msg2', project:'mosaic-stack', workspace:'sessions', from:'filbert', to:'you', when:'2026-09-12T09:30:00Z', unread:true, text:'Blocked on a naming ruling: may a fixture field be called apiKey if the value is a fake marker?'},
{id:'msg3', project:'acme-ops', workspace:'ops', from:'velma', to:'you', when:'2026-09-12T13:48:00Z', unread:false, text:'Backup vendor comparison attached. Vendor A is cheaper; Vendor B keeps 90 days.'},
{id:'msg4', project:'mosaic-stack', workspace:'sessions', from:'darkwing', to:'dewey', when:'2026-09-08T22:18:00Z', unread:false, text:'TMUX-TRANSPORT-R5-LIVE-01: WUI draft published at 29c1defe. No reply needed.'},
{id:'msg5', project:'personal', workspace:'journal', from:'you', to:'darkwing', when:'2026-09-10T18:00:00Z', unread:false, text:'Stop for today, thanks. Resume Thursday.'},
];
const events = [
{when:'2026-09-12T15:55:00Z', session:'s-00d1a044', kind:'start', text:'Velma started in personal/health from your phone'},
{when:'2026-09-12T15:40:00Z', session:'s-01a07cfa', kind:'turn', text:'Darkwing: reading registry queue candidates'},
{when:'2026-09-12T15:20:00Z', session:'s-00a7d195', kind:'tool', text:'Rocko ran retention check on staging (exit 0)'},
{when:'2026-09-12T14:02:00Z', session:'s-01a08111', kind:'waiting', text:'Dewey is waiting on you: pick a dashboard design'},
{when:'2026-09-12T13:48:00Z', session:'s-0085b973', kind:'waiting', text:'Velma requested a decision: backup vendor'},
{when:'2026-09-12T11:15:00Z', session:'s-00f2b9e1', kind:'quiet', text:'Rocko entered a quiet wait until 18:00 UTC'},
{when:'2026-09-12T10:05:00Z', session:'s-01a07cfa', kind:'config', text:'Config check: Darkwing base configuration changed (SOUL rev 13 to 14)'},
{when:'2026-09-12T09:30:00Z', session:'s-00e77c20', kind:'blocked', text:'Filbert reported blocked: ruling needed'},
{when:'2026-09-12T06:10:00Z', session:'s-00c9f3b7', kind:'stalled', text:'Topher has not progressed for 9 h 40 m'},
{when:'2026-09-11T23:05:00Z', session:'s-00b8e2a6', kind:'settled', text:'Sage reported satisfied: charter recorded'},
{when:'2026-09-11T19:40:00Z', session:null, kind:'release', text:'Release 0.0.12 activated by Jason'},
{when:'2026-09-10T18:00:00Z', session:'s-0096c084', kind:'stop', text:'You stopped Darkwing in personal/journal'},
];
const transcript = {
's-01a08111': [
{who:'you', text:'We should be able to proceed with design without the iconography finished.'},
{who:'dewey', text:'Agreed. I will use Manrope, the ten palettes, Light/Dim/Dark, a text wordmark, and provisional labeled icons. Next: feature inventory, five mockups, then your selection.'},
{who:'dewey', text:'Five mockups and the comparison page are published. Review script is in README.md. Which design should I iterate?', tool:'goal_report blocked: waiting on owner selection'},
],
's-01a07cfa': [
{who:'jarvis', text:'Re-plan against MOSAIC-STACK-D-001.'},
{who:'darkwing', text:'Reading the registry queue. Increment 3 candidates: launcher integration, identity-env fix. Drafting a reconciliation plan with a recommendation.', tool:'read docs/plans/CURRENT.md'},
],
};
const defaultTranscript = [
{who:'you', text:'Status?'},
{who:'agent', text:'Working within the assigned task. I will report when there is something to decide.', tool:'goal_report in_progress'},
];
window.MosaicData = {projects, agents, sessions, waiting, missions, tasks, decisions, runs, releases, accounts, skills, messages, events, transcript, defaultTranscript,
now: new Date('2026-09-12T16:10:00Z')};
})();