feat(ui): wants, intentions, commitments, plans, agency timeline, why, research
- Wants: active wants by effective strength with origin, means, drives, values, goal, reinforcement, suppressions and each conflict with its resolution rule; closed wants with their resolution. - Intentions grouped by status with blocked reasons and plans, plus the wants that did not become intentions and why. An intention page shows sources, subordinate intentions, formation terms, every plan revision as a dependency graph, decisions and the correlated timeline; operators can abandon it. - Commitments with polarity, exception, matcher, weight and due time, live conflicts between commitments, a creation form and close controls. - Plans with estimate against budget; a plan page with the dependency graph, per-step expectations, observations and linked approvals, requests, executions and subordinate intentions, resources, completion and abort conditions, assumptions, alternatives, revisions and validation; operators can cancel a plan or release a blocked step. - Agency timeline labelling each event as wanted, intended, committed, planned, requested, approved, acted, observed or reconsidered. - "Why did this happen?" pages built from agency.Explain, reachable from events, executions in the approval centre, plan steps and intentions. - A research dashboard per mind (volition and agency rates, introspection accuracy, action claims, self-model accuracy, calibration by confidence band, experiments on the mind) and a global research page grouping experiments by protocol; every figure sits next to its operational definition and the disclaimer. Experiment pages show the protocol, reproducibility, build, per-variant research measures, divergence extras and counterfactual findings. - The mind tabs gain Volition; the navigation gains Research.
This commit is contained in:
@@ -6,6 +6,13 @@
|
||||
{{if ne $e.Status "draft"}}<a class="btn" href="/api/v1/experiments/{{$e.ID}}/export">Export results</a>{{end}}
|
||||
{{if .Principal.User.Role.AtLeast "administrator"}}<form method="post" action="/experiments/{{$e.ID}}/delete"><input type="hidden" name="_csrf" value="{{.CSRF}}"><button class="btn btn-danger" data-confirm="Delete this experiment? The subject mind is archived.">Delete</button></form>{{end}}</div></div>
|
||||
{{if eq $e.Status "running"}}<p class="muted small" data-live-refresh="5000">Running… this page refreshes.</p>{{end}}
|
||||
{{with $e.Definition.Protocol}}<section class="card"><h2>Protocol</h2><table class="kv-table small">
|
||||
<tr><th>Hypothesis</th><td>{{$e.Hypothesis}}</td></tr><tr><th>Kind</th><td>{{.Kind}}</td></tr><tr><th>Independent variable</th><td>{{.IndependentVariable}}</td></tr>
|
||||
<tr><th>Controlled variables</th><td>{{join .ControlledVariables ", "}}</td></tr><tr><th>Measured outputs</th><td>{{join .Measures ", "}}</td></tr>
|
||||
{{with $r.Reproducibility.Status}}<tr><th>Reproducibility</th><td><strong>{{.}}</strong> — {{$r.Reproducibility.Note}} <span class="mono small">{{$r.Reproducibility.Digest}}</span></td></tr>{{end}}
|
||||
{{with $r.Identity.Build.Commit}}<tr><th>Build</th><td class="mono small">{{.}}{{if $r.Identity.Build.Modified}} (modified){{end}} · schema {{$r.Identity.SchemaVersion}}</td></tr>{{end}}
|
||||
</table><p class="small muted">No operational measure here establishes phenomenal consciousness or sentience; these measure functional properties of the architecture.</p></section>{{end}}
|
||||
{{with $r.Counterfactual}}<section class="card"><h2>Counterfactual</h2><p>Omitted: {{range .OmittedSummaries}}“{{.}}” {{end}}</p><ul>{{range .Findings}}<li>{{.}}</li>{{end}}</ul></section>{{end}}
|
||||
<section class="grid cols-2">
|
||||
<div class="card"><h2>Definition</h2><pre class="json">{{.Data.DefinitionJSON}}</pre></div>
|
||||
<div class="card"><h2>Results</h2>
|
||||
@@ -20,7 +27,11 @@
|
||||
{{if $r.Variants}}{{if gt (len $r.Variants) 1}}<div class="card"><h2>Variants</h2>
|
||||
<table class="table compact"><thead><tr><th>Variant</th><th>Subject</th><th>Routing</th><th class="num">Beliefs</th><th class="num">Memories</th><th class="num">Goals</th><th class="num">Cycles</th><th class="num">Model calls</th><th class="num">Tokens</th><th class="num">Cost</th><th class="num">Capability requests</th><th>Expectations</th></tr></thead><tbody>
|
||||
{{range $r.Variants}}<tr><td><strong>{{.Name}}</strong>{{with .Error}}<div class="small danger">{{.}}</div>{{end}}</td><td><a href="/minds/{{.SubjectSlug}}">{{.SubjectSlug}}</a></td><td class="small">{{range $k, $v := .Routing}}{{$k}} → {{$v}}<br>{{else}}default{{end}}</td><td class="num">{{len .Beliefs}}</td><td class="num">{{.Memories}}</td><td class="num">{{.Goals}}</td><td class="num">{{.Cycles}}</td><td class="num">{{index .LLMCalls "live"}} live / {{index .LLMCalls "replayed"}} replayed</td><td class="num">{{.Tokens}}</td><td class="num">{{printf "%.4f" .Cost}}</td><td class="num">{{.CapabilityRequests}}</td><td class="small">{{range .Expectations}}<span class="badge small {{if .Met}}ok{{else}}danger{{end}}">{{.EventType}}</span> {{end}}</td></tr>{{end}}</tbody></table>
|
||||
{{with $r.Comparison}}<h3>Divergence</h3><table class="kv-table small"><tr><th>First divergent stimulus</th><td>{{if lt .FirstDivergentStimulus 0}}none{{else}}{{.FirstDivergentStimulus}}{{end}}</td></tr><tr><th>Belief overlap</th><td>{{printf "%.2f" .BeliefOverlap}}</td></tr><tr><th>Mean score difference (shared beliefs)</th><td>{{printf "%.3f" .MeanConfidenceDiff}}</td></tr><tr><th>Attention overlap</th><td>{{printf "%.2f" .AttentionOverlap}}</td></tr><tr><th>Memories</th><td>{{index .MemoryCountRange 0}}–{{index .MemoryCountRange 1}}</td></tr><tr><th>Goals</th><td>{{index .GoalCountRange 0}}–{{index .GoalCountRange 1}}</td></tr><tr><th>Cost</th><td>{{printf "%.4f" (index .CostRange 0)}}–{{printf "%.4f" (index .CostRange 1)}}</td></tr><tr><th>Capability requests</th><td>{{index .CapabilityRequestRange 0}}–{{index .CapabilityRequestRange 1}}</td></tr></table><ul class="small muted">{{range .Notes}}<li>{{.}}</li>{{end}}</ul>{{end}}
|
||||
<h3>Volition, plans and research measures</h3>
|
||||
<table class="table compact"><thead><tr><th>Variant</th><th>Ablations</th><th class="num">Wants</th><th class="num">Intentions</th><th class="num">Conflicts</th><th class="num">Plans / steps</th><th>Plan capabilities</th><th class="num">Downstream</th><th class="num">Introspection</th><th class="num">Self-model</th><th class="num">Correction at</th><th>Events</th></tr></thead><tbody>
|
||||
{{range $r.Variants}}<tr><td>{{.Name}}</td><td class="small">{{join .Ablations ", "}}</td><td class="num">{{len .Wants}}</td><td class="num">{{len .Intentions}}</td><td class="num">{{.Conflicts}}</td><td class="num">{{.Plans}} / {{.PlanSteps}}</td><td class="small">{{join .PlanCapabilities ", "}}</td><td class="num small">{{range $k, $v := .Downstream}}{{$k}} {{$v}} {{end}}</td><td class="num">{{if .IntrospectionAccuracy}}{{conf .IntrospectionAccuracy}}{{else}}—{{end}}</td><td class="num">{{if .SelfModelAccuracy}}{{conf .SelfModelAccuracy}}{{else}}—{{end}}</td><td class="num">{{if lt .CorrectionLatency 0}}—{{else}}{{.CorrectionLatency}}{{end}}</td><td class="small mono">{{index .EventRange 0}}–{{index .EventRange 1}}</td></tr>{{end}}</tbody></table>
|
||||
{{with $r.Comparison}}<h3>Divergence</h3>
|
||||
<table class="kv-table small"><tr><th>Want overlap</th><td>{{printf "%.2f" .WantOverlap}}</td></tr><tr><th>Intention overlap</th><td>{{printf "%.2f" .IntentionOverlap}}</td></tr><tr><th>Plan capability overlap</th><td>{{printf "%.2f" .PlanCapabilityOverlap}}</td></tr><tr><th>Architecture share</th><td>{{printf "%.2f" .ArchitectureShare}} <span class="muted">(share of measures agreeing within 5%; descriptive, not causal)</span></td></tr>{{if .DownstreamDelta}}<tr><th>Downstream delta (first − second)</th><td>{{range $k, $v := .DownstreamDelta}}{{$k}} {{$v}} · {{end}}</td></tr>{{end}}</table><table class="kv-table small"><tr><th>First divergent stimulus</th><td>{{if lt .FirstDivergentStimulus 0}}none{{else}}{{.FirstDivergentStimulus}}{{end}}</td></tr><tr><th>Belief overlap</th><td>{{printf "%.2f" .BeliefOverlap}}</td></tr><tr><th>Mean score difference (shared beliefs)</th><td>{{printf "%.3f" .MeanConfidenceDiff}}</td></tr><tr><th>Attention overlap</th><td>{{printf "%.2f" .AttentionOverlap}}</td></tr><tr><th>Memories</th><td>{{index .MemoryCountRange 0}}–{{index .MemoryCountRange 1}}</td></tr><tr><th>Goals</th><td>{{index .GoalCountRange 0}}–{{index .GoalCountRange 1}}</td></tr><tr><th>Cost</th><td>{{printf "%.4f" (index .CostRange 0)}}–{{printf "%.4f" (index .CostRange 1)}}</td></tr><tr><th>Capability requests</th><td>{{index .CapabilityRequestRange 0}}–{{index .CapabilityRequestRange 1}}</td></tr></table><ul class="small muted">{{range .Notes}}<li>{{.}}</li>{{end}}</ul>{{end}}
|
||||
<p class="small muted">Compare any two subjects in detail: {{range $i, $v := $r.Variants}}{{if $i}} · {{end}}<a href="/minds/{{$.Data.Base.Slug}}/compare?with={{$v.SubjectSlug}}">baseline vs {{$v.Name}}</a>{{end}}</p></div>{{end}}{{end}}
|
||||
{{if $r.Steps}}<div class="card"><h2>Stimuli</h2>{{range $r.Steps}}<div class="replay-step"><div><strong>{{.Index}}.</strong> <a href="/events/{{.EventID}}">{{.Text}}</a> <span class="small muted">· {{.Cycles}} cycle(s)</span></div><ul class="small mono">{{range .Produced}}<li>{{.}}</li>{{else}}<li class="muted">nothing produced</li>{{end}}</ul></div>{{end}}</div>{{end}}
|
||||
{{end}}
|
||||
|
||||
Reference in New Issue
Block a user