@miadi/ncp-story-studio 0.3.0 → 0.4.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/PHASES.md CHANGED
@@ -39,8 +39,12 @@ A third review — a parity audit against the prototype — returned 14 gaps. Wh
39
39
  - **A story can bring its own reading positions** — the persona registry is open, so the prototype's
40
40
  guest voices (a wise owl, a data dolphin) can be registered without changing this package.
41
41
 
42
- Still open: wiring per-story guest personas into `app/ncp`, and enabling live model calls on 3335
43
- (`NCP_AGENT_ENABLED=1` plus a key an ops decision, not a code one).
42
+ Both of those are now closed. A story's guest voices reach the prompt: asking *Tushell and the
43
+ Orchestra of Agents* about its first beat answers as 🧠 Mia · 🌸 Miette · 🎨 Ava8 · 🌊 Tushell ·
44
+ 🦉 Wise Owl, and the Keeper Chronicles answer with 🌀 Miawapaskone and 🪶 Grandmother Yazhi. And the
45
+ studio answers for real by default — `NCP_AGENT_DISABLED=1` is the off switch, not an on switch.
46
+ A live call still needs the writer credential, because the port is publicly reachable and a model
47
+ call costs money; a browser without it gets the prompt instead of an error.
44
48
 
45
49
  ## Status — 2026-09-12
46
50
 
@@ -7,11 +7,11 @@ export interface StoryGraphProps {
7
7
  focusedBeatId?: string | null;
8
8
  onBeatClick?: (beatId: string) => void;
9
9
  options?: GraphLayoutOptions;
10
- /** Show the beat label under each node (default true). */
11
- labels?: boolean;
10
+ /** Show the card above each node (default true). Off gives a compact strip. */
11
+ cards?: boolean;
12
12
  className?: string;
13
13
  /** Rendered when the narrative has no beats. */
14
14
  emptyMessage?: React.ReactNode;
15
15
  }
16
- export declare function StoryGraph({ narrative, focusedBeatId, onBeatClick, options, labels, className, emptyMessage, }: StoryGraphProps): React.ReactElement;
16
+ export declare function StoryGraph({ narrative, focusedBeatId, onBeatClick, options, cards, className, emptyMessage, }: StoryGraphProps): React.ReactElement;
17
17
  //# sourceMappingURL=story-graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"story-graph.d.ts","sourceRoot":"","sources":["../../../src/graph/react/story-graph.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAqC,KAAK,kBAAkB,EAAkB,MAAM,aAAa,CAAA;AACxG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEtD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAA;IACpB,wBAAwB;IACxB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC/B;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,aAAa,EACb,WAAW,EACX,OAAO,EACP,MAAa,EACb,SAAS,EACT,YAAsD,GACvD,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CA8CtC"}
