@graview/core 0.1.0 → 0.1.3

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 (296) hide show
  1. package/README.md +7 -0
  2. package/dist/app.d.ts +17 -0
  3. package/dist/app.d.ts.map +1 -1
  4. package/dist/app.js.map +1 -1
  5. package/dist/arrange.d.ts +3 -2
  6. package/dist/arrange.d.ts.map +1 -1
  7. package/dist/arrange.js +19 -2
  8. package/dist/arrange.js.map +1 -1
  9. package/dist/beginning.d.ts +5 -2
  10. package/dist/beginning.d.ts.map +1 -1
  11. package/dist/beginning.js +28 -0
  12. package/dist/beginning.js.map +1 -1
  13. package/dist/capabilities.d.ts +32 -0
  14. package/dist/capabilities.d.ts.map +1 -0
  15. package/dist/capabilities.js +31 -0
  16. package/dist/capabilities.js.map +1 -0
  17. package/dist/cli/check/index.d.ts +1 -0
  18. package/dist/cli/check/index.d.ts.map +1 -1
  19. package/dist/cli/check/index.js +1 -0
  20. package/dist/cli/check/index.js.map +1 -1
  21. package/dist/cli/check/lenses.d.ts.map +1 -1
  22. package/dist/cli/check/lenses.js +25 -0
  23. package/dist/cli/check/lenses.js.map +1 -1
  24. package/dist/cli/check/policy.d.ts.map +1 -1
  25. package/dist/cli/check/policy.js +35 -0
  26. package/dist/cli/check/policy.js.map +1 -1
  27. package/dist/cli/check/relations.d.ts.map +1 -1
  28. package/dist/cli/check/relations.js +31 -0
  29. package/dist/cli/check/relations.js.map +1 -1
  30. package/dist/cli/check/views.d.ts +14 -0
  31. package/dist/cli/check/views.d.ts.map +1 -0
  32. package/dist/cli/check/views.js +27 -0
  33. package/dist/cli/check/views.js.map +1 -0
  34. package/dist/cli/check.d.ts.map +1 -1
  35. package/dist/cli/check.js +2 -1
  36. package/dist/cli/check.js.map +1 -1
  37. package/dist/cli/create.d.ts +1 -1
  38. package/dist/cli/create.d.ts.map +1 -1
  39. package/dist/cli/create.js +63 -1
  40. package/dist/cli/create.js.map +1 -1
  41. package/dist/cli/index.d.ts +18 -1
  42. package/dist/cli/index.d.ts.map +1 -1
  43. package/dist/cli/index.js +66 -1
  44. package/dist/cli/index.js.map +1 -1
  45. package/dist/conformance/fixtures.d.ts +41 -0
  46. package/dist/conformance/fixtures.d.ts.map +1 -0
  47. package/dist/conformance/fixtures.js +950 -0
  48. package/dist/conformance/fixtures.js.map +1 -0
  49. package/dist/conformance/index.d.ts +54 -0
  50. package/dist/conformance/index.d.ts.map +1 -0
  51. package/dist/conformance/index.js +81 -0
  52. package/dist/conformance/index.js.map +1 -0
  53. package/dist/document/canonical.d.ts +4 -0
  54. package/dist/document/canonical.d.ts.map +1 -0
  55. package/dist/document/canonical.js +29 -0
  56. package/dist/document/canonical.js.map +1 -0
  57. package/dist/document/compile.d.ts +43 -0
  58. package/dist/document/compile.d.ts.map +1 -0
  59. package/dist/document/compile.js +807 -0
  60. package/dist/document/compile.js.map +1 -0
  61. package/dist/document/diff.d.ts +32 -0
  62. package/dist/document/diff.d.ts.map +1 -0
  63. package/dist/document/diff.js +148 -0
  64. package/dist/document/diff.js.map +1 -0
  65. package/dist/document/edit.d.ts +63 -0
  66. package/dist/document/edit.d.ts.map +1 -0
  67. package/dist/document/edit.js +1432 -0
  68. package/dist/document/edit.js.map +1 -0
  69. package/dist/document/expr/analyze.d.ts +14 -0
  70. package/dist/document/expr/analyze.d.ts.map +1 -0
  71. package/dist/document/expr/analyze.js +52 -0
  72. package/dist/document/expr/analyze.js.map +1 -0
  73. package/dist/document/expr/evaluate.d.ts +36 -0
  74. package/dist/document/expr/evaluate.d.ts.map +1 -0
  75. package/dist/document/expr/evaluate.js +344 -0
  76. package/dist/document/expr/evaluate.js.map +1 -0
  77. package/dist/document/expr/index.d.ts +8 -0
  78. package/dist/document/expr/index.d.ts.map +1 -0
  79. package/dist/document/expr/index.js +5 -0
  80. package/dist/document/expr/index.js.map +1 -0
  81. package/dist/document/expr/parse.d.ts +50 -0
  82. package/dist/document/expr/parse.d.ts.map +1 -0
  83. package/dist/document/expr/parse.js +240 -0
  84. package/dist/document/expr/parse.js.map +1 -0
  85. package/dist/document/expr/print.d.ts +4 -0
  86. package/dist/document/expr/print.d.ts.map +1 -0
  87. package/dist/document/expr/print.js +81 -0
  88. package/dist/document/expr/print.js.map +1 -0
  89. package/dist/document/findings.d.ts +15 -0
  90. package/dist/document/findings.d.ts.map +1 -0
  91. package/dist/document/findings.js +30 -0
  92. package/dist/document/findings.js.map +1 -0
  93. package/dist/document/graview-template.d.ts +148 -0
  94. package/dist/document/graview-template.d.ts.map +1 -0
  95. package/dist/document/graview-template.js +450 -0
  96. package/dist/document/graview-template.js.map +1 -0
  97. package/dist/document/index.d.ts +27 -0
  98. package/dist/document/index.d.ts.map +1 -0
  99. package/dist/document/index.js +16 -0
  100. package/dist/document/index.js.map +1 -0
  101. package/dist/document/migrate.d.ts +41 -0
  102. package/dist/document/migrate.d.ts.map +1 -0
  103. package/dist/document/migrate.js +252 -0
  104. package/dist/document/migrate.js.map +1 -0
  105. package/dist/document/patch.d.ts +16 -0
  106. package/dist/document/patch.d.ts.map +1 -0
  107. package/dist/document/patch.js +79 -0
  108. package/dist/document/patch.js.map +1 -0
  109. package/dist/document/rules.d.ts +40 -0
  110. package/dist/document/rules.d.ts.map +1 -0
  111. package/dist/document/rules.js +88 -0
  112. package/dist/document/rules.js.map +1 -0
  113. package/dist/document/schema.d.ts +461 -0
  114. package/dist/document/schema.d.ts.map +1 -0
  115. package/dist/document/schema.js +199 -0
  116. package/dist/document/schema.js.map +1 -0
  117. package/dist/document/template.d.ts +28 -0
  118. package/dist/document/template.d.ts.map +1 -0
  119. package/dist/document/template.js +117 -0
  120. package/dist/document/template.js.map +1 -0
  121. package/dist/document/to-document.d.ts +34 -0
  122. package/dist/document/to-document.d.ts.map +1 -0
  123. package/dist/document/to-document.js +186 -0
  124. package/dist/document/to-document.js.map +1 -0
  125. package/dist/document/upgrade.d.ts +9 -0
  126. package/dist/document/upgrade.d.ts.map +1 -0
  127. package/dist/document/upgrade.js +19 -0
  128. package/dist/document/upgrade.js.map +1 -0
  129. package/dist/document/views.d.ts +65 -0
  130. package/dist/document/views.d.ts.map +1 -0
  131. package/dist/document/views.js +264 -0
  132. package/dist/document/views.js.map +1 -0
  133. package/dist/formats.d.ts +50 -0
  134. package/dist/formats.d.ts.map +1 -0
  135. package/dist/formats.js +75 -0
  136. package/dist/formats.js.map +1 -0
  137. package/dist/graph/graph.d.ts +61 -3
  138. package/dist/graph/graph.d.ts.map +1 -1
  139. package/dist/graph/graph.js +187 -20
  140. package/dist/graph/graph.js.map +1 -1
  141. package/dist/index.d.ts +43 -18
  142. package/dist/index.d.ts.map +1 -1
  143. package/dist/index.js +31 -11
  144. package/dist/index.js.map +1 -1
  145. package/dist/integrity.d.ts +46 -0
  146. package/dist/integrity.d.ts.map +1 -0
  147. package/dist/integrity.js +179 -0
  148. package/dist/integrity.js.map +1 -0
  149. package/dist/invariants/engine.d.ts +8 -0
  150. package/dist/invariants/engine.d.ts.map +1 -1
  151. package/dist/invariants/engine.js +40 -2
  152. package/dist/invariants/engine.js.map +1 -1
  153. package/dist/invariants/types.d.ts +19 -0
  154. package/dist/invariants/types.d.ts.map +1 -1
  155. package/dist/labels.d.ts +65 -0
  156. package/dist/labels.d.ts.map +1 -0
  157. package/dist/labels.js +123 -0
  158. package/dist/labels.js.map +1 -0
  159. package/dist/mutations/define-mutation.d.ts.map +1 -1
  160. package/dist/mutations/define-mutation.js +5 -6
  161. package/dist/mutations/define-mutation.js.map +1 -1
  162. package/dist/mutations/derive-edits.d.ts.map +1 -1
  163. package/dist/mutations/derive-edits.js +20 -1
  164. package/dist/mutations/derive-edits.js.map +1 -1
  165. package/dist/mutations/form.d.ts +9 -0
  166. package/dist/mutations/form.d.ts.map +1 -1
  167. package/dist/mutations/form.js +20 -0
  168. package/dist/mutations/form.js.map +1 -1
  169. package/dist/mutations/node-ref.d.ts +6 -0
  170. package/dist/mutations/node-ref.d.ts.map +1 -1
  171. package/dist/mutations/node-ref.js +22 -8
  172. package/dist/mutations/node-ref.js.map +1 -1
  173. package/dist/mutations/types.d.ts +8 -0
  174. package/dist/mutations/types.d.ts.map +1 -1
  175. package/dist/mutations/words.d.ts +49 -0
  176. package/dist/mutations/words.d.ts.map +1 -0
  177. package/dist/mutations/words.js +61 -0
  178. package/dist/mutations/words.js.map +1 -0
  179. package/dist/ops/log.d.ts +156 -4
  180. package/dist/ops/log.d.ts.map +1 -1
  181. package/dist/ops/log.js +234 -51
  182. package/dist/ops/log.js.map +1 -1
  183. package/dist/ops/revisions.d.ts +66 -0
  184. package/dist/ops/revisions.d.ts.map +1 -0
  185. package/dist/ops/revisions.js +97 -0
  186. package/dist/ops/revisions.js.map +1 -0
  187. package/dist/ops/types.d.ts +49 -1
  188. package/dist/ops/types.d.ts.map +1 -1
  189. package/dist/ops/undo.d.ts +29 -2
  190. package/dist/ops/undo.d.ts.map +1 -1
  191. package/dist/ops/undo.js +110 -1
  192. package/dist/ops/undo.js.map +1 -1
  193. package/dist/ops/withheld.d.ts +37 -0
  194. package/dist/ops/withheld.d.ts.map +1 -0
  195. package/dist/ops/withheld.js +84 -0
  196. package/dist/ops/withheld.js.map +1 -0
  197. package/dist/permissions/policy.d.ts +15 -0
  198. package/dist/permissions/policy.d.ts.map +1 -1
  199. package/dist/permissions/policy.js +28 -1
  200. package/dist/permissions/policy.js.map +1 -1
  201. package/dist/permissions/sight.d.ts +66 -0
  202. package/dist/permissions/sight.d.ts.map +1 -0
  203. package/dist/permissions/sight.js +131 -0
  204. package/dist/permissions/sight.js.map +1 -0
  205. package/dist/permissions/types.d.ts +26 -0
  206. package/dist/permissions/types.d.ts.map +1 -1
  207. package/dist/permissions/types.js.map +1 -1
  208. package/dist/persistence/memory.d.ts.map +1 -1
  209. package/dist/persistence/memory.js +25 -0
  210. package/dist/persistence/memory.js.map +1 -1
  211. package/dist/persistence/sql.d.ts +43 -0
  212. package/dist/persistence/sql.d.ts.map +1 -0
  213. package/dist/persistence/sql.js +154 -0
  214. package/dist/persistence/sql.js.map +1 -0
  215. package/dist/persistence/sqlite.d.ts +17 -3
  216. package/dist/persistence/sqlite.d.ts.map +1 -1
  217. package/dist/persistence/sqlite.js +32 -96
  218. package/dist/persistence/sqlite.js.map +1 -1
  219. package/dist/persistence/types.d.ts +19 -0
  220. package/dist/persistence/types.d.ts.map +1 -1
  221. package/dist/presence.d.ts +56 -0
  222. package/dist/presence.d.ts.map +1 -1
  223. package/dist/presence.js +62 -2
  224. package/dist/presence.js.map +1 -1
  225. package/dist/refusal.d.ts +34 -0
  226. package/dist/refusal.d.ts.map +1 -0
  227. package/dist/refusal.js +40 -0
  228. package/dist/refusal.js.map +1 -0
  229. package/dist/scaffold/from-template.d.ts +16 -0
  230. package/dist/scaffold/from-template.d.ts.map +1 -0
  231. package/dist/scaffold/from-template.js +157 -0
  232. package/dist/scaffold/from-template.js.map +1 -0
  233. package/dist/scaffold/index.d.ts +10 -1
  234. package/dist/scaffold/index.d.ts.map +1 -1
  235. package/dist/scaffold/index.js +35 -7
  236. package/dist/scaffold/index.js.map +1 -1
  237. package/dist/scaffold/names.d.ts +4 -0
  238. package/dist/scaffold/names.d.ts.map +1 -1
  239. package/dist/scaffold/names.js.map +1 -1
  240. package/dist/scaffold/project.d.ts +1 -1
  241. package/dist/scaffold/project.d.ts.map +1 -1
  242. package/dist/scaffold/project.js +44 -13
  243. package/dist/scaffold/project.js.map +1 -1
  244. package/dist/scaffold/ui.d.ts.map +1 -1
  245. package/dist/scaffold/ui.js +19 -10
  246. package/dist/scaffold/ui.js.map +1 -1
  247. package/dist/schema/define-node.d.ts +20 -0
  248. package/dist/schema/define-node.d.ts.map +1 -1
  249. package/dist/schema/define-node.js +27 -2
  250. package/dist/schema/define-node.js.map +1 -1
  251. package/dist/schema/path.d.ts +19 -0
  252. package/dist/schema/path.d.ts.map +1 -0
  253. package/dist/schema/path.js +34 -0
  254. package/dist/schema/path.js.map +1 -0
  255. package/dist/schema/types.d.ts +17 -0
  256. package/dist/schema/types.d.ts.map +1 -1
  257. package/dist/seen.d.ts +64 -0
  258. package/dist/seen.d.ts.map +1 -0
  259. package/dist/seen.js +200 -0
  260. package/dist/seen.js.map +1 -0
  261. package/dist/store.d.ts +378 -8
  262. package/dist/store.d.ts.map +1 -1
  263. package/dist/store.js +801 -41
  264. package/dist/store.js.map +1 -1
  265. package/dist/testing.d.ts +6 -0
  266. package/dist/testing.d.ts.map +1 -1
  267. package/dist/testing.js +3 -1
  268. package/dist/testing.js.map +1 -1
  269. package/dist/theme/palettes.d.ts.map +1 -1
  270. package/dist/theme/palettes.js +4 -0
  271. package/dist/theme/palettes.js.map +1 -1
  272. package/dist/theme/types.d.ts +9 -0
  273. package/dist/theme/types.d.ts.map +1 -1
  274. package/dist/theme/types.js +4 -0
  275. package/dist/theme/types.js.map +1 -1
  276. package/dist/validate-graph.d.ts +84 -0
  277. package/dist/validate-graph.d.ts.map +1 -0
  278. package/dist/validate-graph.js +295 -0
  279. package/dist/validate-graph.js.map +1 -0
  280. package/dist/version.d.ts +3 -0
  281. package/dist/version.d.ts.map +1 -0
  282. package/dist/version.js +3 -0
  283. package/dist/version.js.map +1 -0
  284. package/dist/views/types.d.ts +8 -0
  285. package/dist/views/types.d.ts.map +1 -1
  286. package/dist/views/types.js +5 -0
  287. package/dist/views/types.js.map +1 -1
  288. package/dist/watched.d.ts +39 -0
  289. package/dist/watched.d.ts.map +1 -1
  290. package/dist/watched.js +94 -1
  291. package/dist/watched.js.map +1 -1
  292. package/dist/who.d.ts +24 -1
  293. package/dist/who.d.ts.map +1 -1
  294. package/dist/who.js +49 -2
  295. package/dist/who.js.map +1 -1
  296. package/package.json +9 -1
