@graview/core 0.1.20 → 0.1.22

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 (196) hide show
  1. package/README.md +28 -0
  2. package/dist/blocks.d.ts +3 -0
  3. package/dist/blocks.d.ts.map +1 -1
  4. package/dist/blocks.js +2 -0
  5. package/dist/blocks.js.map +1 -1
  6. package/dist/capabilities.js +1 -1
  7. package/dist/capabilities.js.map +1 -1
  8. package/dist/cli/check/computed.d.ts +4 -2
  9. package/dist/cli/check/computed.d.ts.map +1 -1
  10. package/dist/cli/check/computed.js +7 -4
  11. package/dist/cli/check/computed.js.map +1 -1
  12. package/dist/cli/check/lenses.d.ts.map +1 -1
  13. package/dist/cli/check/lenses.js +4 -2
  14. package/dist/cli/check/lenses.js.map +1 -1
  15. package/dist/cli/check/policy.d.ts.map +1 -1
  16. package/dist/cli/check/policy.js +12 -4
  17. package/dist/cli/check/policy.js.map +1 -1
  18. package/dist/cli/check/relations.d.ts +0 -11
  19. package/dist/cli/check/relations.d.ts.map +1 -1
  20. package/dist/cli/check/relations.js +21 -46
  21. package/dist/cli/check/relations.js.map +1 -1
  22. package/dist/cli/check/views.d.ts.map +1 -1
  23. package/dist/cli/check/views.js +3 -2
  24. package/dist/cli/check/views.js.map +1 -1
  25. package/dist/cli/check.d.ts.map +1 -1
  26. package/dist/cli/check.js +1 -2
  27. package/dist/cli/check.js.map +1 -1
  28. package/dist/cli/describe.d.ts.map +1 -1
  29. package/dist/cli/describe.js +23 -2
  30. package/dist/cli/describe.js.map +1 -1
  31. package/dist/cli/doctor.d.ts +34 -0
  32. package/dist/cli/doctor.d.ts.map +1 -0
  33. package/dist/cli/doctor.js +346 -0
  34. package/dist/cli/doctor.js.map +1 -0
  35. package/dist/cli/document-schema.d.ts +6 -0
  36. package/dist/cli/document-schema.d.ts.map +1 -0
  37. package/dist/cli/document-schema.js +55 -0
  38. package/dist/cli/document-schema.js.map +1 -0
  39. package/dist/cli/index.d.ts +3 -1
  40. package/dist/cli/index.d.ts.map +1 -1
  41. package/dist/cli/index.js +41 -2
  42. package/dist/cli/index.js.map +1 -1
  43. package/dist/cli/types.d.ts +12 -0
  44. package/dist/cli/types.d.ts.map +1 -0
  45. package/dist/cli/types.js +95 -0
  46. package/dist/cli/types.js.map +1 -0
  47. package/dist/conformance/fixtures.d.ts.map +1 -1
  48. package/dist/conformance/fixtures.js +6 -3
  49. package/dist/conformance/fixtures.js.map +1 -1
  50. package/dist/describe.d.ts +3 -1
  51. package/dist/describe.d.ts.map +1 -1
  52. package/dist/describe.js +9 -0
  53. package/dist/describe.js.map +1 -1
  54. package/dist/document/block-context.d.ts +50 -0
  55. package/dist/document/block-context.d.ts.map +1 -0
  56. package/dist/document/block-context.js +69 -0
  57. package/dist/document/block-context.js.map +1 -0
  58. package/dist/document/blocks.d.ts +24 -10
  59. package/dist/document/blocks.d.ts.map +1 -1
  60. package/dist/document/blocks.js +50 -39
  61. package/dist/document/blocks.js.map +1 -1
  62. package/dist/document/compile-checked.d.ts.map +1 -1
  63. package/dist/document/compile-checked.js +6 -3
  64. package/dist/document/compile-checked.js.map +1 -1
  65. package/dist/document/compile.d.ts +1 -1
  66. package/dist/document/compile.d.ts.map +1 -1
  67. package/dist/document/compile.js +8 -3
  68. package/dist/document/compile.js.map +1 -1
  69. package/dist/document/compiled.d.ts +2 -0
  70. package/dist/document/compiled.d.ts.map +1 -1
  71. package/dist/document/compiled.js +31 -27
  72. package/dist/document/compiled.js.map +1 -1
  73. package/dist/document/computed-values.d.ts +6 -1
  74. package/dist/document/computed-values.d.ts.map +1 -1
  75. package/dist/document/computed-values.js +7 -4
  76. package/dist/document/computed-values.js.map +1 -1
  77. package/dist/document/computed.d.ts +21 -0
  78. package/dist/document/computed.d.ts.map +1 -1
  79. package/dist/document/computed.js +54 -4
  80. package/dist/document/computed.js.map +1 -1
  81. package/dist/document/describe-place.d.ts +15 -0
  82. package/dist/document/describe-place.d.ts.map +1 -1
  83. package/dist/document/describe-place.js +33 -28
  84. package/dist/document/describe-place.js.map +1 -1
  85. package/dist/document/diff.d.ts.map +1 -1
  86. package/dist/document/diff.js +22 -0
  87. package/dist/document/diff.js.map +1 -1
  88. package/dist/document/edit.d.ts.map +1 -1
  89. package/dist/document/edit.js +34 -0
  90. package/dist/document/edit.js.map +1 -1
  91. package/dist/document/expr/evaluate.d.ts +7 -1
  92. package/dist/document/expr/evaluate.d.ts.map +1 -1
  93. package/dist/document/expr/evaluate.js +19 -5
  94. package/dist/document/expr/evaluate.js.map +1 -1
  95. package/dist/document/expr/index.d.ts +1 -1
  96. package/dist/document/expr/index.d.ts.map +1 -1
  97. package/dist/document/expr/index.js +1 -1
  98. package/dist/document/expr/index.js.map +1 -1
  99. package/dist/document/expr/parse.js +1 -1
  100. package/dist/document/expr/parse.js.map +1 -1
  101. package/dist/document/fact-values.d.ts +21 -0
  102. package/dist/document/fact-values.d.ts.map +1 -0
  103. package/dist/document/fact-values.js +24 -0
  104. package/dist/document/fact-values.js.map +1 -0
  105. package/dist/document/facts-and-roles.d.ts +17 -0
  106. package/dist/document/facts-and-roles.d.ts.map +1 -0
  107. package/dist/document/facts-and-roles.js +75 -0
  108. package/dist/document/facts-and-roles.js.map +1 -0
  109. package/dist/document/resolve-for.d.ts +29 -0
  110. package/dist/document/resolve-for.d.ts.map +1 -0
  111. package/dist/document/resolve-for.js +23 -0
  112. package/dist/document/resolve-for.js.map +1 -0
  113. package/dist/document/respell.js +2 -2
  114. package/dist/document/respell.js.map +1 -1
  115. package/dist/document/rule-line.d.ts.map +1 -1
  116. package/dist/document/rule-line.js +6 -2
  117. package/dist/document/rule-line.js.map +1 -1
  118. package/dist/document/rules.d.ts.map +1 -1
  119. package/dist/document/rules.js +5 -1
  120. package/dist/document/rules.js.map +1 -1
  121. package/dist/document/schema.d.ts +8 -0
  122. package/dist/document/schema.d.ts.map +1 -1
  123. package/dist/document/schema.js +20 -3
  124. package/dist/document/schema.js.map +1 -1
  125. package/dist/document/to-document.d.ts.map +1 -1
  126. package/dist/document/to-document.js +2 -0
  127. package/dist/document/to-document.js.map +1 -1
  128. package/dist/document/views.d.ts +15 -1
  129. package/dist/document/views.d.ts.map +1 -1
  130. package/dist/document/views.js +82 -34
  131. package/dist/document/views.js.map +1 -1
  132. package/dist/document.schema.json +1655 -0
  133. package/dist/index.d.ts +1 -9
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +2 -5
  136. package/dist/index.js.map +1 -1
  137. package/dist/invariants/engine.d.ts +13 -0
  138. package/dist/invariants/engine.d.ts.map +1 -1
  139. package/dist/invariants/engine.js +16 -1
  140. package/dist/invariants/engine.js.map +1 -1
  141. package/dist/invariants/types.d.ts +7 -4
  142. package/dist/invariants/types.d.ts.map +1 -1
  143. package/dist/lines.d.ts +23 -3
  144. package/dist/lines.d.ts.map +1 -1
  145. package/dist/lines.js +38 -6
  146. package/dist/lines.js.map +1 -1
  147. package/dist/places.d.ts.map +1 -1
  148. package/dist/places.js +1 -1
  149. package/dist/places.js.map +1 -1
  150. package/dist/scaffold/project.d.ts.map +1 -1
  151. package/dist/scaffold/project.js +5 -0
  152. package/dist/scaffold/project.js.map +1 -1
  153. package/dist/schema/define-node.d.ts.map +1 -1
  154. package/dist/schema/define-node.js +6 -4
  155. package/dist/schema/define-node.js.map +1 -1
  156. package/dist/schema/schema.d.ts +10 -2
  157. package/dist/schema/schema.d.ts.map +1 -1
  158. package/dist/schema/schema.js +4 -1
  159. package/dist/schema/schema.js.map +1 -1
  160. package/dist/seen.d.ts.map +1 -1
  161. package/dist/seen.js +5 -2
  162. package/dist/seen.js.map +1 -1
  163. package/dist/snapshot.d.ts +67 -0
  164. package/dist/snapshot.d.ts.map +1 -0
  165. package/dist/snapshot.js +181 -0
  166. package/dist/snapshot.js.map +1 -0
  167. package/dist/store.d.ts +32 -2
  168. package/dist/store.d.ts.map +1 -1
  169. package/dist/store.js +48 -35
  170. package/dist/store.js.map +1 -1
  171. package/dist/sync/engine.d.ts +93 -9
  172. package/dist/sync/engine.d.ts.map +1 -1
  173. package/dist/sync/engine.js +357 -48
  174. package/dist/sync/engine.js.map +1 -1
  175. package/dist/sync/index.d.ts +11 -0
  176. package/dist/sync/index.d.ts.map +1 -0
  177. package/dist/sync/index.js +15 -0
  178. package/dist/sync/index.js.map +1 -0
  179. package/dist/sync/mcp.d.ts +124 -0
  180. package/dist/sync/mcp.d.ts.map +1 -0
  181. package/dist/sync/mcp.js +247 -0
  182. package/dist/sync/mcp.js.map +1 -0
  183. package/dist/sync/types.d.ts +35 -0
  184. package/dist/sync/types.d.ts.map +1 -1
  185. package/dist/sync/types.js.map +1 -1
  186. package/dist/testing.d.ts +30 -0
  187. package/dist/testing.d.ts.map +1 -1
  188. package/dist/testing.js +38 -0
  189. package/dist/testing.js.map +1 -1
  190. package/dist/typed.d.ts +267 -0
  191. package/dist/typed.d.ts.map +1 -0
  192. package/dist/typed.js +35 -0
  193. package/dist/typed.js.map +1 -0
  194. package/dist/version.d.ts +1 -1
  195. package/dist/version.js +1 -1
  196. package/package.json +16 -3
