@graview/core 0.1.54 → 0.1.56

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 (208) hide show
  1. package/dist/alias-findings.d.ts +40 -0
  2. package/dist/alias-findings.d.ts.map +1 -0
  3. package/dist/alias-findings.js +95 -0
  4. package/dist/alias-findings.js.map +1 -0
  5. package/dist/app.d.ts +13 -0
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js.map +1 -1
  8. package/dist/arranging.d.ts +6 -1
  9. package/dist/arranging.d.ts.map +1 -1
  10. package/dist/arranging.js +21 -3
  11. package/dist/arranging.js.map +1 -1
  12. package/dist/capabilities.js +1 -1
  13. package/dist/capabilities.js.map +1 -1
  14. package/dist/catalog.d.ts +32 -0
  15. package/dist/catalog.d.ts.map +1 -1
  16. package/dist/catalog.js +17 -1
  17. package/dist/catalog.js.map +1 -1
  18. package/dist/check.d.ts +2 -0
  19. package/dist/check.d.ts.map +1 -1
  20. package/dist/check.js +2 -0
  21. package/dist/check.js.map +1 -1
  22. package/dist/cli/check/aliases.d.ts +11 -0
  23. package/dist/cli/check/aliases.d.ts.map +1 -0
  24. package/dist/cli/check/aliases.js +17 -0
  25. package/dist/cli/check/aliases.js.map +1 -0
  26. package/dist/cli/check/context.d.ts +2 -0
  27. package/dist/cli/check/context.d.ts.map +1 -1
  28. package/dist/cli/check/context.js.map +1 -1
  29. package/dist/cli/check/index.d.ts +2 -0
  30. package/dist/cli/check/index.d.ts.map +1 -1
  31. package/dist/cli/check/index.js +2 -0
  32. package/dist/cli/check/index.js.map +1 -1
  33. package/dist/cli/check/jobs.d.ts +12 -0
  34. package/dist/cli/check/jobs.d.ts.map +1 -0
  35. package/dist/cli/check/jobs.js +25 -0
  36. package/dist/cli/check/jobs.js.map +1 -0
  37. package/dist/cli/check.d.ts +13 -0
  38. package/dist/cli/check.d.ts.map +1 -1
  39. package/dist/cli/check.js +25 -2
  40. package/dist/cli/check.js.map +1 -1
  41. package/dist/cli/describe.d.ts.map +1 -1
  42. package/dist/cli/describe.js +41 -0
  43. package/dist/cli/describe.js.map +1 -1
  44. package/dist/cli/document-schema.d.ts.map +1 -1
  45. package/dist/cli/document-schema.js +7 -0
  46. package/dist/cli/document-schema.js.map +1 -1
  47. package/dist/compose.d.ts +99 -0
  48. package/dist/compose.d.ts.map +1 -0
  49. package/dist/compose.js +245 -0
  50. package/dist/compose.js.map +1 -0
  51. package/dist/conformance/fixtures.d.ts.map +1 -1
  52. package/dist/conformance/fixtures.js +15 -5
  53. package/dist/conformance/fixtures.js.map +1 -1
  54. package/dist/days.d.ts +14 -1
  55. package/dist/days.d.ts.map +1 -1
  56. package/dist/days.js +17 -2
  57. package/dist/days.js.map +1 -1
  58. package/dist/document/brand-check.d.ts.map +1 -1
  59. package/dist/document/brand-check.js +6 -2
  60. package/dist/document/brand-check.js.map +1 -1
  61. package/dist/document/compile-checked.d.ts.map +1 -1
  62. package/dist/document/compile-checked.js +11 -5
  63. package/dist/document/compile-checked.js.map +1 -1
  64. package/dist/document/compiled.d.ts.map +1 -1
  65. package/dist/document/compiled.js +20 -4
  66. package/dist/document/compiled.js.map +1 -1
  67. package/dist/document/design-findings.d.ts +32 -0
  68. package/dist/document/design-findings.d.ts.map +1 -0
  69. package/dist/document/design-findings.js +593 -0
  70. package/dist/document/design-findings.js.map +1 -0
  71. package/dist/document/edit.d.ts +1 -1
  72. package/dist/document/edit.d.ts.map +1 -1
  73. package/dist/document/edit.js +303 -16
  74. package/dist/document/edit.js.map +1 -1
  75. package/dist/document/field-spec.d.ts.map +1 -1
  76. package/dist/document/field-spec.js +3 -2
  77. package/dist/document/field-spec.js.map +1 -1
  78. package/dist/document/findings.d.ts +8 -2
  79. package/dist/document/findings.d.ts.map +1 -1
  80. package/dist/document/findings.js +4 -3
  81. package/dist/document/findings.js.map +1 -1
  82. package/dist/document/graview-template.d.ts +3 -3
  83. package/dist/document/purpose-spec.d.ts +37 -0
  84. package/dist/document/purpose-spec.d.ts.map +1 -0
  85. package/dist/document/purpose-spec.js +41 -0
  86. package/dist/document/purpose-spec.js.map +1 -0
  87. package/dist/document/schema.d.ts +29 -11
  88. package/dist/document/schema.d.ts.map +1 -1
  89. package/dist/document/schema.js +26 -0
  90. package/dist/document/schema.js.map +1 -1
  91. package/dist/document/template.js +2 -2
  92. package/dist/document/template.js.map +1 -1
  93. package/dist/document/to-document.d.ts.map +1 -1
  94. package/dist/document/to-document.js +5 -1
  95. package/dist/document/to-document.js.map +1 -1
  96. package/dist/document.schema.json +146 -2
  97. package/dist/friction-record.d.ts +52 -0
  98. package/dist/friction-record.d.ts.map +1 -0
  99. package/dist/friction-record.js +36 -0
  100. package/dist/friction-record.js.map +1 -0
  101. package/dist/friction.d.ts +209 -0
  102. package/dist/friction.d.ts.map +1 -0
  103. package/dist/friction.js +302 -0
  104. package/dist/friction.js.map +1 -0
  105. package/dist/import/coerce.d.ts.map +1 -1
  106. package/dist/import/coerce.js +3 -1
  107. package/dist/import/coerce.js.map +1 -1
  108. package/dist/import/rows.d.ts +8 -0
  109. package/dist/import/rows.d.ts.map +1 -1
  110. package/dist/import/rows.js +19 -3
  111. package/dist/import/rows.js.map +1 -1
  112. package/dist/index.d.ts +5 -1
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +5 -1
  115. package/dist/index.js.map +1 -1
  116. package/dist/job-findings.d.ts +39 -0
  117. package/dist/job-findings.d.ts.map +1 -0
  118. package/dist/job-findings.js +171 -0
  119. package/dist/job-findings.js.map +1 -0
  120. package/dist/job-shape.d.ts +57 -0
  121. package/dist/job-shape.d.ts.map +1 -0
  122. package/dist/job-shape.js +5 -0
  123. package/dist/job-shape.js.map +1 -0
  124. package/dist/jobs.d.ts +62 -0
  125. package/dist/jobs.d.ts.map +1 -0
  126. package/dist/jobs.js +112 -0
  127. package/dist/jobs.js.map +1 -0
  128. package/dist/learn.d.ts +151 -0
  129. package/dist/learn.d.ts.map +1 -0
  130. package/dist/learn.js +520 -0
  131. package/dist/learn.js.map +1 -0
  132. package/dist/mutations/arg-shape.d.ts +2 -0
  133. package/dist/mutations/arg-shape.d.ts.map +1 -1
  134. package/dist/mutations/arg-shape.js +2 -2
  135. package/dist/mutations/arg-shape.js.map +1 -1
  136. package/dist/mutations/define-mutation.d.ts.map +1 -1
  137. package/dist/mutations/define-mutation.js +25 -2
  138. package/dist/mutations/define-mutation.js.map +1 -1
  139. package/dist/mutations/derive-edits.d.ts.map +1 -1
  140. package/dist/mutations/derive-edits.js +17 -3
  141. package/dist/mutations/derive-edits.js.map +1 -1
  142. package/dist/mutations/derive-relations.d.ts +8 -3
  143. package/dist/mutations/derive-relations.d.ts.map +1 -1
  144. package/dist/mutations/derive-relations.js +18 -7
  145. package/dist/mutations/derive-relations.js.map +1 -1
  146. package/dist/mutations/form.d.ts +2 -0
  147. package/dist/mutations/form.d.ts.map +1 -1
  148. package/dist/mutations/form.js +1 -1
  149. package/dist/mutations/form.js.map +1 -1
  150. package/dist/mutations/types.d.ts +7 -0
  151. package/dist/mutations/types.d.ts.map +1 -1
  152. package/dist/ops/tidying.d.ts.map +1 -1
  153. package/dist/ops/tidying.js +3 -0
  154. package/dist/ops/tidying.js.map +1 -1
  155. package/dist/schema/choice-words.d.ts +16 -0
  156. package/dist/schema/choice-words.d.ts.map +1 -0
  157. package/dist/schema/choice-words.js +31 -0
  158. package/dist/schema/choice-words.js.map +1 -0
  159. package/dist/schema/define-node.d.ts +2 -1
  160. package/dist/schema/define-node.d.ts.map +1 -1
  161. package/dist/schema/define-node.js +3 -15
  162. package/dist/schema/define-node.js.map +1 -1
  163. package/dist/schema/humanize.d.ts +3 -0
  164. package/dist/schema/humanize.d.ts.map +1 -0
  165. package/dist/schema/humanize.js +18 -0
  166. package/dist/schema/humanize.js.map +1 -0
  167. package/dist/schema/json-schema.d.ts.map +1 -1
  168. package/dist/schema/json-schema.js +2 -1
  169. package/dist/schema/json-schema.js.map +1 -1
  170. package/dist/schema/reading.d.ts.map +1 -1
  171. package/dist/schema/reading.js +10 -2
  172. package/dist/schema/reading.js.map +1 -1
  173. package/dist/schema/types.d.ts +9 -0
  174. package/dist/schema/types.d.ts.map +1 -1
  175. package/dist/search.d.ts.map +1 -1
  176. package/dist/search.js +2 -0
  177. package/dist/search.js.map +1 -1
  178. package/dist/sync/connection.js +1 -1
  179. package/dist/theme/accent.d.ts.map +1 -1
  180. package/dist/theme/accent.js +2 -2
  181. package/dist/theme/accent.js.map +1 -1
  182. package/dist/theme/derive.d.ts +10 -1
  183. package/dist/theme/derive.d.ts.map +1 -1
  184. package/dist/theme/derive.js +1 -1
  185. package/dist/theme/derive.js.map +1 -1
  186. package/dist/theme/ground-check.d.ts +12 -0
  187. package/dist/theme/ground-check.d.ts.map +1 -1
  188. package/dist/theme/ground-check.js +37 -11
  189. package/dist/theme/ground-check.js.map +1 -1
  190. package/dist/theme/ground.d.ts +28 -7
  191. package/dist/theme/ground.d.ts.map +1 -1
  192. package/dist/theme/ground.js +62 -18
  193. package/dist/theme/ground.js.map +1 -1
  194. package/dist/tidying.d.ts +10 -0
  195. package/dist/tidying.d.ts.map +1 -1
  196. package/dist/tidying.js +17 -0
  197. package/dist/tidying.js.map +1 -1
  198. package/dist/version.d.ts +1 -1
  199. package/dist/version.js +1 -1
  200. package/dist/when-typed.d.ts +7 -0
  201. package/dist/when-typed.d.ts.map +1 -1
  202. package/dist/when-typed.js +24 -0
  203. package/dist/when-typed.js.map +1 -1
  204. package/dist/words.d.ts +1 -1
  205. package/dist/words.d.ts.map +1 -1
  206. package/dist/words.js +1 -1
  207. package/dist/words.js.map +1 -1
  208. package/package.json +17 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-findings.js","sourceRoot":"","sources":["../../src/document/design-findings.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export interface EditOptions {
31
31
  readonly views?: readonly HostView[];
32
32
  }
