@miadi/ncp-story-studio 0.1.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.
Files changed (126) hide show
  1. package/LICENSE +21 -0
  2. package/PHASES.md +160 -0
  3. package/README.md +140 -0
  4. package/assets/PROVENANCE.json +5 -0
  5. package/assets/examples/PROVENANCE.json +26 -0
  6. package/assets/examples/anora.json +228 -0
  7. package/assets/examples/example-story.json +112 -0
  8. package/assets/examples/the-shawshank-redemption.json +2068 -0
  9. package/assets/examples/weaver_of_words__the_catalyst_of_change_251101.json +1132 -0
  10. package/assets/ncp-schema.json +794 -0
  11. package/assets/terminology.json +2919 -0
  12. package/dist/agents/adapter.d.ts +60 -0
  13. package/dist/agents/adapter.d.ts.map +1 -0
  14. package/dist/agents/adapter.js +69 -0
  15. package/dist/agents/adapter.js.map +1 -0
  16. package/dist/agents/context.d.ts +19 -0
  17. package/dist/agents/context.d.ts.map +1 -0
  18. package/dist/agents/context.js +49 -0
  19. package/dist/agents/context.js.map +1 -0
  20. package/dist/agents/index.d.ts +5 -0
  21. package/dist/agents/index.d.ts.map +1 -0
  22. package/dist/agents/index.js +7 -0
  23. package/dist/agents/index.js.map +1 -0
  24. package/dist/agents/links.d.ts +41 -0
  25. package/dist/agents/links.d.ts.map +1 -0
  26. package/dist/agents/links.js +76 -0
  27. package/dist/agents/links.js.map +1 -0
  28. package/dist/agents/personas.d.ts +16 -0
  29. package/dist/agents/personas.d.ts.map +1 -0
  30. package/dist/agents/personas.js +34 -0
  31. package/dist/agents/personas.js.map +1 -0
  32. package/dist/fixtures/index.d.ts +27 -0
  33. package/dist/fixtures/index.d.ts.map +1 -0
  34. package/dist/fixtures/index.js +69 -0
  35. package/dist/fixtures/index.js.map +1 -0
  36. package/dist/graph/index.d.ts +60 -0
  37. package/dist/graph/index.d.ts.map +1 -0
  38. package/dist/graph/index.js +97 -0
  39. package/dist/graph/index.js.map +1 -0
  40. package/dist/graph/react/index.d.ts +2 -0
  41. package/dist/graph/react/index.d.ts.map +1 -0
  42. package/dist/graph/react/index.js +5 -0
  43. package/dist/graph/react/index.js.map +1 -0
  44. package/dist/graph/react/story-graph.d.ts +17 -0
  45. package/dist/graph/react/story-graph.d.ts.map +1 -0
  46. package/dist/graph/react/story-graph.js +26 -0
  47. package/dist/graph/react/story-graph.js.map +1 -0
  48. package/dist/graph/tones.d.ts +36 -0
  49. package/dist/graph/tones.d.ts.map +1 -0
  50. package/dist/graph/tones.js +38 -0
  51. package/dist/graph/tones.js.map +1 -0
  52. package/dist/index.d.ts +33 -0
  53. package/dist/index.d.ts.map +1 -0
  54. package/dist/index.js +24 -0
  55. package/dist/index.js.map +1 -0
  56. package/dist/schema/constants.d.ts +3 -0
  57. package/dist/schema/constants.d.ts.map +1 -0
  58. package/dist/schema/constants.js +3 -0
  59. package/dist/schema/constants.js.map +1 -0
  60. package/dist/schema/extensions.d.ts +14 -0
  61. package/dist/schema/extensions.d.ts.map +1 -0
  62. package/dist/schema/extensions.js +61 -0
  63. package/dist/schema/extensions.js.map +1 -0
  64. package/dist/schema/generated-terms.d.ts +7 -0
  65. package/dist/schema/generated-terms.d.ts.map +1 -0
  66. package/dist/schema/generated-terms.js +518 -0
  67. package/dist/schema/generated-terms.js.map +1 -0
  68. package/dist/schema/generated.d.ts +64 -0
  69. package/dist/schema/generated.d.ts.map +1 -0
  70. package/dist/schema/generated.js +497 -0
  71. package/dist/schema/generated.js.map +1 -0
  72. package/dist/schema/index.d.ts +48 -0
  73. package/dist/schema/index.d.ts.map +1 -0
  74. package/dist/schema/index.js +92 -0
  75. package/dist/schema/index.js.map +1 -0
  76. package/dist/schema/normalize.d.ts +20 -0
  77. package/dist/schema/normalize.d.ts.map +1 -0
  78. package/dist/schema/normalize.js +88 -0
  79. package/dist/schema/normalize.js.map +1 -0
  80. package/dist/schema/read.d.ts +31 -0
  81. package/dist/schema/read.d.ts.map +1 -0
  82. package/dist/schema/read.js +640 -0
  83. package/dist/schema/read.js.map +1 -0
  84. package/dist/schema/terms.d.ts +11 -0
  85. package/dist/schema/terms.d.ts.map +1 -0
  86. package/dist/schema/terms.js +80 -0
  87. package/dist/schema/terms.js.map +1 -0
  88. package/dist/schema/types.d.ts +140 -0
  89. package/dist/schema/types.d.ts.map +1 -0
  90. package/dist/schema/types.js +2 -0
  91. package/dist/schema/types.js.map +1 -0
  92. package/dist/schema/validate.d.ts +54 -0
  93. package/dist/schema/validate.d.ts.map +1 -0
  94. package/dist/schema/validate.js +490 -0
  95. package/dist/schema/validate.js.map +1 -0
  96. package/dist/store/index.d.ts +76 -0
  97. package/dist/store/index.d.ts.map +1 -0
  98. package/dist/store/index.js +96 -0
  99. package/dist/store/index.js.map +1 -0
  100. package/dist/store/json.d.ts +35 -0
  101. package/dist/store/json.d.ts.map +1 -0
  102. package/dist/store/json.js +192 -0
  103. package/dist/store/json.js.map +1 -0
  104. package/dist/store/mutations.d.ts +45 -0
  105. package/dist/store/mutations.d.ts.map +1 -0
  106. package/dist/store/mutations.js +181 -0
  107. package/dist/store/mutations.js.map +1 -0
  108. package/dist/store/neon.d.ts +42 -0
  109. package/dist/store/neon.d.ts.map +1 -0
  110. package/dist/store/neon.js +167 -0
  111. package/dist/store/neon.js.map +1 -0
  112. package/dist/terminology/generated.d.ts +3 -0
  113. package/dist/terminology/generated.d.ts.map +1 -0
  114. package/dist/terminology/generated.js +2923 -0
  115. package/dist/terminology/generated.js.map +1 -0
  116. package/dist/terminology/index.d.ts +20 -0
  117. package/dist/terminology/index.d.ts.map +1 -0
  118. package/dist/terminology/index.js +71 -0
  119. package/dist/terminology/index.js.map +1 -0
  120. package/dist/terminology/types.d.ts +25 -0
  121. package/dist/terminology/types.d.ts.map +1 -0
  122. package/dist/terminology/types.js +2 -0
  123. package/dist/terminology/types.js.map +1 -0
  124. package/package.json +117 -0
  125. package/rispecs/README.rise.md +5 -0
  126. package/rispecs/RISPEC.md +9 -0