@@ -0,0 +1,181 @@
1
+ /** The first line of every snapshot in the line format. */
2
+ export const SNAPSHOT_FORMAT = 2;
3
+ const encoder = new TextEncoder();
4
+ const byteLength = (text) => encoder.encode(text).length;
5
+ function counted(items, key) {
6
+ const counts = {};
7
+ for (const item of items)
8
+ counts[key(item)] = (counts[key(item)] ?? 0) + 1;
9
+ return counts;
10
+ }
11
+ /**
12
+ * A graph as a snapshot file: the header, each kind's records together in
13
+ * the order they first appear, then the links. `generatedAt` defaults to now.
14
+ */
15
+ export function writeSnapshot(snapshot, options = {}) {
16
+ const byKind = new Map();
17
+ for (const node of snapshot.nodes) {
18
+ const lines = byKind.get(node.kind) ?? [];
19
+ lines.push(JSON.stringify(node));
20
+ byKind.set(node.kind, lines);
21
+ }
22
+ const groups = [...byKind, [null, snapshot.edges.map((edge) => JSON.stringify(edge))]];
23
+ const parts = [];
24
+ let line = 0;
25
+ let at = 0;
26
+ for (const [kind, lines] of groups) {
27
+ const bytes = lines.reduce((sum, text) => sum + byteLength(text) + 1, 0);
28
+ parts.push({ kind, line, lines: lines.length, at, bytes });
29
+ line += lines.length;
30
+ at += bytes;
31
+ }
32
+ const generatedAt = options.generatedAt ?? new Date();
33
+ const header = {
34
+ graview: "snapshot",
35
+ format: SNAPSHOT_FORMAT,
36
+ generatedAt: typeof generatedAt === "string" ? generatedAt : generatedAt.toISOString(),
37
+ kinds: Object.fromEntries([...byKind].map(([kind, lines]) => [kind, lines.length])),
38
+ edges: counted(snapshot.edges, (edge) => edge.kind),
39
+ parts,
40
+ };
41
+ return [JSON.stringify(header), ...groups.flatMap(([, lines]) => lines)].join("\n") + "\n";
42
+ }
43
+ function isHeader(value) {
44
+ return typeof value === "object" && value !== null && value.graview === "snapshot";
45
+ }
46
+ /** An old `{ nodes, edges }` file, said as a header. */
47
+ function legacy(value) {
48
+ const parsed = value;
49
+ if (typeof parsed !== "object" || parsed === null || !Array.isArray(parsed.nodes) || !Array.isArray(parsed.edges)) {
50
+ throw new Error('This is not a graph snapshot: it needs a snapshot header line, or "nodes" and "edges" arrays.');
51
+ }
52
+ const header = {
53
+ graview: "snapshot",
54
+ format: 1,
55
+ ...(typeof parsed.generatedAt === "string" ? { generatedAt: parsed.generatedAt } : {}),
56
+ kinds: counted(parsed.nodes, (node) => node.kind),
57
+ edges: counted(parsed.edges, (edge) => edge.kind),
58
+ parts: [],
59
+ };
60
+ return { header, snapshot: { nodes: parsed.nodes, edges: parsed.edges } };
61
+ }
62
+ function firstLine(text) {
63
+ const end = text.indexOf("\n");
64
+ return end === -1 ? text : text.slice(0, end);
65
+ }
66
+ function parseHeader(line) {
67
+ try {
68
+ const value = JSON.parse(line);
69
+ if (!isHeader(value))
70
+ return undefined;
71
+ if (value.format > SNAPSHOT_FORMAT) {
72
+ throw new Error(`This snapshot is in format ${value.format}, newer than this framework reads (${SNAPSHOT_FORMAT}).`);
73
+ }
74
+ return value;
75
+ }
76
+ catch (error) {
77
+ if (error instanceof SyntaxError)
78
+ return undefined;
79
+ throw error;
80
+ }
81
+ }
82
+ /** Keeps the records of the asked kinds, and the links whose both ends are kept. */
83
+ function narrowed(snapshot, kinds) {
84
+ if (!kinds)
85
+ return snapshot;
86
+ const nodes = snapshot.nodes.filter((node) => kinds.includes(node.kind));
87
+ const ids = new Set(nodes.map((node) => node.id));
88
+ return { nodes, edges: snapshot.edges.filter((edge) => ids.has(edge.from) && ids.has(edge.to)) };
89
+ }
90
+ /** What a snapshot says about itself, read from its first line alone (an old file is read whole). */
91
+ export function readSnapshotHeader(text) {
92
+ return parseHeader(firstLine(text)) ?? legacy(JSON.parse(text)).header;
93
+ }
94
+ /**
95
+ * A snapshot file, read: the line format or an old `{ nodes, edges }`. With
96
+ * `kinds`, only those kinds' lines are parsed — the rest are skipped by the
97
+ * header's line counts, never read as JSON.
98
+ */
99
+ export function readSnapshot(text, options = {}) {
100
+ const header = parseHeader(firstLine(text));
101
+ if (!header) {
102
+ const file = legacy(JSON.parse(text));
103
+ return { header: file.header, snapshot: narrowed(file.snapshot, options.kinds) };
104
+ }
105
+ const lines = text.split("\n");
106
+ const nodes = [];
107
+ let edges = [];
108
+ for (const part of header.parts) {
109
+ if (part.kind !== null && options.kinds && !options.kinds.includes(part.kind))
110
+ continue;
111
+ const body = lines.slice(1 + part.line, 1 + part.line + part.lines).map((line) => JSON.parse(line));
112
+ if (part.kind === null)
113
+ edges = body;
114
+ else
115
+ nodes.push(...body);
116
+ }
117
+ return { header, snapshot: narrowed({ nodes, edges }, options.kinds) };
118
+ }
119
+ /**
120
+ * A SNAPSHOT FETCHED A KIND AT A TIME. With `kinds`, the header is fetched
121
+ * first and then only those kinds' bytes and the links', by range; a server
122
+ * that does not serve ranges answers with the whole file, which is read as
123
+ * a whole and narrowed. Without `kinds`, the whole file. An old file is
124
+ * read whole either way.
125
+ */
126
+ export async function fetchSnapshot(url, options = {}) {
127
+ const send = options.fetch ?? ((input, init) => fetch(input, init));
128
+ const get = async (range) => {
129
+ const response = await send(url, {
130
+ ...options.init,
131
+ ...(range ? { headers: { ...options.init?.headers, range } } : {}),
132
+ });
133
+ if (!response.ok)
134
+ throw new Error(`The snapshot at ${url} answered ${response.status}.`);
135
+ return response;
136
+ };
137
+ const whole = async () => readSnapshot(await (await get()).text(), options);
138
+ if (!options.kinds)
139
+ return whole();
140
+ const first = await get(`bytes=0-${(options.headerBytes ?? 65_536) - 1}`);
141
+ const opened = await first.text();
142
+ if (first.status !== 206)
143
+ return readSnapshot(opened, options);
144
+ const end = opened.indexOf("\n");
145
+ const header = end === -1 ? undefined : parseHeader(opened.slice(0, end));
146
+ if (!header)
147
+ return whole();
148
+ const start = byteLength(opened.slice(0, end)) + 1;
149
+ const wanted = header.parts.filter((part) => part.bytes > 0 && (part.kind === null || options.kinds.includes(part.kind)));
150
+ // Neighboring parts in one request: the body keeps a kind's lines together, so two kinds side by side are one range.
151
+ const ranges = [];
152
+ for (const part of wanted) {
153
+ const last = ranges[ranges.length - 1];
154
+ if (last && last.to === part.at) {
155
+ last.to = part.at + part.bytes;
156
+ last.parts.push(part);
157
+ }
158
+ else
159
+ ranges.push({ from: part.at, to: part.at + part.bytes, parts: [part] });
160
+ }
161
+ const nodes = [];
162
+ const edges = [];
163
+ for (const range of ranges) {
164
+ const response = await get(`bytes=${start + range.from}-${start + range.to - 1}`);
165
+ const text = await response.text();
166
+ if (response.status !== 206)
167
+ return readSnapshot(text, options);
168
+ const lines = text.split("\n");
169
+ let at = 0;
170
+ for (const part of range.parts) {
171
+ const records = lines.slice(at, at + part.lines).map((line) => JSON.parse(line));
172
+ at += part.lines;
173
+ if (part.kind === null)
174
+ edges.push(...records);
175
+ else
176
+ nodes.push(...records);
177
+ }
178
+ }
179
+ return { header, snapshot: narrowed({ nodes, edges }, options.kinds) };
180
+ }
181
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -110,6 +110,13 @@ export interface StoreOptions<S extends AnySchema> {
110
110
  * wall in the same way, and an app should not have to remember.
111
111
  */
112
112
  readonly intelligence?: readonly IntelligenceProviderDeclaration[];
113
+ /**
114
+ * WHO ACTS WHEN A CHANGE NAMES NOBODY: the reader of this page, so what
115
+ * they do is attributed to them in the log rather than to "a person".
116
+ * An apply or an undo that names its author still says its own. Absent,
117
+ * a person with no name.
118
+ */
119
+ readonly principal?: Author | Principal;
113
120
  }