33
33
  /** The ops, for tool schemas and the guide. */
34
- export declare const EDIT_OPS: readonly ["add-kind", "rename-kind", "remove-kind", "add-field", "rename-field", "retype-field", "set-options", "set-range", "set-format", "set-required", "set-default", "set-repeats", "remove-field", "add-relation", "rename-relation", "remove-relation", "add-act", "remove-act", "add-rule", "remove-rule", "set-brand", "set-name", "set-description", "set-label", "set-describe", "set-view", "set-glance", "set-page-fields", "add-lens", "remove-lens", "set-lens-hidden", "set-lens-export", "set-home", "arrange-pages", "set-computed", "set-people", "set-archives", "set-tidying", "add-grant", "remove-grant", "add-sight", "remove-sight"];
34
+ export declare const EDIT_OPS: readonly ["add-kind", "rename-kind", "remove-kind", "add-field", "rename-field", "retype-field", "set-options", "set-range", "set-format", "set-required", "set-default", "set-repeats", "remove-field", "add-relation", "rename-relation", "remove-relation", "add-act", "remove-act", "add-rule", "remove-rule", "set-brand", "set-name", "set-description", "set-label", "set-describe", "set-view", "set-glance", "set-page-fields", "add-lens", "remove-lens", "set-lens-hidden", "set-lens-export", "set-home", "arrange-pages", "set-computed", "set-people", "set-archives", "set-tidying", "add-grant", "remove-grant", "add-sight", "remove-sight", "set-purpose", "add-job", "edit-job", "remove-job", "add-alias", "set-aliases"];
35
35
  export type EditOp = (typeof EDIT_OPS)[number];
