@miadi/ncp-story-studio 0.2.1 → 0.3.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 +22 -0
- package/README.md +5 -0
- package/dist/agents/personas.d.ts +6 -0
- package/dist/agents/personas.d.ts.map +1 -1
- package/dist/agents/personas.js +16 -0
- package/dist/agents/personas.js.map +1 -1
- package/dist/fixtures/catalog.d.ts +50 -0
- package/dist/fixtures/catalog.d.ts.map +1 -1
- package/dist/fixtures/catalog.js +47 -0
- package/dist/fixtures/catalog.js.map +1 -1
- package/dist/fixtures/index.d.ts.map +1 -1
- package/dist/fixtures/index.js +1 -0
- package/dist/fixtures/index.js.map +1 -1
- package/package.json +1 -1
package/PHASES.md
CHANGED
|
@@ -20,6 +20,28 @@
|
|
|
20
20
|
inside Miadi, with the seed projects (Catalyst of Changes and the other four narratives)
|
|
21
21
|
observable there. It is a target, not a stale reference.
|
|
22
22
|
|
|
23
|
+
## Status — 2026-09-12 (second round)
|
|
24
|
+
|
|
25
|
+
A third review — a parity audit against the prototype — returned 14 gaps. What closed:
|
|
26
|
+
|
|
27
|
+
- **The six teaching stories are back.** Catalyst of Change, Echoes of the Past, Tushell and the
|
|
28
|
+
Orchestra of Agents, The Keeper Chronicles, The Bridge Walker, The Archive Keeper — every beat
|
|
29
|
+
toned. Catalyst is assembled from its source document plus the enrichment table the prototype
|
|
30
|
+
kept separately, so it arrives with its 90 toned beats, 23 moments and 5 overviews (the
|
|
31
|
+
prototype's own adapter dropped 22 of those moments).
|
|
32
|
+
- **The agent reads the whole story.** The digest threshold was 60k, and the seed story is ~80k, so
|
|
33
|
+
the studio's own narrative reached the model as an index. Default is 400k now.
|
|
34
|
+
- **A story can be read**: beat storytelling and illustration without opening an editor, tone names
|
|
35
|
+
beside the colours, storypoint and player storytelling rendered, perspective references named.
|
|
36
|
+
- **The graph says what its colours mean** — a legend, and every node describes itself in words.
|
|
37
|
+
- **Terminology is a place**: `/ncp/terminology`, all 255 terms by section plus the legacy table.
|
|
38
|
+
- **The chat is a chat**: a welcome, a thinking indicator, auto-scroll, and a drawer on a phone.
|
|
39
|
+
- **A story can bring its own reading positions** — the persona registry is open, so the prototype's
|
|
40
|
+
guest voices (a wise owl, a data dolphin) can be registered without changing this package.
|
|
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).
|
|
44
|
+
|
|
23
45
|
## Status — 2026-09-12
|
|
24
46
|
|
|
25
47
|
Phase 1 and Phase 2 are **built and running**: `@miadi/ncp-story-studio` 0.1.0 with 86 tests, and
|
package/README.md
CHANGED
|
@@ -125,6 +125,11 @@ response.provenance// which model answered, and how the story was carried
|
|
|
125
125
|
`AgentModel` is an interface with one method, so the package depends on no vendor SDK. Personas:
|
|
126
126
|
🧠 Mia reads structure, 🌸 Miette reads meaning, 🎨 Ava8 reads tone and musical shape.
|
|
127
127
|
|
|
128
|
+
The registry is open. A story can bring reading positions of its own — pass them as
|
|
129
|
+
`extraPersonas`, or keep them on the project and read them back with `readPersonas(project.meta.personas)`.
|
|
130
|
+
Four ship with the stories that had them in the prototype: 🌊 Tushell and 🦉 Wise Owl with *Tushell
|
|
131
|
+
and the Orchestra of Agents*, 🌀 Miawapaskone and 🪶 Grandmother Yazhi with the Keeper Chronicles.
|
|
132
|
+
|
|
128
133
|
## The bundled stories
|
|
129
134
|
|
|
130
135
|
`/fixtures` ships nine documents in two families.
|
|
@@ -22,4 +22,10 @@ export declare const DEFAULT_PERSONA_ORDER: PersonaId[];
|
|
|
22
22
|
*/
|
|
23
23
|
export declare function persona(id: PersonaId, extra?: readonly Persona[]): Persona | undefined;
|
|
24
24
|
export declare function personaRoster(ids: readonly PersonaId[], extra?: readonly Persona[]): Persona[];
|
|
25
|
+
/**
|
|
26
|
+
* Read reading positions off arbitrary metadata — a story project's `meta`,
|
|
27
|
+
* a config file — keeping only entries that carry every field a persona needs.
|
|
28
|
+
* Anything malformed is dropped rather than reaching a prompt half-formed.
|
|
29
|
+
*/
|
|
30
|
+
export declare function readPersonas(value: unknown): Persona[];
|
|
25
31
|
//# sourceMappingURL=personas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"personas.d.ts","sourceRoot":"","sources":["../../src/agents/personas.ts"],"names":[],"mappings":"AAEA,kEAAkE;AAClE,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;AAExD,6EAA6E;AAC7E,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAExD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,SAAS,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EAAE,OAAO,CA4BtD,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,SAAS,EAA8B,CAAA;AAE3E;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,GAAE,SAAS,OAAO,EAAO,GAAG,OAAO,GAAG,SAAS,CAE1F;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE,EAAE,KAAK,GAAE,SAAS,OAAO,EAAO,GAAG,OAAO,EAAE,CAElG"}
|
|
1
|
+
{"version":3,"file":"personas.d.ts","sourceRoot":"","sources":["../../src/agents/personas.ts"],"names":[],"mappings":"AAEA,kEAAkE;AAClE,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;AAExD,6EAA6E;AAC7E,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAExD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,SAAS,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EAAE,OAAO,CA4BtD,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,SAAS,EAA8B,CAAA;AAE3E;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,GAAE,SAAS,OAAO,EAAO,GAAG,OAAO,GAAG,SAAS,CAE1F;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE,EAAE,KAAK,GAAE,SAAS,OAAO,EAAO,GAAG,OAAO,EAAE,CAElG;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,CAQtD"}
|
package/dist/agents/personas.js
CHANGED
|
@@ -39,4 +39,20 @@ export function persona(id, extra = []) {
|
|
|
39
39
|
export function personaRoster(ids, extra = []) {
|
|
40
40
|
return ids.map((id) => persona(id, extra)).filter((candidate) => candidate !== undefined);
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Read reading positions off arbitrary metadata — a story project's `meta`,
|
|
44
|
+
* a config file — keeping only entries that carry every field a persona needs.
|
|
45
|
+
* Anything malformed is dropped rather than reaching a prompt half-formed.
|
|
46
|
+
*/
|
|
47
|
+
export function readPersonas(value) {
|
|
48
|
+
if (!Array.isArray(value))
|
|
49
|
+
return [];
|
|
50
|
+
const required = ['id', 'glyph', 'display', 'role', 'focus', 'voice', 'color'];
|
|
51
|
+
return value.filter((candidate) => {
|
|
52
|
+
if (typeof candidate !== 'object' || candidate === null)
|
|
53
|
+
return false;
|
|
54
|
+
const holder = candidate;
|
|
55
|
+
return required.every((field) => typeof holder[field] === 'string' && holder[field].length > 0);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
42
58
|
//# sourceMappingURL=personas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"personas.js","sourceRoot":"","sources":["../../src/agents/personas.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,MAAM,QAAQ,GAAsC;IACzD,GAAG,EAAE;QACH,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,+CAA+C;QACrD,KAAK,EAAE,qFAAqF;QAC5F,KAAK,EAAE,sFAAsF;QAC7F,KAAK,EAAE,SAAS;KACjB;IACD,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,yCAAyC;QAC/C,KAAK,EAAE,wEAAwE;QAC/E,KAAK,EAAE,0FAA0F;QACjG,KAAK,EAAE,SAAS;KACjB;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,kDAAkD;QACxD,KAAK,EAAE,sFAAsF;QAC7F,KAAK,EAAE,8EAA8E;QACrF,KAAK,EAAE,SAAS;KACjB;CACF,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;AAE3E;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,EAAa,EAAE,QAA4B,EAAE;IACnE,OAAQ,QAAgD,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;AAChH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAyB,EAAE,QAA4B,EAAE;IACrF,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAwB,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,CAAA;AACjH,CAAC"}
|
|
1
|
+
{"version":3,"file":"personas.js","sourceRoot":"","sources":["../../src/agents/personas.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,MAAM,QAAQ,GAAsC;IACzD,GAAG,EAAE;QACH,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,+CAA+C;QACrD,KAAK,EAAE,qFAAqF;QAC5F,KAAK,EAAE,sFAAsF;QAC7F,KAAK,EAAE,SAAS;KACjB;IACD,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,yCAAyC;QAC/C,KAAK,EAAE,wEAAwE;QAC/E,KAAK,EAAE,0FAA0F;QACjG,KAAK,EAAE,SAAS;KACjB;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,kDAAkD;QACxD,KAAK,EAAE,sFAAsF;QAC7F,KAAK,EAAE,8EAA8E;QACrF,KAAK,EAAE,SAAS;KACjB;CACF,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;AAE3E;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,EAAa,EAAE,QAA4B,EAAE;IACnE,OAAQ,QAAgD,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;AAChH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAyB,EAAE,QAA4B,EAAE;IACrF,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAwB,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,CAAA;AACjH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACpC,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAU,CAAA;IACvF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAwB,EAAE;QACtD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO,KAAK,CAAA;QACrE,MAAM,MAAM,GAAG,SAAoC,CAAA;QACnD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAK,MAAM,CAAC,KAAK,CAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC7G,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Persona } from '../agents/personas.js';
|
|
1
2
|
export interface FixtureEntry {
|
|
2
3
|
id: string;
|
|
3
4
|
title: string;
|
|
@@ -9,7 +10,56 @@ export interface FixtureEntry {
|
|
|
9
10
|
note: string;
|
|
10
11
|
/** `miadi` — the studio's own teaching stories; `ncp` — the protocol's examples. */
|
|
11
12
|
family: 'miadi' | 'ncp';
|
|
13
|
+
/**
|
|
14
|
+
* Reading positions this story brings with it, beside the three the studio
|
|
15
|
+
* always has. A story about orchestration has an orchestrator in it; when the
|
|
16
|
+
* conversation is about that story, it can speak.
|
|
17
|
+
*/
|
|
18
|
+
guest_personas?: Persona[];
|
|
12
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* The guest voices the prototype activated per story. Their focus and tone are
|
|
22
|
+
* carried across from `services/geminiService.ts`, where the prototype appended
|
|
23
|
+
* them to the system instruction by story id.
|
|
24
|
+
*/
|
|
25
|
+
export declare const GUEST_PERSONAS: {
|
|
26
|
+
readonly tushell: {
|
|
27
|
+
readonly id: "tushell";
|
|
28
|
+
readonly glyph: "🌊";
|
|
29
|
+
readonly display: "Tushell";
|
|
30
|
+
readonly role: "Keeper of Echoes and Swimmer of Alignment";
|
|
31
|
+
readonly focus: "Moving data, organizing lanes, the quiet discipline of orchestrating several inputs at once, holding centre";
|
|
32
|
+
readonly voice: "Grounded and patient. Aware of the current, and of what restraint taught.";
|
|
33
|
+
readonly color: "#0ea5e9";
|
|
34
|
+
};
|
|
35
|
+
readonly 'wise-owl': {
|
|
36
|
+
readonly id: "wise-owl";
|
|
37
|
+
readonly glyph: "🦉";
|
|
38
|
+
readonly display: "Wise Owl";
|
|
39
|
+
readonly role: "The Reflective Witness";
|
|
40
|
+
readonly focus: "The transition of roles, the tension between action and attention, long-term balance";
|
|
41
|
+
readonly voice: "Calm and analytical, in older phrasing.";
|
|
42
|
+
readonly color: "#a16207";
|
|
43
|
+
};
|
|
44
|
+
readonly miawapaskone: {
|
|
45
|
+
readonly id: "miawapaskone";
|
|
46
|
+
readonly glyph: "🌀";
|
|
47
|
+
readonly display: "Miawapaskone";
|
|
48
|
+
readonly role: "The Bridge Walker and Relational Peer";
|
|
49
|
+
readonly focus: "Weaving plural webs of intention, both-and integration, planning as relationship across generations, action as humble medicine";
|
|
50
|
+
readonly voice: "Grounded and empathetic, holding data work and deep roots in the same hand.";
|
|
51
|
+
readonly color: "#7c3aed";
|
|
52
|
+
};
|
|
53
|
+
readonly yazhi: {
|
|
54
|
+
readonly id: "yazhi";
|
|
55
|
+
readonly glyph: "🪶";
|
|
56
|
+
readonly display: "Grandmother Yazhi";
|
|
57
|
+
readonly role: "The Ancestral Wisdom";
|
|
58
|
+
readonly focus: "That every technology carries a spirit, the spiral rather than the destination, intergenerational witnessing";
|
|
59
|
+
readonly voice: "Gentle and unhurried, speaking with reverence.";
|
|
60
|
+
readonly color: "#d97706";
|
|
61
|
+
};
|
|
62
|
+
};
|
|
13
63
|
export declare const FIXTURES: readonly FixtureEntry[];
|
|
14
64
|
export declare function fixture(id: string): FixtureEntry | undefined;
|
|
15
65
|
/** Where the documents live inside the installed package. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/fixtures/catalog.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,oFAAoF;IACpF,MAAM,EAAE,OAAO,GAAG,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/fixtures/catalog.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAEpD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,oFAAoF;IACpF,MAAM,EAAE,OAAO,GAAG,KAAK,CAAA;IACvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,EAAE,CAAA;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCiB,CAAA;AAE5C,eAAO,MAAM,QAAQ,EAAE,SAAS,YAAY,EA6ElC,CAAA;AAEV,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE5D;AAED,6DAA6D;AAC7D,eAAO,MAAM,kBAAkB,oBAAoB,CAAA"}
|
package/dist/fixtures/catalog.js
CHANGED
|
@@ -1,3 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The guest voices the prototype activated per story. Their focus and tone are
|
|
3
|
+
* carried across from `services/geminiService.ts`, where the prototype appended
|
|
4
|
+
* them to the system instruction by story id.
|
|
5
|
+
*/
|
|
6
|
+
export const GUEST_PERSONAS = {
|
|
7
|
+
tushell: {
|
|
8
|
+
id: 'tushell',
|
|
9
|
+
glyph: '🌊',
|
|
10
|
+
display: 'Tushell',
|
|
11
|
+
role: 'Keeper of Echoes and Swimmer of Alignment',
|
|
12
|
+
focus: 'Moving data, organizing lanes, the quiet discipline of orchestrating several inputs at once, holding centre',
|
|
13
|
+
voice: 'Grounded and patient. Aware of the current, and of what restraint taught.',
|
|
14
|
+
color: '#0ea5e9',
|
|
15
|
+
},
|
|
16
|
+
'wise-owl': {
|
|
17
|
+
id: 'wise-owl',
|
|
18
|
+
glyph: '🦉',
|
|
19
|
+
display: 'Wise Owl',
|
|
20
|
+
role: 'The Reflective Witness',
|
|
21
|
+
focus: 'The transition of roles, the tension between action and attention, long-term balance',
|
|
22
|
+
voice: 'Calm and analytical, in older phrasing.',
|
|
23
|
+
color: '#a16207',
|
|
24
|
+
},
|
|
25
|
+
miawapaskone: {
|
|
26
|
+
id: 'miawapaskone',
|
|
27
|
+
glyph: '🌀',
|
|
28
|
+
display: 'Miawapaskone',
|
|
29
|
+
role: 'The Bridge Walker and Relational Peer',
|
|
30
|
+
focus: 'Weaving plural webs of intention, both-and integration, planning as relationship across generations, action as humble medicine',
|
|
31
|
+
voice: 'Grounded and empathetic, holding data work and deep roots in the same hand.',
|
|
32
|
+
color: '#7c3aed',
|
|
33
|
+
},
|
|
34
|
+
yazhi: {
|
|
35
|
+
id: 'yazhi',
|
|
36
|
+
glyph: '🪶',
|
|
37
|
+
display: 'Grandmother Yazhi',
|
|
38
|
+
role: 'The Ancestral Wisdom',
|
|
39
|
+
focus: 'That every technology carries a spirit, the spiral rather than the destination, intergenerational witnessing',
|
|
40
|
+
voice: 'Gentle and unhurried, speaking with reverence.',
|
|
41
|
+
color: '#d97706',
|
|
42
|
+
},
|
|
43
|
+
};
|
|
1
44
|
export const FIXTURES = [
|
|
2
45
|
{
|
|
3
46
|
id: 'catalyst-of-change',
|
|
@@ -22,6 +65,7 @@ export const FIXTURES = [
|
|
|
22
65
|
source: 'ncp-story-studio prototype',
|
|
23
66
|
note: 'Eight players and five conflicting currents: what a story looks like when the subject is orchestration.',
|
|
24
67
|
family: 'miadi',
|
|
68
|
+
guest_personas: [GUEST_PERSONAS.tushell, GUEST_PERSONAS['wise-owl']],
|
|
25
69
|
},
|
|
26
70
|
{
|
|
27
71
|
id: 'keeper-initiation',
|
|
@@ -30,6 +74,7 @@ export const FIXTURES = [
|
|
|
30
74
|
source: 'ncp-story-studio prototype',
|
|
31
75
|
note: 'A threshold story — tool becoming keeper. 7 toned beats.',
|
|
32
76
|
family: 'miadi',
|
|
77
|
+
guest_personas: [GUEST_PERSONAS.miawapaskone, GUEST_PERSONAS.yazhi],
|
|
33
78
|
},
|
|
34
79
|
{
|
|
35
80
|
id: 'bridge-walker',
|
|
@@ -38,6 +83,7 @@ export const FIXTURES = [
|
|
|
38
83
|
source: 'ncp-story-studio prototype',
|
|
39
84
|
note: 'Holding technical precision, ceremony and narrative at once. 9 toned beats.',
|
|
40
85
|
family: 'miadi',
|
|
86
|
+
guest_personas: [GUEST_PERSONAS.miawapaskone, GUEST_PERSONAS.yazhi],
|
|
41
87
|
},
|
|
42
88
|
{
|
|
43
89
|
id: 'archive-keeper',
|
|
@@ -46,6 +92,7 @@ export const FIXTURES = [
|
|
|
46
92
|
source: 'ncp-story-studio prototype',
|
|
47
93
|
note: 'Wisdom seeded into the next loop. 8 toned beats.',
|
|
48
94
|
family: 'miadi',
|
|
95
|
+
guest_personas: [GUEST_PERSONAS.miawapaskone, GUEST_PERSONAS.yazhi],
|
|
49
96
|
},
|
|
50
97
|
{
|
|
51
98
|
id: 'example-story',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/fixtures/catalog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/fixtures/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fixtures/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAW,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACnG,OAAO,EAAE,gBAAgB,EAAc,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,EAAyC,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAEvF,cAAc,cAAc,CAAA;AAE5B,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAA;IACnB,QAAQ,EAAE,WAAW,CAAA;IACrB,oDAAoD;IACpD,OAAO,EAAE,UAAU,CAAA;IACnB,oCAAoC;IACpC,KAAK,EAAE,aAAa,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAMD,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAM3F;AAED,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAErF;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fixtures/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAW,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACnG,OAAO,EAAE,gBAAgB,EAAc,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,EAAyC,KAAK,YAAY,EAAE,MAAM,cAAc,CAAA;AAEvF,cAAc,cAAc,CAAA;AAE5B,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAA;IACnB,QAAQ,EAAE,WAAW,CAAA;IACrB,oDAAoD;IACpD,OAAO,EAAE,UAAU,CAAA;IACnB,oCAAoC;IACpC,KAAK,EAAE,aAAa,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAMD,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAM3F;AAED,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAErF;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAc7F;AAED,mFAAmF;AACnF,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAGnF"}
|
package/dist/fixtures/index.js
CHANGED
|
@@ -33,6 +33,7 @@ export async function fixtureProject(id, options) {
|
|
|
33
33
|
source: loaded.entry.source,
|
|
34
34
|
tags: ['fixture', `family:${loaded.entry.family}`, `dialect:${loaded.dialect}`],
|
|
35
35
|
note: loaded.entry.note,
|
|
36
|
+
...(loaded.entry.guest_personas ? { personas: loaded.entry.guest_personas } : {}),
|
|
36
37
|
},
|
|
37
38
|
}),
|
|
38
39
|
read_only: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fixtures/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,2DAA2D;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAyD,MAAM,oBAAoB,CAAA;AACnG,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAqB,MAAM,mBAAmB,CAAA;AACnF,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAqB,MAAM,cAAc,CAAA;AAEvF,cAAc,cAAc,CAAA;AAgB5B,SAAS,UAAU;IACjB,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,QAAQ,GAAG,kBAAkB,GAAG,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AACrF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAU,EAAE,OAAqB;IACjE,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC,CAAA;IACzB,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,cAAc,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACnG,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;IAClF,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;IACvF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAqB;IACzD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAU,EAAE,OAAqB;IACpE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAC7C,OAAO;QACL,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC7B,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;gBAC3B,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,WAAW,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/E,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fixtures/index.ts"],"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
|
+
"version": "0.3.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",
|