@@ -0,0 +1,157 @@
1
+ import { escapeString, slugify } from "./names.js";
2
+ /*
3
+ * A PROJECT FROM A TEMPLATE (FR-08): the same checkout `graview create`
4
+ * always writes, with the declaration KEPT AS THE DOCUMENT.
5
+ *
6
+ * `src/domain/app.json` is the template's document, and `src/domain/app.ts`
7
+ * compiles it with `compileDocument` when the domain loads. The other choice
8
+ * — writing TypeScript from the document — would need a generator for every
9
+ * construct the document has (expression rules, effects, guards, refusal
10
+ * sentences, view specs) and would then be a second declaration that could
11
+ * drift from the first. Kept as the document, the project IS the template's
12
+ * app: `graview describe` says the same of both by construction, the studio
13
+ * and `editDocument` change it as data, and a template shared back out is the
14
+ * file as it stands. The UI, the tests, the CI and the scripts are the ones
15
+ * every project gets; the template itself sits at the root as
16
+ * `template.json`, for `graview apply --template` to set a store up from.
17
+ */
18
+ /** The kind a project's UI leads with, and the act its seat is gated on: the first kind something creates. */
19
+ export function templateKind(template) {
20
+ const document = template.document;
21
+ const kinds = Object.keys(document.kinds ?? {});
22
+ const acts = Object.entries(document.acts ?? {});
23
+ const creating = kinds.map((kind) => [kind, acts.find(([, act]) => act.creates === kind)?.[0]]).find(([, act]) => act !== undefined);
24
+ const kind = creating?.[0] ?? kinds[0] ?? "item";
25
+ const plural = slugify(document.kinds?.[kind]?.plural ?? `${kind}s`) || `${kind}s`;
26
+ return { kind, plural, gate: creating?.[1] ?? acts[0]?.[0] ?? `add-${kind}` };
27
+ }
28
+ export function documentJson(template) {
29
+ return `${JSON.stringify(template.document, null, 2)}\n`;
30
+ }
31
+ export function templateJson(template) {
32
+ return `${JSON.stringify(template, null, 2)}\n`;
33
+ }
34
+ export function documentAppTs(ids) {
35
+ return `import { Store, type AnySchema, type GraviewApp, type StoreOptions } from "@graview/core";
36
+ import { compileDocument, sayFindings } from "@graview/core/document";
37
+ import document from "./app.json" with { type: "json" };
38
+
39
+ /**
40
+ * THE DECLARATION IS A DOCUMENT: app.json, compiled when this module loads.
41
+ * It runs no code of its own, so it is the same app here, in a host that
42
+ * accepts documents from strangers, and in the template it came from.
43
+ * \`graview check\` and \`graview describe\` read it through this module or
44
+ * straight from the file; edit it, or open it in the studio, and the
45
+ * compiler says what is wrong with the JSON path to fix it at.
46
+ */
47
+ const compiled = compileDocument(document);
48
+ if (!compiled.ok) {
49
+ throw new Error(\`src/domain/app.json does not compile:\\n\${sayFindings(compiled.findings)}\`);
50
+ }
51
+
52
+ export const ${ids.appVar}: GraviewApp = compiled.app;
53
+
54
+ export type ${ids.StoreType} = Store<AnySchema>;
55
+
56
+ export function createStore(options: Partial<StoreOptions<AnySchema>> = {}): ${ids.StoreType} {
57
+ return new Store<AnySchema>({
58
+ schema: ${ids.appVar}.schema,
59
+ mutations: ${ids.appVar}.mutations ?? [],
60
+ invariants: ${ids.appVar}.invariants ?? [],
61
+ ...(${ids.appVar}.policy ? { policy: ${ids.appVar}.policy } : {}),
62
+ ...options,
63
+ });
64
+ }
65
+
66
+ export default ${ids.appVar};
67
+ `;
68
+ }
69
+ export function documentSchemaTs(ids) {
70
+ return `import { ${ids.appVar} } from "./app.js";
71
+
72
+ /** The schema the document compiles to, under the name the UI imports it by. */
73
+ export const ${ids.schemaVar} = ${ids.appVar}.schema;
74
+ export type ${ids.SchemaType} = typeof ${ids.schemaVar};
75
+ `;
76
+ }
77
+ export function documentBrandTs(ids) {
78
+ return `import { brandFromAccent, DARK, LIGHT, type Brand } from "@graview/core";
79
+ import { ${ids.appVar} } from "./app.js";
80
+
81
+ /**
82
+ * The document's brand when it declares one (\`brand.accent\` in app.json);
83
+ * otherwise both schemes derived from one accent, measured against AA.
84
+ */
85
+ function brandOf(): Brand {
86
+ if (${ids.appVar}.brand) return ${ids.appVar}.brand;
87
+ const derived = brandFromAccent({ accent: "${ids.accent}", base: { dark: DARK, light: LIGHT } });
88
+ if (!derived.ok) throw new Error(\`${escapeString(ids.name)} cannot be derived from ${ids.accent}: \${derived.why}\`);
89
+ return { name: ${ids.appVar}.name, schemes: derived.schemes };
90
+ }
91
+
92
+ export const ${ids.brandVar}: Brand = brandOf();
93
+ `;
94
+ }
95
+ export function documentTest(ids) {
96
+ return `import { checkApp, type Principal } from "@graview/core";
97
+ import { instantiateTemplate } from "@graview/core/document";
98
+ import { describe, expect, it } from "vitest";
99
+ import template from "../template.json" with { type: "json" };
100
+ import document from "../src/domain/app.json" with { type: "json" };
101
+ import { ${ids.appVar}, createStore } from "../src/domain/app.js";
102
+
103
+ /**
104
+ * The domain tier has no DOM in it, so these run headless. The declaration
105
+ * is the template's document until you change it; the setup test holds the
106
+ * template's own acts to the document as it stands.
107
+ */
108
+
109
+ describe("the declaration", () => {
110
+ it("passes its own check", () => {
111
+ const result = checkApp(${ids.appVar});
112
+ expect(result.findings.filter((f) => f.severity === "error")).toEqual([]);
113
+ expect(result.ok).toBe(true);
114
+ });
115
+
116
+ it("compiles from the document it keeps", () => {
117
+ expect(${ids.appVar}.name).toBe(document.name);
118
+ });
119
+ });
120
+
121
+ describe("the template's setup", () => {
122
+ const setUp = () => {
123
+ const made = instantiateTemplate({ ...template, document });
124
+ if (!made.ok) throw new Error(made.findings.map((f) => \`\${f.path}: \${f.message}\`).join("\\n"));
125
+ return made;
126
+ };
127
+
128
+ it("runs as one batch, and one undo takes it back", () => {
129
+ const store = createStore();
130
+ const author: Principal = { kind: "system", id: "template:${escapeString(ids.packageName)}" };
131
+ const calls = setUp().setup;
132
+ if (calls.length === 0) return;
133
+ for (const call of calls) {
134
+ store.apply({ name: call.name, args: call.args }, { author, batch: "setup", intent: call.intent });
135
+ }
136
+ expect(new Set(store.log.all().map((op) => op.batch))).toEqual(new Set(["setup"]));
137
+ store.undo("setup", { author });
138
+ expect(store.graph.allNodes()).toEqual([]);
139
+ });
140
+ });
141
+ `;
142
+ }
143
+ export function documentReadmeLayout(ids, run) {
144
+ return `src/domain/ the declaration — no React in here; this is what graview check reads
145
+ app.json the declaration document: kinds, acts, rules, policy, brand, views
146
+ app.ts compiles app.json with compileDocument; createStore
147
+ schema.ts the compiled schema, under the name the UI imports
148
+ brand.ts the document's brand, or one derived from an accent
149
+ src/ui/
150
+ views.tsx registerDefaultViews, then your own where the generic one is wrong
151
+ app.tsx the provider, the Shell primitive, and a seat — under sixty lines
152
+ pages.tsx the ${ids.kind}'s page on the routed face, in your words, over the derived ones
153
+ src/main.tsx the theme, the store that remembers, the two faces
154
+ template.json the template this project was made from: \`${run} apply-template\` sets a store up from it
155
+ tests/ the declaration checks clean, and the template's setup runs as one undoable batch`;
156
+ }
157
+ //# sourceMappingURL=from-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"from-template.js","sourceRoot":"","sources":["../../src/scaffold/from-template.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { GraviewTemplate } from "../document/graview-template.js";
1
2
  export { pascal, slugify, titleCase, validateScaffoldOptions } from "./names.js";