36
36
  /** One edit as `editDocument` takes it: an op from EDIT_OPS and that op's own keys. */
37
37
  export type DocumentEdit = {
@@ -1 +1 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/document/edit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/document/edit.ts"],"names":[],"mappings":"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"}
@@ -14,9 +14,13 @@ const refusedFormat = (format, type) => {
14
14
  return `${sentence}; ${fix}`;
15
15
  };
16
16
  import { farEnd } from "./far-end.js";
17
+ import { jobFindings, jobWorldOfDocument } from "../job-findings.js";
18
+ import { JobSpec } from "./purpose-spec.js";
19
+ import { aliasWord, documentAliasFindings } from "../alias-findings.js";
20
+ import { humanizeField, withArticle } from "../schema/define-node.js";
17
21
  import { linkedRelationFindings } from "./linked-relation-findings.js";
18
22
  import { linkedRelationOfSpec, reachesAnotherApp } from "../schema/linked.js";
19
- import { ActSpec, EDGE_NAME, EdgeSpec, FIELD_NAME, FIELD_TYPES, FieldSpec, GrantSpec, KindSpec, NAME, RuleSpec, SightSpec, } from "./schema.js";
23
+ import { ActSpec, ALIAS, MOST_ALIASES, EDGE_NAME, EdgeSpec, FIELD_NAME, FIELD_TYPES, FieldSpec, GrantSpec, KindSpec, NAME, RuleSpec, SightSpec, } from "./schema.js";
20
24
  import { SHIPPED_LENSES, isShippedLens, SHIPPED_LENS_NAMES, unknownLensOption, viewReference } from "../places.js";
21
25
  import { LENSES_THAT_LIST, listsRecords } from "../lenses-that-list.js";
22
26
  import { placeSlug, VIEW_REFERENCE } from "../views/types.js";
@@ -33,7 +37,7 @@ import { isRecord as isObject, respellDocument } from "./respell.js";
33
37
  import { refName } from "./compiled.js";
34
38
  import { localeSentence, timeZoneSentence } from "./diff.js";
35
39
  import { accentProblem } from "../theme/accent.js";
36
- import { groundProblem } from "../theme/ground-check.js";
40
+ import { darkPageFor, groundProblem } from "../theme/ground-check.js";
37
41
  import { pageFieldFindings, pageNames, renamedOnPage, withoutOnPage } from "./page-fields.js";
38
42
  import { capitalize, listed as listOf } from "../capital.js";
39
43
  import { quoted } from "./quote.js";
@@ -82,6 +86,12 @@ export const EDIT_OPS = [
82
86
  "remove-grant",
83
87
  "add-sight",
84
88
  "remove-sight",
89
+ "set-purpose",
90
+ "add-job",
91
+ "edit-job",
92
+ "remove-job",
93
+ "add-alias",
94
+ "set-aliases",
85
95
  ];
86
96
  /** Words the rule language keeps: a field or relation renamed to one could not be named in a rule. */
87
97
  const KEYWORDS = new Set(["and", "or", "not", "in", "where", "true", "false", "null"]);
@@ -102,6 +112,7 @@ function buildShapes() {
102
112
  const edgeName = z.string().regex(EDGE_NAME, 'relation names are one camelCase word, like "tendedBy"');
103
113
  const actName = z.string().regex(NAME, 'act names are lower-case words joined by hyphens, like "mark-paid"');
104
114
  const lensTitle = z.string().min(1).max(80);
115
+ const jobName = z.string().regex(NAME, 'job names are lower-case words joined by hyphens, like "unbooked-soon"');
105
116
  return {
106
117
  "add-kind": z.object({ op: z.literal("add-kind"), kind: kindName, act: z.boolean().optional() }).passthrough(),
107
118
  "rename-kind": z.object({ op: z.literal("rename-kind"), kind: kindName, to: kindName, noun: z.string().min(1).max(40).optional(), plural: z.string().min(1).max(40).optional() }).strict(),
@@ -109,7 +120,7 @@ function buildShapes() {
109
120
  "add-field": z.object({ op: z.literal("add-field"), kind: kindName, field: fieldName, fill: z.unknown().optional(), spec: z.record(z.string(), z.unknown()).optional() }).passthrough(),
110
121
  "rename-field": z.object({ op: z.literal("rename-field"), kind: kindName, field: fieldName, to: fieldName }).strict(),
111
122
  "retype-field": z.object({ op: z.literal("retype-field"), kind: kindName, field: fieldName, type: z.enum(FIELD_TYPES), options: z.array(z.string().min(1).max(80)).min(1).max(100).optional(), of: z.enum(["string", "number", "date", "image", "video", "file"]).optional(), format: z.enum(["money", "percent", "duration", "markdown"]).optional() }).strict(),
112
- "set-options": z.object({ op: z.literal("set-options"), kind: kindName, field: fieldName, add: z.array(z.string().min(1).max(80)).optional(), remove: z.array(z.string().min(1).max(80)).optional() }).strict(),
123
+ "set-options": z.object({ op: z.literal("set-options"), kind: kindName, field: fieldName, add: z.array(z.string().min(1).max(80)).optional(), remove: z.array(z.string().min(1).max(80)).optional(), labels: z.record(z.string().min(1).max(80), z.union([z.string().min(1).max(80), z.null()])).optional() }).strict(),
113
124
  "set-format": z.object({ op: z.literal("set-format"), kind: kindName, field: fieldName, format: z.union([z.enum(["money", "percent", "duration", "markdown"]), z.null()]).optional(), unit: z.union([z.string().min(1).max(12), z.null()]).optional() }).strict(),
114
125
  "set-range": z.object({ op: z.literal("set-range"), kind: kindName, field: fieldName, min: z.union([z.number(), z.null()]).optional(), max: z.union([z.number(), z.null()]).optional(), step: z.union([z.number().positive(), z.null()]).optional() }).strict(),
115
126
  "set-required": z.object({ op: z.literal("set-required"), kind: kindName, field: fieldName, required: z.boolean() }).strict(),
@@ -229,6 +240,28 @@ function buildShapes() {
229
240
  "remove-grant": z.object({ op: z.literal("remove-grant") }).passthrough(),
230
241
  "add-sight": z.object({ op: z.literal("add-sight") }).passthrough(),
231
242
  "remove-sight": z.object({ op: z.literal("remove-sight") }).passthrough(),
243
+ // Who the app is for, in words (Roadmap f-app-jobs); null takes the sentence away.
244
+ "set-purpose": z.object({ op: z.literal("set-purpose"), for: z.union([z.string().min(1).max(300), z.null()]) }).strict(),
245
+ // A job as the document holds one (`purpose.jobs[]`), placed at `at` or last.
246
+ "add-job": z.object({ op: z.literal("add-job"), job: z.record(z.string(), z.unknown()), at: z.number().int().min(0).optional() }).strict(),
247
+ // A job by its name, each key given set, null clearing an optional one.
248
+ "edit-job": z
249
+ .object({
250
+ op: z.literal("edit-job"),
251
+ name: jobName,
252
+ ask: z.string().min(1).max(200).optional(),
253
+ kind: kindName.optional(),
254
+ where: z.union([z.string().min(1).max(2000), z.null()]).optional(),
255
+ sort: z.union([listKey, z.object({ by: listKey, direction: listDirection }).strict(), z.null()]).optional(),
256
+ act: z.union([actName, z.null()]).optional(),
257
+ roles: z.union([z.array(z.string().regex(NAME)).min(1).max(40), z.null()]).optional(),
258
+ })
259
+ .strict(),
260
+ "remove-job": z.object({ op: z.literal("remove-job"), name: jobName }).strict(),
261
+ // Another word people use for a kind, or for one of its fields (Roadmap f-learned-suggestions).
262
+ "add-alias": z.object({ op: z.literal("add-alias"), kind: kindName, field: fieldName.optional(), alias: z.string().min(1).max(40) }).strict(),
263
+ // All of a kind's or a field's other words at once; null or [] takes them away.
264
+ "set-aliases": z.object({ op: z.literal("set-aliases"), kind: kindName, field: fieldName.optional(), aliases: z.union([z.array(z.string().min(1).max(40)).max(MOST_ALIASES), z.null()]) }).strict(),
232
265
  };
233
266
  }
234
267
  let shapes;
@@ -564,9 +597,48 @@ class Editor {
564
597
  else if (e.accent !== undefined) {
565
598
  if (!/^#[0-9a-fA-F]{6}$/.test(e.accent))
566
599
  return this.fail(i, "accent", 'an accent is a color like "#c2577a"');
567
- const refused = accentProblem(e.accent);
600
+ }
601
+ /*
602
+ * The accent and the ground are judged together, as the page draws
603
+ * them: the ground first — the words on it — then the
604
+ * accent on the ground it is actually drawn on, this edit's or the
605
+ * app's (Roadmap f-dark-brand-accent), then the whole palette once
606
+ * more, so what is kept is what `checkBrandContrast` passes.
607
+ */
608
+ const accent = e.accent === null ? undefined : (e.accent ?? brand["accent"]);
609
+ const ground = e.ground === null ? undefined : (e.ground ?? brand["ground"]);
610
+ const json = (value) => JSON.stringify(value).replace(/","/g, '", "').replace(/":"/g, '": "');
611
+ const fixed = (ground, also = "") => `{"op": "set-brand", "ground": ${json(ground)}${also}}`;
612
+ if (e.ground !== undefined && e.ground !== null) {
613
+ // With the accent the app keeps, the ground is judged with it; an accent this edit also sets is judged on the ground next.
614
+ const refused = groundProblem(e.ground, e.accent === undefined ? accent : undefined);
568
615
  if (refused)
569
- return this.fail(i, "accent", refused.sentence, refused.suggestion ? `{"op": "set-brand", "accent": "${refused.suggestion}"}` : "pick a color of another hue");
616
+ return this.fail(i, "ground", refused.sentence, refused.suggestion ? fixed(typeof e.ground === "string" ? refused.suggestion : { ...e.ground, [refused.scheme]: refused.suggestion }) : "pick a lighter color for the light scheme, a darker one for the dark");
617
+ }
618
+ if (accent !== undefined && (e.accent !== undefined || e.ground !== undefined)) {
619
+ const unread = accentProblem(accent, ground);
620
+ if (unread) {
621
+ // A bright accent that reads on a dark page is answered with that pair as well as with a darker shade, never refused outright.
622
+ const page = darkPageFor(accent, ground);
623
+ if (e.accent !== undefined) {
624
+ // The shade is judged on this edit's ground, so the fix carries it.
625
+ const withGround = e.ground !== undefined ? `, "ground": ${json(e.ground)}` : "";
626
+ const fixes = [
627
+ ...(unread.suggestion ? [`{"op": "set-brand", "accent": "${unread.suggestion}"${withGround}}`] : []),
628
+ ...(page ? [`keep ${accent} on a dark page: {"op": "set-brand", "accent": "${accent}", "ground": ${json(page)}}`] : []),
629
+ ];
630
+ return this.fail(i, "accent", unread.sentence, fixes.length > 0 ? capitalize(fixes.join(", or ")) : "pick a color of another hue");
631
+ }
632
+ // The accent the app keeps is judged on the new ground as it was on the old (FR-126).
633
+ return this.fail(i, "ground", unread.sentence, unread.suggestion ? fixed(e.ground, `, "accent": "${unread.suggestion}"`) : "pick another ground, or another accent");
634
+ }
635
+ }
636
+ if (ground !== undefined && (e.accent !== undefined || e.ground !== undefined)) {
637
+ const refused = groundProblem(ground, accent);
638
+ if (refused)
639
+ return this.fail(i, e.ground !== undefined ? "ground" : "accent", refused.sentence, refused.suggestion ? fixed(typeof ground === "string" ? refused.suggestion : { ...ground, [refused.scheme]: refused.suggestion }) : "pick another ground, or another accent");
640
+ }
641
+ if (e.accent !== undefined && e.accent !== null) {
570
642
  brand["accent"] = e.accent;
571
643
  this.said.push(`The app's accent color becomes ${e.accent}.`);
572
644
  }
@@ -576,15 +648,6 @@ class Editor {
576
648
  delete brand["ground"];
577
649
  }
578
650
  else if (e.ground !== undefined) {
579
- const accent = brand["accent"];
580
- const refused = groundProblem(e.ground, accent);
581
- const fixed = (ground, also = "") => `{"op": "set-brand", "ground": ${JSON.stringify(ground).replace(/","/g, '", "').replace(/":"/g, '": "')}${also}}`;
582
- if (refused)
583
- return this.fail(i, "ground", refused.sentence, refused.suggestion ? fixed(typeof e.ground === "string" ? refused.suggestion : { ...e.ground, [refused.scheme]: refused.suggestion }) : "pick a lighter color for the light scheme, a darker one for the dark");
584
- // The accent the app keeps is judged on the new ground as it was on the old (FR-126).
585
- const unread = accent ? accentProblem(accent, e.ground) : null;
586
- if (unread)
587
- return this.fail(i, "ground", unread.sentence, unread.suggestion ? fixed(e.ground, `, "accent": "${unread.suggestion}"`) : "pick another ground, or another accent");
588
651
  brand["ground"] = e.ground;
589
652
  this.said.push(groundWords(e.ground));
590
653
  }
@@ -946,7 +1009,144 @@ class Editor {
946
1009
  case "add-sight":
947
1010
  case "remove-sight":
948
1011
  return this.policyEdit(i, e);
1012
+ case "set-purpose":
1013
+ return this.setPurpose(e);
1014
+ case "add-job":
1015
+ return this.addJob(i, e);
1016
+ case "edit-job":
1017
+ return this.editJob(i, e);
1018
+ case "remove-job":
1019
+ return this.removeJob(i, e.name);
1020
+ case "add-alias":
1021
+ return this.setAliases(i, e.kind, e.field, [...this.aliasesOf(e.kind, e.field), e.alias], e.alias);
1022
+ case "set-aliases":
1023
+ return this.setAliases(i, e.kind, e.field, e.aliases ?? []);
1024
+ }
1025
+ }
1026
+ // ── other words for a kind or a field (Roadmap f-learned-suggestions) ──
1027
+ aliasesOf(kind, field) {
1028
+ const spec = this.doc.kinds[kind];
1029
+ return (field ? spec?.fields?.[field]?.aliases : spec?.aliases) ?? [];
1030
+ }
1031
+ /**
1032
+ * A kind's or a field's aliases, as words people search with: lower case,
1033
+ * each once. Refused, in the checker's words, when one is not a word or is
1034
+ * what something else in the app is already called. `added` is the one
1035
+ * word `add-alias` gave, said alone.
1036
+ */
1037
+ setAliases(i, kind, field, given, added) {
1038
+ const spec = this.kind(i, kind);
1039
+ if (!spec)
1040
+ return;
1041
+ const target = field ? this.field(i, kind, field) : spec;
1042
+ if (!target)
1043
+ return;
1044
+ const said = [...new Set(given.map(aliasWord))];
1045
+ const at = added === undefined ? "aliases" : "alias";
1046
+ for (const [n, word] of said.entries())
1047
+ if (!ALIAS.test(word))
1048
+ return this.fail(i, added === undefined ? `aliases.${n}` : at, `"${word}" is not a word people search with: one to three words of letters and digits`, 'like "supplier" or "wedding venue"');
1049
+ if (said.length > MOST_ALIASES)
1050
+ return this.fail(i, at, `at most ${MOST_ALIASES} other words for one ${field ? "field" : "kind"}`);
1051
+ const before = target.aliases;
1052
+ if (said.length === 0)
1053
+ delete target.aliases;
1054
+ else
1055
+ target.aliases = said;
1056
+ const wrong = documentAliasFindings(this.doc).filter((finding) => finding.path.startsWith(`kinds.${kind}${field ? `.fields.${field}` : ""}.aliases`));
1057
+ if (wrong.length > 0) {
1058
+ if (before === undefined)
1059
+ delete target.aliases;
1060
+ else
1061
+ target.aliases = before;
1062
+ return this.fail(i, at, wrong[0].message, wrong[0].fix);
1063
+ }
1064
+ const whose = field ? `${kind}'s ${field}` : withArticle(spec.noun ?? words(kind));
1065
+ if (added !== undefined)
1066
+ this.said.push(`Search and the seat take “${aliasWord(added)}” as another word for ${whose}.`);
1067
+ else
1068
+ this.said.push(said.length === 0 ? `${capitalize(whose)} has no other words now.` : `Other words for ${whose}: ${listOf(said.map((word) => `“${word}”`))}.`);
1069
+ }
1070
+ // ── who the app is for, and what they come to do (Roadmap f-app-jobs) ──
1071
+ setPurpose(e) {
1072
+ const purpose = { ...(this.doc.purpose ?? {}) };
1073
+ if (e.for === null)
1074
+ delete purpose.for;
1075
+ else
1076
+ purpose.for = e.for;
1077
+ this.keepPurpose(purpose);
1078
+ this.said.push(e.for === null ? "The app no longer says whom it is for." : `The app says it is for ${quotedAtTheEnd(e.for)}`);
1079
+ }
1080
+ /** The purpose as it now stands, or none when it says nothing. */
1081
+ keepPurpose(purpose) {
1082
+ if (Array.isArray(purpose.jobs) && purpose.jobs.length === 0)
1083
+ delete purpose.jobs;
1084
+ if (Object.keys(purpose).length === 0)
1085
+ delete this.doc.purpose;
1086
+ else
1087
+ this.doc.purpose = purpose;
1088
+ }
1089
+ /** The job a name names, or -1 having said why. */
1090
+ jobIndex(i, name) {
1091
+ const jobs = this.doc.purpose?.jobs ?? [];
1092
+ const index = jobs.findIndex((job) => job.name === name);
1093
+ if (index < 0)
1094
+ this.fail(i, "name", `there is no job "${name}"${jobs.length > 0 ? `; the jobs are ${jobs.map((job) => `"${job.name}"`).join(", ")}` : ""}`);
1095
+ return index;
1096
+ }
1097
+ /** A job placed among the others, judged as `graview check` judges it (`job-*`): kept only when nothing is wrong with it. */
1098
+ placeJob(i, job, at, replacing) {
1099
+ const jobs = [...(this.doc.purpose?.jobs ?? [])];
1100
+ if (replacing)
1101
+ jobs[at] = job;
1102
+ else
1103
+ jobs.splice(at, 0, job);
1104
+ const wrong = jobFindings({ ...this.doc.purpose, jobs }, jobWorldOfDocument(this.doc)).filter((finding) => finding.index === at || (finding.code === "jobs-too-many" && !replacing) || (finding.code === "job-name-taken" && jobs[finding.index ?? -1]?.name === job.name));
1105
+ for (const finding of wrong)
1106
+ this.failAs(finding.code, i, finding.code === "jobs-too-many" ? "" : `job.${finding.key ?? ""}`, finding.message, finding.fix);
1107
+ if (wrong.length > 0)
1108
+ return false;
1109
+ this.keepPurpose({ ...(this.doc.purpose ?? {}), jobs });
1110
+ return true;
1111
+ }
1112
+ addJob(i, e) {
1113
+ const parsed = JobSpec.safeParse(e.job);
1114
+ if (!parsed.success)
1115
+ return this.refuse(i, parsed.error.issues.map((issue) => ({ ...issue, path: ["job", ...issue.path] })), "a job");
1116
+ const job = parsed.data;
1117
+ const jobs = this.doc.purpose?.jobs ?? [];
1118
+ if (!this.placeJob(i, job, Math.min(e.at ?? jobs.length, jobs.length), false))
1119
+ return;
1120
+ this.said.push(`A new job, ${quoted(job.ask)}: ${jobWords(this.doc, job)}.`);
1121
+ }
1122
+ editJob(i, e) {
1123
+ const index = this.jobIndex(i, e.name);
1124
+ if (index < 0)
1125
+ return;
1126
+ const job = { ...this.doc.purpose.jobs[index] };
1127
+ const changed = ["ask", "kind", "where", "sort", "act", "roles"].filter((key) => e[key] !== undefined);
1128
+ if (changed.length === 0)
1129
+ return this.fail(i, "", "an edit-job names at least one of ask, kind, where, sort, act or roles to change", `{"op": "edit-job", "name": "${e.name}", "ask": "…"}`);
1130
+ for (const key of changed) {
1131
+ if (e[key] === null) {
1132
+ if (key === "ask" || key === "kind")
1133
+ return this.fail(i, key, `a job always has its ${key}`);
1134
+ delete job[key];
1135
+ }
1136
+ else
1137
+ job[key] = e[key];
949
1138
  }
1139
+ if (!this.placeJob(i, job, index, true))
1140
+ return;
1141
+ this.said.push(`The job "${job.name}", ${quoted(job.ask)}, is now ${jobWords(this.doc, job)}.`);
1142
+ }
1143
+ removeJob(i, name) {
1144
+ const index = this.jobIndex(i, name);
1145
+ if (index < 0)
1146
+ return;
1147
+ const [job] = this.doc.purpose.jobs.splice(index, 1);
1148
+ this.keepPurpose({ ...this.doc.purpose });
1149
+ this.said.push(`The job "${job.name}" (${quotedAtTheEnd(job.ask)}) is removed.`);
950
1150
  }
951
1151
  /** How a record's page orders and groups its facts (FR-148): judged as the compile judges `kinds.<kind>.page`. */
952
1152
  setPageFields(i, e) {
@@ -2090,7 +2290,7 @@ class Editor {
2090
2290
  gone.push(...this.dropComputed(other, name));
2091
2291
  }
2092
2292
  }
2093
- gone.push(...this.pruneViews(swept), ...this.pruneLenses(swept));
2293
+ gone.push(...this.pruneViews(swept), ...this.pruneLenses(swept), ...this.pruneJobs(swept));
2094
2294
  // The arrangement names kinds (FR-80): a kind that is gone is no longer ordered or hidden, nor where the app opens.
2095
2295
  if (this.doc.pages) {
2096
2296
  for (const part of ["order", "hide", "primary"]) {
@@ -2225,6 +2425,12 @@ class Editor {
2225
2425
  f.options = e.options ?? f.options;
2226
2426
  else
2227
2427
  delete f.options;
2428
+ // An option's label goes with the option.
2429
+ if (f.optionLabels) {
2430
+ f.optionLabels = Object.fromEntries(Object.entries(f.optionLabels).filter(([o]) => (f.options ?? []).includes(o)));
2431
+ if (Object.keys(f.optionLabels).length === 0)
2432
+ delete f.optionLabels;
2433
+ }
2228
2434
  if (e.type === "list")
2229
2435
  f.of = e.of ?? f.of ?? "string";
2230
2436
  else
@@ -2332,12 +2538,34 @@ class Editor {
2332
2538
  const options = [...f.options.filter((o) => !remove.includes(o)), ...add];
2333
2539
  if (options.length === 0)
2334
2540
  return this.fail(i, "remove", "a choice keeps at least one option");
2541
+ // What an option is called on screen (Roadmap f-option-labels): a label given sets it, `null` goes back to the option's id spoken.
2542
+ const labels = Object.entries((e.labels ?? {}));
2543
+ const unlabeled = labels.filter(([o]) => !options.includes(o)).map(([o]) => o);
2544
+ if (unlabeled.length)
2545
+ return this.fail(i, "labels", `${e.field} does not offer ${unlabeled.map((o) => `"${o}"`).join(", ")}; label one of ${options.join(", ")}`);
2546
+ if (!add.length && !remove.length && !labels.length)
2547
+ return this.fail(i, "add", 'say what to "add", what to "remove", or the "labels" of options');
2335
2548
  f.options = options;
2549
+ const kept = Object.fromEntries(Object.entries((f.optionLabels ?? {})).filter(([o]) => options.includes(o)));
2550
+ for (const [o, label] of labels) {
2551
+ if (label === null)
2552
+ delete kept[o];
2553
+ else
2554
+ kept[o] = label;
2555
+ }
2556
+ if (Object.keys(kept).length > 0)
2557
+ f.optionLabels = kept;
2558
+ else
2559
+ delete f.optionLabels;
2560
+ const spoken = (o) => (kept[o] !== undefined && kept[o] !== o ? `"${o}" (${kept[o]})` : `"${o}"`);
2336
2561
  const out = [];
2337
2562
  if (add.length)
2338
- out.push(`now also offers ${add.map((o) => `"${o}"`).join(", ")}`);
2563
+ out.push(`now also offers ${add.map(spoken).join(", ")}`);
2339
2564
  if (remove.length)
2340
2565
  out.push(`no longer offers ${remove.map((o) => `"${o}"`).join(", ")}`);
2566
+ const relabeled = labels.filter(([o]) => !add.includes(o));
2567
+ if (relabeled.length)
2568
+ out.push(relabeled.map(([o, label]) => (label === null ? `says "${o}" as ${humanizeField(o)}` : `says "${o}" as ${label}`)).join(", "));
2341
2569
  if (f.default !== undefined && remove.includes(f.default)) {
2342
2570
  delete f.default;
2343
2571
  out.push("has no default now");
@@ -2556,6 +2784,13 @@ class Editor {
2556
2784
  else
2557
2785
  delete rule.repairs;
2558
2786
  }
2787
+ // A job asks the same question without it: only what people do next is let go.
2788
+ for (const job of (this.doc.purpose?.jobs ?? [])) {
2789
+ if (job.act !== act)
2790
+ continue;
2791
+ delete job.act;
2792
+ gone.push(`what the job "${job.name}" does next`);
2793
+ }
2559
2794
  return gone;
2560
2795
  }
2561
2796
  addRule(i, e) {
@@ -2585,6 +2820,9 @@ class Editor {
2585
2820
  for (const r of rule.repairs ?? [])
2586
2821
  if (r.act === from)
2587
2822
  r.act = to;
2823
+ for (const job of (this.doc.purpose?.jobs ?? []))
2824
+ if (job.act === from)
2825
+ job.act = to;
2588
2826
  }
2589
2827
  // ── every place a name is said ──
2590
2828
  /**
@@ -2836,8 +3074,46 @@ class Editor {
2836
3074
  if (JSON.stringify(doc.pages) !== before)
2837
3075
  touched.push("the pages");
2838
3076
  }
3077
+ // Jobs (Roadmap f-app-jobs): what each is answered by, what its where reads, what it sorts by and the act it names.
3078
+ for (const job of (doc.purpose?.jobs ?? [])) {
3079
+ const before = JSON.stringify(job);
3080
+ if (job.where !== undefined)
3081
+ job.where = exprAt(job.where, new Set([job.kind]));
3082
+ const by = typeof job.sort === "string" ? job.sort : job.sort?.by;
3083
+ if (r.t === "field" && job.kind === r.kind && by === r.from)
3084
+ job.sort = typeof job.sort === "string" ? r.to : { ...job.sort, by: r.to };
3085
+ if (r.t === "kind" && job.kind === r.from)
3086
+ job.kind = r.to;
3087
+ if (job.act !== undefined && r.t === "kind")
3088
+ job.act = renamedAct(job.act, r.from, r.to);
3089
+ if (job.act !== undefined && (r.t === "kind" || r.t === "edge"))
3090
+ job.act = renamedRelationAct(job.act, doc.kinds, r);
3091
+ if (JSON.stringify(job) !== before)
3092
+ touched.push(`the job "${job.name}"`);
3093
+ }
2839
3094
  return touched;
2840
3095
  }
3096
+ /** Jobs that can no longer be answered as asked go — a where that reads what is going, a kind that is gone — and an order by it is let go. */
3097
+ pruneJobs(r) {
3098
+ const purpose = this.doc.purpose;
3099
+ if (!purpose?.jobs)
3100
+ return [];
3101
+ const gone = [];
3102
+ purpose.jobs = purpose.jobs.filter((job) => {
3103
+ if ((r.t === "kind" && job.kind === r.from) || exprMentions(this.doc, job.where, new Set([job.kind]), r)) {
3104
+ gone.push(`the job "${job.name}"`);
3105
+ return false;
3106
+ }
3107
+ const by = typeof job.sort === "string" ? job.sort : job.sort?.by;
3108
+ if (r.t === "field" && job.kind === r.kind && by === r.from) {
3109
+ delete job.sort;
3110
+ gone.push(`the order of the job "${job.name}"`);
3111
+ }
3112
+ return true;
3113
+ });
3114
+ this.keepPurpose({ ...purpose });
3115
+ return gone;
3116
+ }
2841
3117
  /**
2842
3118
  * Remove what mentions a field or relation that is going: acts that write or walk
2843
3119
  * it, rules that judge it, view blocks that show it; templates that show it fall
@@ -2934,6 +3210,7 @@ class Editor {
2934
3210
  delete doc.rules;
2935
3211
  gone.push(...this.pruneViews(r));
2936
3212
  gone.push(...this.pruneLenses(r));
3213
+ gone.push(...this.pruneJobs(r));
2937
3214
  return gone;
2938
3215
  }
2939
3216
  /** Computed fields being dropped, so a cycle among them ends. */
@@ -3138,6 +3415,16 @@ class Editor {
3138
3415
  return said;
3139
3416
  }
3140
3417
  }
3418
+ /** How a job is answered, in words: "answered by the vendors where status != 'booked', sorted by due, then book". */
3419
+ function jobWords(doc, job) {
3420
+ const sort = typeof job.sort === "string" ? { by: job.sort, direction: "asc" } : job.sort;
3421
+ return [
3422
+ `answered by the ${pluralWords(doc, job.kind).toLowerCase()}${job.where ? ` where ${job.where}` : ""}`,
3423
+ ...(sort ? [`sorted by ${sort.by}${sort.direction === "desc" ? ", highest first" : ""}`] : []),
3424
+ ...(job.act ? [`then "${job.act}"`] : []),
3425
+ ...(job.roles ? [`for ${listOf(job.roles)}`] : []),
3426
+ ].join(", ");
3427
+ }
3141
3428
  /** What the people and the policy make together, as `graview check` judges it (`checkPeople`), said over the document. */
3142
3429
  function peopleProblems(doc, at) {
3143
3430
  const out = [];