114
121
  export interface ApplyOptions {
115
122
  /**
@@ -230,8 +237,28 @@ export interface AppendOp {
230
237
  }
231
238
  /** Who turns a module off or on: the workspace itself, `system · modules` (FR-12). */
232
239
  export declare const MODULES_AUTHOR: Author;
233
- /** A violation's identity across judgments: the rule, what it is about, and what it says. */
234
- export declare function violationKey(v: Violation): string;
240
+ /**
241
+ * A violation's identity across judgments: the rule, what it is about, and
242
+ * what it says. A rule that says its line breaks once per record, so with
243
+ * a line it is the rule and the record: the values the line found, which
244
+ * an act that leaves the rule broken may change, are not who it is (FR-159).
245
+ * `shaped` names those rules for a judgment that has no lines yet — the
246
+ * words not fetched, or one that could not be worked out — so a problem is
247
+ * the same problem before the words arrive and after (`shapedRules`).
248
+ */
249
+ export declare function violationKey(v: Violation, shaped?: ReadonlySet<string>): string;
250
+ /** The rules that have a shape, by name: what `violationKey` keys by the rule and the record. */
251
+ export declare const shapedRules: (rules: readonly Pick<InvariantDefinition, "name" | "shape">[]) => ReadonlySet<string>;
252
+ /**
253
+ * WHAT A CHANGE BROKE AND MENDED: the problems after it that were not
254
+ * before, and those before that are not after, each known by its
255
+ * `violationKey` — a problem judged before the words arrived is the same
256
+ * problem after.
257
+ */
258
+ export declare function problemsMoved(rules: readonly Pick<InvariantDefinition, "name" | "shape">[], before: readonly Violation[], after: readonly Violation[]): {
259
+ introduces: Violation[];
260
+ resolves: Violation[];
261
+ };
235
262
  /**
236
263
  * The unit of the framework an app holds: a graph, the log it folds from,
237
264
  * the mutations that may touch it and the invariants that judge it.
@@ -334,6 +361,7 @@ export declare class Store<S extends AnySchema> {
334
361
  readonly intelligence: readonly IntelligenceProviderDeclaration[];
335
362
  /** What each declared agent may do, by provider name. */
336
363
  private readonly may;
364
+ private readonly by;
337
365
  private readonly declaredModules;
338
366
  private readonly startingModules;
339
367
  /** The projection, and the log it was read from: its length and its last op. */
@@ -391,6 +419,8 @@ export declare class Store<S extends AnySchema> {
391
419
  allMutations(): AnyMutationDefinition<S>[];
392
420
  /** The declared acts a derived act resolves its permission through. */
393
421
  private viaOf;
422
+ /** What a change broke and mended, by this store's rules (`problemsMoved`). */
423
+ private moved;
394
424
  allInvariants(): readonly InvariantDefinition<S>[];
395
425
  /**
396
426
  * An invariant is off when its module is, and also when it is scoped to a
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/dist/store.js CHANGED
@@ -18,6 +18,7 @@ import { PermissionDeniedError } from "./permissions/types.js";
18
18
  import { checkUndo, UndoBlockedError, undoPrimitives } from "./ops/undo.js";
19
19
  import { validateGraph } from "./validate-graph.js";
20
20
  import { tellTheWatchItsNames, tellTheWatchOfAStore, tellTheWatchOfAnAuthor, tellTheWatchOfARefusal } from "./watched.js";
21
+ import { capitalize } from "./capital.js";
21
22
  import { pluralOf } from "./schema/define-node.js";
22
23
  /** The batch a preview's ops are under when it was given none: no store mints it. */
23
24
  export const PREVIEW_BATCH = "preview";
@@ -38,9 +39,32 @@ export const MODULES_AUTHOR = { kind: "system", id: "modules", name: "Modules" }
38
39
  * refused, and says why.
39
40
  */
40
41
  const putsBack = (op) => op.mutation === null && op.undoes === undefined;
41
- /** A violation's identity across judgments: the rule, what it is about, and what it says. */
42
- export function violationKey(v) {
43
- return `${v.invariant}|${v.subjectId ?? ""}|${v.message}`;
42
+ /**
43
+ * A violation's identity across judgments: the rule, what it is about, and
44
+ * what it says. A rule that says its line breaks once per record, so with
45
+ * a line it is the rule and the record: the values the line found, which
46
+ * an act that leaves the rule broken may change, are not who it is (FR-159).
47
+ * `shaped` names those rules for a judgment that has no lines yet — the
48
+ * words not fetched, or one that could not be worked out — so a problem is
49
+ * the same problem before the words arrive and after (`shapedRules`).
50
+ */
51
+ export function violationKey(v, shaped) {
52
+ return `${v.invariant}|${v.subjectId ?? ""}|${v.line || shaped?.has(v.invariant) ? v.label : v.message}`;
53
+ }
54
+ /** The rules that have a shape, by name: what `violationKey` keys by the rule and the record. */
55
+ export const shapedRules = (rules) => new Set(rules.filter((rule) => rule.shape).map((rule) => rule.name));
56
+ /**
57
+ * WHAT A CHANGE BROKE AND MENDED: the problems after it that were not
58
+ * before, and those before that are not after, each known by its
59
+ * `violationKey` — a problem judged before the words arrived is the same
60
+ * problem after.
61
+ */
62
+ export function problemsMoved(rules, before, after) {
63
+ const shaped = shapedRules(rules);
64
+ const key = (v) => violationKey(v, shaped);
65
+ const was = new Set(before.map(key));
66
+ const is = new Set(after.map(key));
67
+ return { introduces: after.filter((v) => !was.has(key(v))), resolves: before.filter((v) => !is.has(key(v))) };
44
68
  }
45
69
  /**
46
70
  * The unit of the framework an app holds: a graph, the log it folds from,
@@ -111,6 +135,7 @@ export class Store {
111
135
  intelligence;
112
136
  /** What each declared agent may do, by provider name. */
113
137
  may = new Map();
138
+ by;
114
139
  declaredModules;
115
140
  startingModules;
116
141
  /** The projection, and the log it was read from: its length and its last op. */
@@ -139,6 +164,7 @@ export class Store {
139
164
  this.invariants = options.invariants ?? [];
140
165
  this.invariantOptions = options.invariantOptions ?? {};
141
166
  this.policy = options.policy;
167
+ this.by = options.principal ?? HUMAN;
142
168
  this.intelligence = options.intelligence ?? [];
143
169
  for (const provider of options.intelligence ?? []) {
144
170
  if (provider.may)
@@ -171,23 +197,18 @@ export class Store {
171
197
  }
172
198
  tellTheWatchItsNames(options.schema, this.mutations.values(), options.policy);
173
199
  const horizon = options.horizon !== undefined ? { horizon: options.horizon } : {};
174
- if (options.log && options.snapshot) {
175
- // Hydrate: the graph as stored, the history as recorded.
176
- this.log = OperationLog.from(options.log, options.epochs, horizon);
177
- this.graph = Graph.from(options.schema, options.snapshot, {
178
- validate: options.validate ?? true,
179
- });
180
- }
181
- else if (options.log) {
200
+ const validate = { validate: this.validate };
201
+ if (options.log) {
202
+ // Hydrate: the history as recorded, and the graph as stored — or, with none stored, folded from the history.
182
203
  this.log = OperationLog.from(options.log, options.epochs, horizon);
183
204
  const last = this.log.lastEpoch();
184
- this.graph = this.log.fold(options.schema, { validate: options.validate ?? true, ...(last ? { from: last } : {}) });
205
+ this.graph = options.snapshot
206
+ ? Graph.from(options.schema, options.snapshot, validate)
207
+ : this.log.fold(options.schema, { ...validate, ...(last ? { from: last } : {}) });
185
208
  }
186
209
  else {
187
210
  this.log = OperationLog.from([], options.epochs ?? (options.snapshot ? [{ seq: options.horizon ?? 0, base: options.snapshot }] : []), horizon);
188
- this.graph = Graph.from(options.schema, options.snapshot ?? { nodes: [], edges: [] }, {
189
- validate: options.validate ?? true,
190
- });
211
+ this.graph = Graph.from(options.schema, options.snapshot ?? { nodes: [], edges: [] }, validate);
191
212
  }
192
213
  /*
193
214
  * A HYDRATED STORE COUNTS ON FROM WHERE THE LOG LEFT OFF.
@@ -283,7 +304,7 @@ export class Store {
283
304
  seq: this.log.length,
284
305
  batch: options.batch ?? this.mintBatch("batch"),
285
306
  author: MODULES_AUTHOR,
286
- intent: said.charAt(0).toUpperCase() + said.slice(1),
307
+ intent: capitalize(said),
287
308
  mutation: null,
288
309
  primitives: [],
289
310
  inverse: [],
@@ -324,6 +345,10 @@ export class Store {
324
345
  return undefined;
325
346
  return derivedVia(this.schema, [...this.mutations.values()], mutation);
326
347
  }
348
+ /** What a change broke and mended, by this store's rules (`problemsMoved`). */
349
+ moved(before, after) {
350
+ return problemsMoved(this.allInvariants(), before, after);
351
+ }
327
352
  allInvariants() {
328
353
  return this.invariants.filter((invariant) => this.invariantEnabled(invariant));
329
354
  }
@@ -740,16 +765,13 @@ export class Store {
740
765
  ...this.invariantOptions,
741
766
  ...(meta.context === undefined ? {} : { context: meta.context }),
742
767
  });
743
- const beforeKeys = new Set(before.map(violationKey));
744
- const afterKeys = new Set(after.map(violationKey));
745
768
  return {
746
769
  diff,
747
770
  primitives,
748
771
  reads: meta.reads,
749
772
  writes: meta.writes,
750
773
  intent: meta.intent,
751
- introduces: after.filter((v) => !beforeKeys.has(violationKey(v))),
752
- resolves: before.filter((v) => !afterKeys.has(violationKey(v))),
774
+ ...this.moved(before, after),
753
775
  violationsAfter: after,
754
776
  };
755
777
  }
@@ -768,7 +790,7 @@ export class Store {
768
790
  */
769
791
  applying(calls, options, context) {
770
792
  const batch = options.batch ?? this.mintBatch("batch");
771
- const author = options.author ?? HUMAN;
793
+ const author = options.author ?? this.by;
772
794
  const ops = [];
773
795
  const allPrimitives = [];
774
796
  const reads = new Set();
@@ -884,8 +906,6 @@ export class Store {
884
906
  const diff = diffSnapshots(rollback, this.graph.snapshot());
885
907
  this.admitted(options, ops, allPrimitives, diff, rollback, kept);
886
908
  const after = this.violations(context);
887
- const beforeKeys = new Set(before.map(violationKey));
888
- const afterKeys = new Set(after.map(violationKey));
889
909
  this.notify(diff, ops);
890
910
  return {
891
911
  batch,
@@ -895,8 +915,7 @@ export class Store {
895
915
  reads: [...reads],
896
916
  writes: [...writes],
897
917
  intent: options.intent ?? intents.join("; "),
898
- introduces: after.filter((v) => !beforeKeys.has(violationKey(v))),
899
- resolves: before.filter((v) => !afterKeys.has(violationKey(v))),
918
+ ...this.moved(before, after),
900
919
  violationsAfter: after,
901
920
  };
902
921
  }
@@ -1044,7 +1063,7 @@ export class Store {
1044
1063
  */
1045
1064
  applyPrimitives(primitives, options = {}) {
1046
1065
  const batch = options.batch ?? this.mintBatch("batch");
1047
- const author = options.author ?? HUMAN;
1066
+ const author = options.author ?? this.by;
1048
1067
  const before = this.violations();
1049
1068
  const rollback = this.graph.snapshot();
1050
1069
  const intent = options.intent ?? "Apply a change";
@@ -1071,8 +1090,6 @@ export class Store {
1071
1090
  tellTheWatchOfAnAuthor(author.id);
1072
1091
  }
1073
1092
  const after = this.violations();
1074
- const beforeKeys = new Set(before.map(violationKey));
1075
- const afterKeys = new Set(after.map(violationKey));
1076
1093
  const diff = diffSnapshots(rollback, this.graph.snapshot());
1077
1094
  this.notify(diff, ops);
1078
1095
  return {
@@ -1083,8 +1100,7 @@ export class Store {
1083
1100
  reads: [],
1084
1101
  writes: ops[0]?.writes ?? [],
1085
1102
  intent,
1086
- introduces: after.filter((v) => !beforeKeys.has(violationKey(v))),
1087
- resolves: before.filter((v) => !afterKeys.has(violationKey(v))),
1103
+ ...this.moved(before, after),
1088
1104
  violationsAfter: after,
1089
1105
  };
1090
1106
  }
@@ -1142,7 +1158,7 @@ export class Store {
1142
1158
  /** `undo` itself, kept apart for the same reason as `applying`. */
1143
1159
  undoing(batchIds, options) {
1144
1160
  const ids = typeof batchIds === "string" ? [batchIds] : batchIds;
1145
- const author = options.author ?? HUMAN;
1161
+ const author = options.author ?? this.by;
1146
1162
  /*
1147
1163
  * JUDGED FIRST AS THIS SEAT SEES THE LOG (FR-16, FR-02). A change it
1148
1164
  * may not see is not its to take back, and when one stands in the way
@@ -1215,8 +1231,6 @@ export class Store {
1215
1231
  const diff = diffSnapshots(rollback, this.graph.snapshot());
1216
1232
  this.admitted(options, ops, ops.flatMap((op) => [...op.primitives]), diff, rollback, kept);
1217
1233
  const after = this.violations();
1218
- const beforeKeys = new Set(before.map(violationKey));
1219
- const afterKeys = new Set(after.map(violationKey));
1220
1234
  this.notify(diff, ops);
1221
1235
  return {
1222
1236
  batch,
@@ -1226,8 +1240,7 @@ export class Store {
1226
1240
  reads: [...new Set(ops.flatMap((op) => [...op.reads]))],
1227
1241
  writes: [...new Set(ops.flatMap((op) => [...op.writes]))],
1228
1242
  intent: options.intent ?? ops.map((op) => op.intent).join("; "),
1229
- introduces: after.filter((v) => !beforeKeys.has(violationKey(v))),
1230
- resolves: before.filter((v) => !afterKeys.has(violationKey(v))),
1243
+ ...this.moved(before, after),
1231
1244
  violationsAfter: after,
1232
1245
  };
1233
1246
  }