2
3
  export { GRAVIEW_PACKAGES, LINKED_PACKAGES } from "./project.js";
3
4
  export interface ScaffoldOptions {
@@ -47,6 +48,14 @@ export interface ScaffoldOptions {
47
48
  * Two is a gap rather than a taste.
48
49
  */
49
50
  readonly workspace?: boolean;
51
+ /**
52
+ * A template made anywhere — Graview Cloud's shape (FR-08). The project
53
+ * keeps its document as the declaration (`src/domain/app.json`, compiled
54
+ * when the domain loads) and the template beside it as `template.json`,
55
+ * for `graview apply --template` to set a store up from. Read it with
56
+ * `readGraviewTemplate` first; this trusts what it is handed.
57
+ */
58
+ readonly template?: GraviewTemplate;
50
59
  }
51
60
  export interface ScaffoldFile {
52
61
  readonly path: string;
@@ -62,5 +71,5 @@ export interface Scaffold {
62
71
  readonly port: number;
63
72
  readonly linked: boolean;
64
73
  }
65
- export declare function scaffoldProject(options: ScaffoldOptions): Scaffold;
74
+ export declare function scaffoldProject(given: ScaffoldOptions): Scaffold;
66
75
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,iEAAiE;IACjE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACzC,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,KAAK,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ,CA6HlE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,iEAAiE;IACjE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACzC,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,KAAK,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAID,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,QAAQ,CAyJhE"}
@@ -17,15 +17,26 @@ import { slugify, titleCase, camel, pascal, validateScaffoldOptions } from "./na
17
17
  import { SURVEY_SAYS, AUDIT_SAYS, A11Y_SAYS, harness, workspaceRoot, tsconfigBase, rootVitest, packageJson, tsconfig, tsconfigBuild, viteConfig, gitignore, readme, ciYml, } from "./project.js";
18
18
  import { schemaTs, mutationsTs, invariantsTs, brandTs, appTs, domainTest } from "./domain.js";
19
19
  import { indexHtml, embedHtml, embedTsx, viewsTsx, uiAppTsx, pagesTsx, mainTsx } from "./ui.js";
20
+ import { documentAppTs, documentBrandTs, documentJson, documentSchemaTs, documentTest, templateJson, templateKind } from "./from-template.js";
20
21
  export { pascal, slugify, titleCase, validateScaffoldOptions } from "./names.js";
21
22
  export { GRAVIEW_PACKAGES, LINKED_PACKAGES } from "./project.js";
22
- export function scaffoldProject(options) {
23
+ export function scaffoldProject(given) {
24
+ /*
25
+ * FROM A TEMPLATE, the kind the UI leads with is the template's first kind
26
+ * that something creates, and its seat is gated on that act — unless the
27
+ * caller named a kind of the document's itself.
28
+ */
29
+ const led = given.template ? templateKind(given.template) : undefined;
30
+ const options = led
31
+ ? { ...given, kind: given.kind ?? led.kind, plural: given.plural ?? (given.kind === undefined ? led.plural : `${given.kind}s`) }
32
+ : given;
23
33
  const problems = validateScaffoldOptions(options);
24
34
  if (problems.length > 0)
25
35
  throw new Error(problems.join("\n"));
26
36
  const name = options.name.trim();
27
37
  const kind = options.kind ?? "item";
28
38
  const plural = options.plural ?? `${kind}s`;
39
+ const template = options.template;
29
40
  const packageName = options.packageName ?? slugify(name);
30
41
  const packageManager = options.packageManager ?? "pnpm";
31
42
  const port = options.port ?? 5170;
@@ -77,7 +88,27 @@ export function scaffoldProject(options) {
77
88
  range,
78
89
  packageManager,
79
90
  packageName,
91
+ gate: led && given.kind === undefined ? led.gate : `add-${kind}`,
92
+ fromTemplate: template !== undefined,
80
93
  };
94
+ /*
95
+ * THE DECLARATION: TypeScript written for one kind, or — from a template —
96
+ * the template's document kept as the document (see ./from-template.ts).
97
+ */
98
+ const domain = template
99
+ ? [
100
+ { path: "src/domain/app.json", contents: documentJson(template) },
101
+ { path: "src/domain/app.ts", contents: documentAppTs(ids) },
102
+ { path: "src/domain/schema.ts", contents: documentSchemaTs(ids) },
103
+ { path: "src/domain/brand.ts", contents: documentBrandTs(ids) },
104
+ ]
105
+ : [
106
+ { path: "src/domain/schema.ts", contents: schemaTs(ids) },
107
+ { path: "src/domain/mutations.ts", contents: mutationsTs(ids) },
108
+ { path: "src/domain/invariants.ts", contents: invariantsTs(ids) },
109
+ { path: "src/domain/brand.ts", contents: brandTs(ids) },
110
+ { path: "src/domain/app.ts", contents: appTs(ids) },
111
+ ];
81
112
  const files = [
82
113
  { path: "package.json", contents: packageJson(ids, workspace) },
83
114
  { path: "tsconfig.json", contents: tsconfig(workspace) },
@@ -87,18 +118,15 @@ export function scaffoldProject(options) {
87
118
  { path: "embed.html", contents: embedHtml(ids) },
88
119
  { path: ".gitignore", contents: gitignore() },
89
120
  { path: "README.md", contents: readme(ids) },
90
- { path: "src/domain/schema.ts", contents: schemaTs(ids) },
91
- { path: "src/domain/mutations.ts", contents: mutationsTs(ids) },
92
- { path: "src/domain/invariants.ts", contents: invariantsTs(ids) },
93
- { path: "src/domain/brand.ts", contents: brandTs(ids) },
94
- { path: "src/domain/app.ts", contents: appTs(ids) },
121
+ ...domain,
95
122
  { path: "src/ui/views.tsx", contents: viewsTsx(ids) },
96
123
  { path: "src/ui/app.tsx", contents: uiAppTsx(ids) },
97
124
  { path: "src/ui/pages.tsx", contents: pagesTsx(ids) },
98
125
  { path: "src/main.tsx", contents: mainTsx(ids) },
99
126
  { path: "src/embed.tsx", contents: embedTsx(ids) },
100
- { path: "tests/domain.test.ts", contents: domainTest(ids) },
127
+ { path: "tests/domain.test.ts", contents: template ? documentTest(ids) : domainTest(ids) },
101
128
  { path: ".github/workflows/ci.yml", contents: ciYml(ids) },
129
+ ...(template ? [{ path: "template.json", contents: templateJson(template) }] : []),
102
130
  ];
103
131
  if (!workspace) {
104
132
  return { files, name, packageName, kind, plural, packageManager, port, linked: link !== undefined };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,10 @@ export type Ids = {
37
37
  range: string;
38
38
  packageManager: "pnpm" | "npm";
39
39
  packageName: string;
40
+ /** The act the starter seat is gated on: one that creates the kind. */
41
+ gate: string;
42
+ /** Made from a template (FR-08): the declaration is the document in src/domain/app.json. */
43
+ fromTemplate: boolean;
40
44
  };
41
45
  export declare function escapeHtml(text: string): string;
42
46
  export declare function escapeString(text: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../src/scaffold/names.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQlD,eAAO,MAAM,IAAI,QAAoC,CAAC;AAEtD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM5C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG3C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS,MAAM,EAAE,CA0BnF;AAED,MAAM,MAAM,GAAG,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,GAAG,KAAK,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD"}
1
+ {"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../src/scaffold/names.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQlD,eAAO,MAAM,IAAI,QAAoC,CAAC;AAEtD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM5C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG3C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS,MAAM,EAAE,CA0BnF;AAED,MAAM,MAAM,GAAG,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,GAAG,KAAK,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,4FAA4F;IAC5F,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAIF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"names.js","sourceRoot":"","sources":["../../src/scaffold/names.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,iCAAiC,CAAC;AAEtD,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,IAAI;SACR,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAwB;IAC9D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,QAAQ,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;IACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,aAAa,IAAI,iFAAiF,CAAC,CAAC;IACpH,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,eAAe,MAAM,uEAAuE,CAAC,CAAC;IAC9G,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,QAAQ,CAAC,IAAI,CAAC,aAAa,IAAI,iFAAiF,CAAC,CAAC;IACpH,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,wCAAwC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7G,QAAQ,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,WAAW,0BAA0B,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QAChH,QAAQ,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9E,QAAQ,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,MAAM,+CAA+C,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AA+BD,4EAA4E;AAE5E,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"names.js","sourceRoot":"","sources":["../../src/scaffold/names.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { Ids } from "./names.js";
2
2
  /** The packages a product depends on, in the order the skill lists them. */
3
- export declare const GRAVIEW_PACKAGES: readonly ["core", "layout", "tools", "render", "react", "primitives", "pages", "ship", "embed", "studio"];
3
+ export declare const GRAVIEW_PACKAGES: readonly ["core", "layout", "tools", "render", "react", "primitives", "pages", "ship", "embed", "studio", "guest"];
4
4
  /**
5
5
  * Everything a linked project resolves from the framework checkout: the
6
6
  * packages a product imports, plus the skills and the tool it takes as
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/scaffold/project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,2GAoBnB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA+C,CAAC;AAO7F,eAAO,MAAM,WAAW,UAIvB,CAAC;AAEF,eAAO,MAAM,UAAU,UAMtB,CAAC;AAEF,eAAO,MAAM,SAAS,UAIrB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAqB/E;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAgCxE;AAED,sEAAsE;AACtE,wBAAgB,YAAY,IAAI,MAAM,CAsBrC;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,IAAI,MAAM,CAOnC;AAID,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAiEhE;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAyCnD;AAED,wBAAgB,aAAa,IAAI,MAAM,CAoBtC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAkL3C;AAOD,wBAAgB,SAAS,IAAI,MAAM,CAWlC;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAwEvC;AAID,wBAAgB,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA2BtC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAwC3D"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/scaffold/project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGtC,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,oHAyBnB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA+C,CAAC;AAO7F,eAAO,MAAM,WAAW,UAIvB,CAAC;AAEF,eAAO,MAAM,UAAU,UAMtB,CAAC;AAEF,eAAO,MAAM,SAAS,UAIrB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAqB/E;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAgCxE;AAED,sEAAsE;AACtE,wBAAgB,YAAY,IAAI,MAAM,CAsBrC;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,IAAI,MAAM,CAOnC;AAID,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAqEhE;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAyCnD;AAED,wBAAgB,aAAa,IAAI,MAAM,CAoBtC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAoM3C;AAOD,wBAAgB,SAAS,IAAI,MAAM,CAWlC;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA2EvC;AAID,wBAAgB,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA2BtC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAwC3D"}
@@ -1,3 +1,4 @@
1
+ import { documentReadmeLayout } from "./from-template.js";
1
2
  /** The packages a product depends on, in the order the skill lists them. */
2
3
  export const GRAVIEW_PACKAGES = [
3
4
  "core",
@@ -19,6 +20,11 @@ export const GRAVIEW_PACKAGES = [
19
20
  * graph, and a project without the package could not follow it.
20
21
  */
21
22
  "studio",
23
+ /*
24
+ * `guest` too: a view somebody else wrote is registered with `guestView`
25
+ * from `@graview/guest/host`, and the frame it draws loads the guest half.
26
+ */
27
+ "guest",
22
28
  ];
23
29
  /**
24
30
  * Everything a linked project resolves from the framework checkout: the
@@ -163,6 +169,10 @@ export function packageJson(ids, workspace) {
163
169
  mcp: `${run} build:domain && graview mcp ./dist/domain/app.js --data data`,
164
170
  skills: "graview skills install .",
165
171
  verify: `${run} typecheck && ${run} test && ${run} build && ${run} check`,
172
+ // Made from a template: set a store up from it — its acts, as one batch one undo takes back.
173
+ ...(ids.fromTemplate
174
+ ? { "apply-template": `${run} build:domain && graview apply ./dist/domain/app.js --template template.json --data data` }
175
+ : {}),
166
176
  },
167
177
  /*
168
178
  * pnpm 10 refuses postinstall scripts it was not told about, and says so
@@ -403,11 +413,22 @@ export default defineConfig({
403
413
  * from a place that does not have it.
404
414
  */
405
415
  dedupe: ["react", "react-dom", "react-router-dom"],
416
+ /*
417
+ * Every subpath before its bare name: an alias is a prefix, so
418
+ * "@graview/core" alone would take "@graview/core/testing" too and
419
+ * point it inside core's index file.
420
+ */
406
421
  alias: {
422
+ "@graview/core/testing": framework("core/src/testing.ts"),
423
+ "@graview/core/document": framework("core/src/document/index.ts"),
424
+ "@graview/core/conformance": framework("core/src/conformance/index.ts"),
425
+ "@graview/core/cli": framework("core/src/cli/index.ts"),
426
+ "@graview/core/scaffold": framework("core/src/scaffold/index.ts"),
427
+ "@graview/core/sqlite": framework("core/src/persistence/sqlite.ts"),
407
428
  "@graview/core": framework("core/src/index.ts"),
408
429
  "@graview/layout": framework("layout/src/index.ts"),
430
+ "@graview/tools/cli": framework("tools/src/cli.ts"),
409
431
  "@graview/tools": framework("tools/src/index.ts"),
410
- // The subpath first: an alias for the bare name would swallow it.
411
432
  "@graview/render/gpu": framework("render/src/gpu.ts"),
412
433
  "@graview/render": framework("render/src/index.ts"),
413
434
  "@graview/react": framework("react/src/index.ts"),
@@ -415,8 +436,15 @@ export default defineConfig({
415
436
  "@graview/pages": framework("pages/src/index.ts"),
416
437
  // The browser entry, so the file adapter's node:fs never meets the bundler.
417
438
  "@graview/ship/browser": framework("ship/src/browser.ts"),
439
+ "@graview/ship/runtime": framework("ship/src/runtime.ts"),
440
+ "@graview/ship/dev": framework("ship/src/dev.ts"),
441
+ "@graview/ship/cli": framework("ship/src/cli.ts"),
418
442
  "@graview/ship": framework("ship/src/index.ts"),
443
+ "@graview/embed/pages": framework("embed/src/pages.tsx"),
419
444
  "@graview/embed": framework("embed/src/index.ts"),
445
+ "@graview/guest/host": framework("guest/src/host/index.ts"),
446
+ "@graview/guest/react": framework("guest/src/react.ts"),
447
+ "@graview/guest": framework("guest/src/index.ts"),
420
448
  "@graview/studio": framework("studio/src/index.ts"),
421
449
  },
422
450
  },
@@ -454,6 +482,20 @@ docs/agents.md
454
482
  export function readme(ids) {
455
483
  const pm = ids.packageManager;
456
484
  const run = pm === "pnpm" ? "pnpm" : "npm run";
485
+ const layout = ids.fromTemplate
486
+ ? documentReadmeLayout(ids, run)
487
+ : `src/domain/ the declaration — no React in here; this is what graview check reads
488
+ schema.ts the ${ids.kind} kind: its fields, its one edge, its horizon
489
+ mutations.ts add, link, unlink, close — every change is a named, typed act
490
+ invariants.ts one rule, and the repair it names
491
+ brand.ts name, mark, typeface, palette — derived from one accent
492
+ app.ts defineApp: the whole surface, in one object
493
+ src/ui/
494
+ views.tsx registerDefaultViews, then your own where the generic one is wrong
495
+ app.tsx the provider, the Shell primitive, and a seat — under sixty lines
496
+ pages.tsx the ${ids.kind}'s page on the routed face, in your words, over the derived ones
497
+ src/main.tsx the theme, the store that remembers, the two faces
498
+ tests/ the rule fires on a graph that breaks it, and its repair resolves it`;
457
499
  const linked = ids.link
458
500
  ? `
459
501
  This project consumes the framework **by path** from \`${ids.link}\`. Build it
@@ -478,18 +520,7 @@ ${run} skills # the authoring skills, for Claude Code and Codex
478
520
  ## Where things are
479
521
 
480
522
  \`\`\`
481
- src/domain/ the declaration — no React in here; this is what graview check reads
482
- schema.ts the ${ids.kind} kind: its fields, its one edge, its horizon
483
- mutations.ts add, link, unlink, close — every change is a named, typed act
484
- invariants.ts one rule, and the repair it names
485
- brand.ts name, mark, typeface, palette — derived from one accent
486
- app.ts defineApp: the whole surface, in one object
487
- src/ui/
488
- views.tsx registerDefaultViews, then your own where the generic one is wrong
489
- app.tsx the provider, the Shell primitive, and a seat — under sixty lines
490
- pages.tsx the ${ids.kind}'s page on the routed face, in your words, over the derived ones
491
- src/main.tsx the theme, the store that remembers, the two faces
492
- tests/ the rule fires on a graph that breaks it, and its repair resolves it
523
+ ${layout}
493
524
  \`\`\`
494
525
 
495
526
  ## The loop
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/scaffold/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/scaffold/project.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/scaffold/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAA4C,MAAM,YAAY,CAAC;AAOhF,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAc1C;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAwC1C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAyBzC;AAID,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAkBzC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA+GzC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA0NzC;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA0FxC"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/scaffold/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAA4C,MAAM,YAAY,CAAC;AAOhF,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAc1C;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAwC1C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAyBzC;AAID,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAsBzC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA+GzC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA+NzC;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA0FxC"}
@@ -94,20 +94,24 @@ mount(document.getElementById("here")!, {
94
94
  /* ------------------------------------------------------------------- ui */
95
95
  export function viewsTsx(ids) {
96
96
  return `import { createViews } from "@graview/react";
97
- import { registerDefaultViews } from "@graview/primitives";
97
+ import { registerDefaultViews, registerViewSpecs } from "@graview/primitives";
98
+ import { ${ids.appVar} } from "../domain/app.js";
98
99
  import { ${ids.schemaVar} } from "../domain/schema.js";
99
100
 
100
101
  /**
101
102
  * Nothing custom yet, on purpose. \`registerDefaultViews\` renders every kind
102
- * at every fidelity from the declaration alone. Write a view for a kind when
103
- * the generic one is genuinely wrong, not on principle — see the framework's
104
- * \`apps/todo/src/ui/views.tsx\` for one that earns its place. Give a group
105
- * view a title and it is a PLACE, listed by name in the bar:
103
+ * at every fidelity from the declaration alone, and \`registerViewSpecs\`
104
+ * draws the cards, rows and pages the declaration writes as data
105
+ * (\`viewSpecs\` in domain/app.ts — checked by \`graview check\`). Write a
106
+ * view for a kind when the generic one is genuinely wrong, not on
107
+ * principle — see the framework's \`apps/todo/src/ui/views.tsx\` for one
108
+ * that earns its place. Give a group view a title and it is a PLACE,
109
+ * listed by name in the bar:
106
110
  *
107
111
  * .register("${ids.kind}", { cardinality: "many", fidelity: "full" }, lens.View, { title: "…" })
108
112
  */
109
113
  export function views() {
110
- return registerDefaultViews(${ids.schemaVar}, createViews(${ids.schemaVar}));
114
+ return registerViewSpecs(registerDefaultViews(${ids.schemaVar}, createViews(${ids.schemaVar})), ${ids.schemaVar}, ${ids.appVar}.viewSpecs);
111
115
  }
112
116
  `;
113
117
  }
@@ -207,7 +211,7 @@ function Starter({ onCall }: { onCall: (call: ToolCall) => void }) {
207
211
  who="starter"
208
212
  testId="agent-starter"
209
213
  count={empty ? 1 : 0}
210
- gate="add-${ids.kind}"
214
+ gate="${ids.gate}"
211
215
  label={() => "Add some starter data"}
212
216
  busyLabel="Adding…"
213
217
  idle="There is something here already"
@@ -224,7 +228,7 @@ function Starter({ onCall }: { onCall: (call: ToolCall) => void }) {
224
228
  `;
225
229
  }
226
230
  export function pagesTsx(ids) {
227
- return `import { isCurrent } from "@graview/core";
231
+ return `import { isCurrent, nounOf, withArticle } from "@graview/core";
228
232
  import { Begin } from "@graview/primitives";
229
233
  import {
230
234
  createPageRegistry,
@@ -295,7 +299,12 @@ function ${ids.KindPascal}Page({ context }: { context: PageContext<S> }) {
295
299
  return (
296
300
  <PageMain context={context} data-testid="${ids.kind}-page">
297
301
  <header style={{ display: "grid", gap: 10 }}>
298
- <p style={pageStyles.eyebrow}>${ids.ASpoken} in ${escapeTemplate(ids.name)}</p>
302
+ {/*
303
+ * WHAT IT IS, asked of the declaration rather than written here:
304
+ * give the kind a \`noun\` ("car" for a kind called vehicle) and
305
+ * this says it, where a word typed at scaffold time would not.
306
+ */}
307
+ <p style={pageStyles.eyebrow}>{withArticle(nounOf(store.schema.tryDefinition(node.kind), node.kind)).replace(/^./, (first) => first.toUpperCase())} in ${escapeTemplate(ids.name)}</p>
299
308
  <h1 style={pageStyles.h1}>{facts.label}</h1>
300
309
  {/*
301
310
  * WHERE IT IS ON THE HORIZON, asked of the declaration's own
@@ -303,7 +312,7 @@ function ${ids.KindPascal}Page({ context }: { context: PageContext<S> }) {
303
312
  * states, or retire by a date, and this still tells the truth.
304
313
  */}
305
314
  <p style={pageStyles.lede}>
306
- {isCurrent(store.schema.tryDefinition(node.kind), node) ? "Current." : "In the past: out of the picture, never out of the record."}{" "}
315
+ {isCurrent(store.schema.tryDefinition(node.kind), node) ? null : "In the past: out of the picture, never out of the record. "}
307
316
  {ties.length === 0 ? "Connected to nothing yet." : null}
308
317
  </p>
309
318
  <a href={spatialHref(id)} style={{ ...pageStyles.link, ...pageStyles.quiet }} data-testid="spatial-link">
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/scaffold/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/scaffold/ui.ts"],"names":[],"mappings":"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"}