@@ -0,0 +1,167 @@
1
+ import { StoryStoreConflictError, StoryStoreReadOnlyError, summarizeProject, } from './index.js';
2
+ function iso(value) {
3
+ if (value instanceof Date)
4
+ return Number.isNaN(value.getTime()) ? EPOCH : value.toISOString();
5
+ if (typeof value === 'string') {
6
+ const parsed = new Date(value);
7
+ return Number.isNaN(parsed.getTime()) ? EPOCH : parsed.toISOString();
8
+ }
9
+ return EPOCH;
10
+ }
11
+ /** Stand-in timestamp for a row whose own value cannot be read. */
12
+ const EPOCH = '1970-01-01T00:00:00.000Z';
13
+ function asJson(value) {
14
+ if (value === null || value === undefined)
15
+ return undefined;
16
+ return typeof value === 'string' ? JSON.parse(value) : value;
17
+ }
18
+ function rowToProject(row) {
19
+ const meta = asJson(row.meta);
20
+ const readOnly = meta?.['read_only'] === true;
21
+ return {
22
+ project_id: row.project_id,
23
+ document: asJson(row.document),
24
+ meta,
25
+ created_at: iso(row.created_at),
26
+ updated_at: iso(row.updated_at),
27
+ ...(readOnly ? { read_only: true } : {}),
28
+ };
29
+ }
30
+ function rowsOf(result) {
31
+ return Array.isArray(result) ? result : result.rows;
32
+ }
33
+ function safeTable(name) {
34
+ if (!/^[a-z_][a-z0-9_]{0,62}$/i.test(name))
35
+ throw new Error(`invalid table name \`${name}\``);
36
+ return name;
37
+ }
38
+ export class NeonStoryStore {
39
+ kind = 'neon';
40
+ table;
41
+ queryFn;
42
+ connectionString;
43
+ initialized = false;
44
+ /** Rows `list()` could not read, and why. */
45
+ unreadable = new Map();
46
+ /** What the last `list()` could not read. Empty when every row read cleanly. */
47
+ problems() {
48
+ return [...this.unreadable].map(([project_id, error]) => ({ project_id, error }));
49
+ }
50
+ constructor(options) {
51
+ this.table = safeTable(options.table ?? 'ncp_story_projects');
52
+ this.queryFn = options.query;
53
+ this.connectionString = options.connectionString;
54
+ if (!this.queryFn && !this.connectionString) {
55
+ throw new Error('NeonStoryStore needs a `connectionString` or a `query` function');
56
+ }
57
+ }
58
+ /** Host and database only: never the credentials. */
59
+ get location() {
60
+ if (!this.connectionString)
61
+ return `neon:${this.table}`;
62
+ try {
63
+ const url = new URL(this.connectionString);
64
+ return `neon:${url.host}${url.pathname}#${this.table}`;
65
+ }
66
+ catch {
67
+ return `neon:${this.table}`;
68
+ }
69
+ }
70
+ async query(text, values) {
71
+ if (!this.queryFn) {
72
+ // A literal specifier, so a bundler resolves it instead of failing at
73
+ // runtime with a message that blames a missing install.
74
+ let loaded;
75
+ try {
76
+ loaded = (await import('@neondatabase/serverless'));
77
+ }
78
+ catch (error) {
79
+ throw new Error('NeonStoryStore needs the optional peer dependency `@neondatabase/serverless`. Install it, or pass a `query` function.', { cause: error });
80
+ }
81
+ this.queryFn = loaded.neon(this.connectionString).query;
82
+ }
83
+ return rowsOf(await this.queryFn(text, values));
84
+ }
85
+ async init() {
86
+ if (this.initialized)
87
+ return;
88
+ await this.query(`CREATE TABLE IF NOT EXISTS ${this.table} (
89
+ project_id text PRIMARY KEY,
90
+ document jsonb NOT NULL,
91
+ meta jsonb,
92
+ created_at timestamptz NOT NULL DEFAULT now(),
93
+ updated_at timestamptz NOT NULL DEFAULT now()
94
+ )`);
95
+ this.initialized = true;
96
+ }
97
+ async list() {
98
+ await this.init();
99
+ const rows = await this.query(`SELECT project_id, document, meta, created_at, updated_at FROM ${this.table} ORDER BY updated_at DESC`);
100
+ const summaries = [];
101
+ for (const row of rows) {
102
+ try {
103
+ summaries.push(summarizeProject(rowToProject(row)));
104
+ }
105
+ catch (error) {
106
+ this.unreadable.set(row.project_id, error instanceof Error ? error.message : String(error));
107
+ }
108
+ }
109
+ return summaries;
110
+ }
111
+ async get(projectId) {
112
+ await this.init();
113
+ const rows = await this.query(`SELECT project_id, document, meta, created_at, updated_at FROM ${this.table} WHERE project_id = $1 LIMIT 1`, [projectId]);
114
+ const row = rows[0];
115
+ return row ? rowToProject(row) : undefined;
116
+ }
117
+ /**
118
+ * The version guard is part of the statement, not a read before it: the
119
+ * `ON CONFLICT` update only fires while the stored `updated_at` still matches,
120
+ * so two concurrent writers cannot both succeed.
121
+ */
122
+ async save(project, options) {
123
+ await this.init();
124
+ const existing = options?.expected_updated_at ? await this.get(project.project_id) : undefined;
125
+ if (existing?.read_only)
126
+ throw new StoryStoreReadOnlyError(project.project_id);
127
+ if (options?.expected_updated_at && existing && existing.updated_at !== options.expected_updated_at) {
128
+ throw new StoryStoreConflictError(project.project_id, options.expected_updated_at, existing.updated_at);
129
+ }
130
+ const meta = project.read_only ? { ...(project.meta ?? {}), read_only: true } : project.meta;
131
+ const guarded = options?.expected_updated_at !== undefined;
132
+ const rows = await this.query(`INSERT INTO ${this.table} (project_id, document, meta, created_at, updated_at)
133
+ VALUES ($1, $2::jsonb, $3::jsonb, $4, now())
134
+ ON CONFLICT (project_id) DO UPDATE SET
135
+ document = EXCLUDED.document,
136
+ meta = EXCLUDED.meta,
137
+ updated_at = now()
138
+ ${guarded ? `WHERE ${this.table}.updated_at = $5::timestamptz` : ''}
139
+ RETURNING project_id, document, meta, created_at, updated_at`, guarded
140
+ ? [
141
+ project.project_id,
142
+ JSON.stringify(project.document),
143
+ meta ? JSON.stringify(meta) : null,
144
+ project.created_at,
145
+ options?.expected_updated_at,
146
+ ]
147
+ : [project.project_id, JSON.stringify(project.document), meta ? JSON.stringify(meta) : null, project.created_at]);
148
+ const row = rows[0];
149
+ if (!row) {
150
+ if (guarded) {
151
+ const current = await this.get(project.project_id);
152
+ throw new StoryStoreConflictError(project.project_id, options?.expected_updated_at, current?.updated_at ?? 'gone');
153
+ }
154
+ throw new Error(`save returned no row for project \`${project.project_id}\``);
155
+ }
156
+ return rowToProject(row);
157
+ }
158
+ async remove(projectId) {
159
+ await this.init();
160
+ const existing = await this.get(projectId);
161
+ if (existing?.read_only)
162
+ throw new StoryStoreReadOnlyError(projectId);
163
+ const rows = await this.query(`DELETE FROM ${this.table} WHERE project_id = $1 RETURNING project_id`, [projectId]);
164
+ return rows.length > 0;
165
+ }
166
+ }
167
+ //# sourceMappingURL=neon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"neon.js","sourceRoot":"","sources":["../../src/store/neon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { TerminologyIndex } from './types.js';
2
+ export declare const TERMINOLOGY: TerminologyIndex;
3
+ //# sourceMappingURL=generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../src/terminology/generated.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,eAAO,MAAM,WAAW,EAAE,gBAs2FL,CAAA"}