1
+ {"version":3,"file":"story-graph.d.ts","sourceRoot":"","sources":["../../../src/graph/react/story-graph.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAqC,KAAK,kBAAkB,EAAkB,MAAM,aAAa,CAAA;AAExG,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,uBAAuB,CAAA;AAEjE,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAA;IACpB,wBAAwB;IACxB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC/B;AAkBD,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,aAAa,EACb,WAAW,EACX,OAAO,EACP,KAAY,EACZ,SAAS,EACT,YAAsD,GACvD,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CA8ItC"}
@@ -1,26 +1,157 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- // The story lattice as a React component. It owns no data source and no URL:
4
- // a narrative comes in, a beat id goes out.
3
+ // The story lattice as the studio draws it: one horizontal line, a node per
4
+ // beat carrying its tone rings, the telling above the line and the tone triad
5
+ // below it. The geometry comes from the headless layout so a server can draw
6
+ // the same picture; everything here is presentation.
7
+ //
8
+ // It owns no data source and no URL: a narrative comes in, a beat id goes out.
5
9
  import * as React from 'react';
6
10
  import { layoutNarrative } from '../index.js';
7
- export function StoryGraph({ narrative, focusedBeatId, onBeatClick, options, labels = true, className, emptyMessage = 'This narrative has no storybeats yet.', }) {
8
- const layout = React.useMemo(() => layoutNarrative(narrative, options), [narrative, options]);
11
+ import { TONE_FALLBACK } from '../tones.js';
12
+ const AXES = [
13
+ { axis: 'abstraction', letter: 'A', label: 'Abstraction' },
14
+ { axis: 'spatial', letter: 'S', label: 'Spatial' },
15
+ { axis: 'temporal', letter: 'T', label: 'Temporal' },
16
+ ];
17
+ /** Defaults that leave room for a card above and a tone panel below. */
18
+ const CARD_DEFAULTS = {
19
+ beatSpacing: 360,
20
+ centerY: 360,
21
+ height: 720,
22
+ nodeRadius: 26,
23
+ ringGap: 10,
24
+ paddingX: 200,
25
+ };
26
+ export function StoryGraph({ narrative, focusedBeatId, onBeatClick, options, cards = true, className, emptyMessage = 'This narrative has no storybeats yet.', }) {
27
+ const resolved = React.useMemo(() => ({ ...(cards ? CARD_DEFAULTS : {}), ...options }), [cards, options]);
28
+ const layout = React.useMemo(() => layoutNarrative(narrative, resolved), [narrative, resolved]);
29
+ const beatsById = React.useMemo(() => {
30
+ const map = new Map();
31
+ for (const beat of narrative.subtext.storybeats)
32
+ map.set(beat.id, beat);
33
+ return map;
34
+ }, [narrative]);
35
+ const perspectiveName = React.useCallback((beatId) => {
36
+ const ref = beatsById.get(beatId)?.perspectives?.[0];
37
+ if (!ref)
38
+ return undefined;
39
+ const perspective = narrative.subtext.perspectives.find((candidate) => candidate.id === ref.perspective_id);
40
+ return perspective?.summary ?? perspective?.throughline ?? perspective?.author_structural_pov;
41
+ }, [beatsById, narrative]);
9
42
  if (layout.nodes.length === 0) {
10
43
  return (_jsx("div", { className: className, "data-ncp-graph": "empty", style: { padding: '2rem', color: '#94a3b8' }, children: emptyMessage }));
11
44
  }
12
- return (_jsx("div", { className: className, "data-ncp-graph": "canvas", style: { overflowX: 'auto', overflowY: 'hidden' }, children: _jsxs("svg", { viewBox: `0 0 ${layout.width} ${layout.height}`, width: layout.width, height: layout.height, role: "img", "aria-label": `Story lattice for ${narrative.title}: ${layout.nodes.length} beats`, children: [_jsx("g", { "data-ncp-graph-layer": "links", children: layout.links.map((link) => (_jsx("path", { d: link.path, fill: "none", stroke: "currentColor", strokeOpacity: 0.35, strokeWidth: 2 }, link.id))) }), _jsx("g", { "data-ncp-graph-layer": "nodes", children: layout.nodes.map((node) => (_jsx(BeatNode, { node: node, focused: focusedBeatId === node.id, labels: labels, onClick: onBeatClick }, node.id))) })] }) }));
45
+ const { centerY, width, height } = layout;
46
+ return (_jsxs("div", { className: className, "data-ncp-graph": "canvas", style: { position: 'relative' }, children: [_jsx("div", { className: "ncp-graph-scroll", style: { overflowX: 'auto', overflowY: 'hidden' }, children: _jsxs("div", { style: { position: 'relative', width, height }, children: [_jsxs("svg", { width: width, height: height, style: { position: 'absolute', inset: 0, pointerEvents: 'none' }, "aria-hidden": "true", children: [_jsxs("defs", { children: [_jsxs("linearGradient", { id: "ncp-timeline", x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [_jsx("stop", { offset: "0%", stopColor: "#4f46e5", stopOpacity: "0" }), _jsx("stop", { offset: "10%", stopColor: "#8b5cf6", stopOpacity: "0.5" }), _jsx("stop", { offset: "90%", stopColor: "#ec4899", stopOpacity: "0.5" }), _jsx("stop", { offset: "100%", stopColor: "#ec4899", stopOpacity: "0" })] }), _jsxs("filter", { id: "ncp-glow", children: [_jsx("feGaussianBlur", { stdDeviation: "2.5", result: "blur" }), _jsxs("feMerge", { children: [_jsx("feMergeNode", { in: "blur" }), _jsx("feMergeNode", { in: "SourceGraphic" })] })] })] }), _jsx("path", { d: `M 0,${centerY} L ${width},${centerY}`, stroke: "url(#ncp-timeline)", strokeWidth: 2, fill: "none", filter: "url(#ncp-glow)" }), cards
47
+ ? layout.nodes.map((node) => (_jsxs("g", { stroke: "#475569", strokeWidth: 1, strokeDasharray: "4 4", opacity: 0.3, children: [_jsx("path", { d: `M ${node.x},${node.y} L ${node.x},${node.y - 110}`, fill: "none" }), _jsx("path", { d: `M ${node.x},${node.y} L ${node.x},${node.y + 110}`, fill: "none" })] }, `stem-${node.id}`)))
48
+ : layout.links.map((link) => (_jsx("path", { d: link.path, fill: "none", stroke: "currentColor", strokeOpacity: 0.35, strokeWidth: 2 }, link.id)))] }), layout.nodes.map((node) => (_jsx(BeatMark, { node: node, focused: focusedBeatId === node.id, cards: cards, perspective: perspectiveName(node.id), onClick: onBeatClick }, node.id))), _jsx("div", { "aria-hidden": "true", style: {
49
+ position: 'absolute',
50
+ left: width - 40,
51
+ top: centerY,
52
+ transform: 'translate(-50%, -50%)',
53
+ width: 40,
54
+ height: 40,
55
+ borderRadius: '9999px',
56
+ border: '2px dashed #475569',
57
+ opacity: 0.4,
58
+ display: 'flex',
59
+ alignItems: 'center',
60
+ justifyContent: 'center',
61
+ color: '#94a3b8',
62
+ fontSize: 14,
63
+ }, children: "\u25B8" })] }) }), _jsx("style", { children: `
64
+ @keyframes ncp-ring-spin { to { transform: rotate(360deg); } }
65
+ [data-ncp-ring="outer"] { animation: ncp-ring-spin 24s linear infinite; transform-origin: 50% 50%; }
66
+ [data-ncp-ring="middle"] { animation: ncp-ring-spin 18s linear infinite reverse; transform-origin: 50% 50%; }
67
+ @media (prefers-reduced-motion: reduce) {
68
+ [data-ncp-ring] { animation: none; }
69
+ }
70
+ .ncp-graph-scroll::-webkit-scrollbar { height: 8px; }
71
+ .ncp-graph-scroll::-webkit-scrollbar-track { background: #0f172a; }
72
+ .ncp-graph-scroll::-webkit-scrollbar-thumb { background: #334155; border-radius: 4px; }
73
+ ` })] }));
13
74
  }
14
- function BeatNode({ node, focused, labels, onClick }) {
75
+ function BeatMark({ node, focused, cards, perspective, onClick }) {
15
76
  const interactive = typeof onClick === 'function';
16
- const [r1, r2, r3] = node.ringRadii;
17
- return (_jsxs("g", { "data-ncp-beat": node.id, "data-ncp-beat-focused": focused ? 'true' : undefined, transform: `translate(${node.x} ${node.y})`, style: interactive ? { cursor: 'pointer' } : undefined, role: interactive ? 'button' : undefined, tabIndex: interactive ? 0 : undefined, "aria-label": node.description, onClick: interactive ? () => onClick?.(node.id) : undefined, onKeyDown: interactive
18
- ? (event) => {
19
- if (event.key === 'Enter' || event.key === ' ') {
20
- event.preventDefault();
21
- onClick?.(node.id);
22
- }
23
- }
24
- : undefined, children: [_jsx("title", { children: node.description }), focused ? _jsx("circle", { r: r3 + 10, fill: "none", stroke: "#ffd700", strokeWidth: 2, strokeDasharray: "4 4" }) : null, _jsx("circle", { r: r3, fill: "none", stroke: node.ringColors.temporal, strokeOpacity: 0.7, strokeWidth: 2 }), _jsx("circle", { r: r2, fill: "none", stroke: node.ringColors.spatial, strokeOpacity: 0.85, strokeWidth: 2 }), _jsx("circle", { r: r1, fill: node.ringColors.abstraction, fillOpacity: node.hasTones ? 0.2 : 0.06, stroke: node.ringColors.abstraction, strokeWidth: 2 }), _jsx("text", { textAnchor: "middle", y: 5, fontFamily: "ui-monospace, monospace", fontSize: 14, fill: "currentColor", children: node.sequence }), labels ? (_jsx("text", { textAnchor: "middle", y: r3 + 22, fontSize: 13, fill: "currentColor", fillOpacity: 0.65, children: node.title })) : null] }));
77
+ const ringColors = node.ringColors;
78
+ const diameter = node.ringRadii[2] * 2 + 16;
79
+ return (_jsxs("div", { "data-ncp-beat": node.id, "data-ncp-beat-focused": focused ? 'true' : undefined, style: { position: 'absolute', left: node.x, top: node.y, width: 0, height: 0 }, children: [cards ? (_jsxs("article", { style: {
80
+ position: 'absolute',
81
+ left: '50%',
82
+ bottom: 52,
83
+ transform: 'translateX(-50%)',
84
+ width: 300,
85
+ borderRadius: 12,
86
+ border: `1px solid ${focused ? '#6366f1' : '#1e293b'}`,
87
+ background: 'rgba(15, 23, 42, 0.92)',
88
+ padding: '16px',
89
+ boxShadow: focused ? '0 0 24px rgba(99,102,241,0.18)' : '0 10px 30px rgba(0,0,0,0.35)',
90
+ overflow: 'hidden',
91
+ }, children: [_jsx("span", { "aria-hidden": "true", style: {
92
+ position: 'absolute',
93
+ top: 0,
94
+ left: 0,
95
+ width: '100%',
96
+ height: 3,
97
+ background: 'linear-gradient(90deg,#6366f1,#a855f7,#ec4899)',
98
+ opacity: 0.5,
99
+ } }), _jsxs("div", { style: { display: 'flex', justifyContent: 'space-between', gap: 8, marginBottom: 8 }, children: [_jsx("span", { style: {
100
+ fontSize: 10,
101
+ textTransform: 'uppercase',
102
+ letterSpacing: '0.12em',
103
+ color: '#64748b',
104
+ border: '1px solid #1e293b',
105
+ borderRadius: 4,
106
+ padding: '2px 6px',
107
+ }, children: node.appreciation }), perspective ? (_jsx("span", { style: { fontSize: 10, textTransform: 'uppercase', color: '#818cf8' }, children: perspective })) : null] }), _jsx("h3", { style: { fontSize: 16, fontWeight: 700, color: '#e2e8f0', margin: '0 0 6px', lineHeight: 1.35 }, children: node.summary ?? node.title }), node.illustration ? (_jsxs("p", { style: { fontSize: 12, fontStyle: 'italic', color: '#94a3b8', margin: 0, lineHeight: 1.5 }, children: ["\u201C", node.illustration, "\u201D"] })) : null] })) : null, _jsx("button", { type: interactive ? 'button' : undefined, onClick: interactive ? () => onClick?.(node.id) : undefined, disabled: !interactive, "aria-label": node.description, title: node.description, style: {
108
+ position: 'absolute',
109
+ left: '50%',
110
+ top: '50%',
111
+ transform: 'translate(-50%, -50%)',
112
+ width: diameter,
113
+ height: diameter,
114
+ border: 0,
115
+ background: 'transparent',
116
+ padding: 0,
117
+ cursor: interactive ? 'pointer' : 'default',
118
+ color: 'inherit',
119
+ }, children: _jsxs("svg", { width: diameter, height: diameter, viewBox: "0 0 100 100", "aria-hidden": "true", children: [focused ? (_jsx("circle", { cx: "50", cy: "50", r: "48", fill: "none", stroke: "#ffd700", strokeWidth: "2", strokeDasharray: "4 4" })) : null, _jsx("circle", { "data-ncp-ring": "outer", cx: "50", cy: "50", r: "44", fill: "none", stroke: ringColors.temporal, strokeWidth: "2", strokeDasharray: "20 40", opacity: node.hasTones ? 0.5 : 0.2 }), _jsx("circle", { "data-ncp-ring": "middle", cx: "50", cy: "50", r: "36", fill: "none", stroke: ringColors.spatial, strokeWidth: "2", strokeDasharray: "40 20", opacity: node.hasTones ? 0.6 : 0.2 }), _jsx("circle", { cx: "50", cy: "50", r: "26", fill: node.hasTones ? ringColors.abstraction : TONE_FALLBACK, fillOpacity: node.hasTones ? 0.16 : 0.06, stroke: ringColors.abstraction, strokeWidth: "3", opacity: node.hasTones ? 0.9 : 0.4 }), _jsx("text", { x: "50", y: "56", textAnchor: "middle", fontFamily: "ui-monospace, monospace", fontSize: "20", fontWeight: "700", fill: "currentColor", children: node.sequence })] }) }), cards ? (_jsx("aside", { style: {
120
+ position: 'absolute',
121
+ left: '50%',
122
+ top: 52,
123
+ transform: 'translateX(-50%)',
124
+ width: 260,
125
+ borderRadius: 12,
126
+ border: '1px solid #1e293b',
127
+ background: 'rgba(2, 6, 23, 0.92)',
128
+ padding: '12px 14px',
129
+ display: 'grid',
130
+ gap: 10,
131
+ }, children: AXES.map(({ axis, letter, label }) => {
132
+ const value = node.tones?.[axis];
133
+ const color = ringColors[axis];
134
+ return (_jsxs("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: 8 }, children: [_jsxs("span", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [_jsx("span", { style: {
135
+ width: 22,
136
+ height: 22,
137
+ borderRadius: 6,
138
+ border: '1px solid #1e293b',
139
+ background: '#0f172a',
140
+ color,
141
+ fontSize: 11,
142
+ fontWeight: 700,
143
+ display: 'flex',
144
+ alignItems: 'center',
145
+ justifyContent: 'center',
146
+ }, children: letter }), _jsxs("span", { children: [_jsx("span", { style: {
147
+ display: 'block',
148
+ fontSize: 9,
149
+ textTransform: 'uppercase',
150
+ letterSpacing: '0.1em',
151
+ color: '#64748b',
152
+ lineHeight: 1,
153
+ marginBottom: 2,
154
+ }, children: label }), _jsx("span", { style: { fontSize: 12, color: '#cbd5e1', textTransform: 'capitalize' }, children: value ?? '—' })] })] }), _jsx("span", { style: { height: 4, width: 32, borderRadius: 9999, background: '#1e293b', overflow: 'hidden' }, children: _jsx("span", { style: { display: 'block', height: '100%', width: value ? '100%' : '20%', background: color } }) })] }, axis));
155
+ }) })) : null] }));
25
156
  }
26
157
  //# sourceMappingURL=story-graph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"story-graph.js","sourceRoot":"","sources":["../../../src/graph/react/story-graph.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"story-graph.js","sourceRoot":"","sources":["../../../src/graph/react/story-graph.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@miadi/ncp-story-studio",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Narrative Context Protocol story studio as consumable modules: canonical NCP types and a zero-dependency validator, a headless story-lattice layout with a React renderer, story-project storage providers (JSON files and Neon Postgres), the agent link protocol, and the terminology and example data behind the teaching surface.",
5
5
  "license": "MIT",
6
6
  "author": "Miadi",