@graview/core 0.1.62 → 0.1.64

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 (340) hide show
  1. package/dist/app.d.ts +12 -0
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js.map +1 -1
  4. package/dist/arranging.js +2 -2
  5. package/dist/arranging.js.map +1 -1
  6. package/dist/cli/check/index.d.ts +1 -0
  7. package/dist/cli/check/index.d.ts.map +1 -1
  8. package/dist/cli/check/index.js +1 -0
  9. package/dist/cli/check/index.js.map +1 -1
  10. package/dist/cli/check/workflows.d.ts +11 -0
  11. package/dist/cli/check/workflows.d.ts.map +1 -0
  12. package/dist/cli/check/workflows.js +20 -0
  13. package/dist/cli/check/workflows.js.map +1 -0
  14. package/dist/cli/check.d.ts.map +1 -1
  15. package/dist/cli/check.js +2 -1
  16. package/dist/cli/check.js.map +1 -1
  17. package/dist/cli/describe.d.ts.map +1 -1
  18. package/dist/cli/describe.js +31 -1
  19. package/dist/cli/describe.js.map +1 -1
  20. package/dist/cli/document-schema.d.ts.map +1 -1
  21. package/dist/cli/document-schema.js +9 -0
  22. package/dist/cli/document-schema.js.map +1 -1
  23. package/dist/compose.d.ts +1 -1
  24. package/dist/compose.d.ts.map +1 -1
  25. package/dist/document/amount.d.ts +1 -1
  26. package/dist/document/amount.d.ts.map +1 -1
  27. package/dist/document/amount.js +2 -2
  28. package/dist/document/amount.js.map +1 -1
  29. package/dist/document/blocks.d.ts.map +1 -1
  30. package/dist/document/blocks.js +17 -1
  31. package/dist/document/blocks.js.map +1 -1
  32. package/dist/document/brand-check.d.ts.map +1 -1
  33. package/dist/document/brand-check.js +8 -2
  34. package/dist/document/brand-check.js.map +1 -1
  35. package/dist/document/compile-checked.d.ts.map +1 -1
  36. package/dist/document/compile-checked.js +4 -2
  37. package/dist/document/compile-checked.js.map +1 -1
  38. package/dist/document/compile.d.ts.map +1 -1
  39. package/dist/document/compile.js +48 -9
  40. package/dist/document/compile.js.map +1 -1
  41. package/dist/document/compiled.d.ts +14 -0
  42. package/dist/document/compiled.d.ts.map +1 -1
  43. package/dist/document/compiled.js +39 -4
  44. package/dist/document/compiled.js.map +1 -1
  45. package/dist/document/connection-findings.js +93 -21
  46. package/dist/document/connection-findings.js.map +1 -1
  47. package/dist/document/connection-spec.d.ts +54 -1
  48. package/dist/document/connection-spec.d.ts.map +1 -1
  49. package/dist/document/connection-spec.js +76 -8
  50. package/dist/document/connection-spec.js.map +1 -1
  51. package/dist/document/derives-findings.d.ts +4 -0
  52. package/dist/document/derives-findings.d.ts.map +1 -0
  53. package/dist/document/derives-findings.js +68 -0
  54. package/dist/document/derives-findings.js.map +1 -0
  55. package/dist/document/describe-forms.js +2 -2
  56. package/dist/document/describe-forms.js.map +1 -1
  57. package/dist/document/diff.d.ts +6 -0
  58. package/dist/document/diff.d.ts.map +1 -1
  59. package/dist/document/diff.js +43 -1
  60. package/dist/document/diff.js.map +1 -1
  61. package/dist/document/edit.d.ts +1 -1
  62. package/dist/document/edit.d.ts.map +1 -1
  63. package/dist/document/edit.js +264 -23
  64. package/dist/document/edit.js.map +1 -1
  65. package/dist/document/expr/evaluate.d.ts +7 -0
  66. package/dist/document/expr/evaluate.d.ts.map +1 -1
  67. package/dist/document/expr/evaluate.js +29 -2
  68. package/dist/document/expr/evaluate.js.map +1 -1
  69. package/dist/document/format-words.d.ts +1 -0
  70. package/dist/document/format-words.d.ts.map +1 -1
  71. package/dist/document/format-words.js +2 -2
  72. package/dist/document/format-words.js.map +1 -1
  73. package/dist/document/kept-in-step-with.d.ts +20 -0
  74. package/dist/document/kept-in-step-with.d.ts.map +1 -0
  75. package/dist/document/kept-in-step-with.js +38 -0
  76. package/dist/document/kept-in-step-with.js.map +1 -0
  77. package/dist/document/kept-in-step.d.ts.map +1 -1
  78. package/dist/document/kept-in-step.js +3 -1
  79. package/dist/document/kept-in-step.js.map +1 -1
  80. package/dist/document/money.d.ts +10 -2
  81. package/dist/document/money.d.ts.map +1 -1
  82. package/dist/document/money.js +14 -5
  83. package/dist/document/money.js.map +1 -1
  84. package/dist/document/policy-words.d.ts +2 -0
  85. package/dist/document/policy-words.d.ts.map +1 -1
  86. package/dist/document/policy-words.js +11 -1
  87. package/dist/document/policy-words.js.map +1 -1
  88. package/dist/document/schema.d.ts +46 -1
  89. package/dist/document/schema.d.ts.map +1 -1
  90. package/dist/document/schema.js +48 -8
  91. package/dist/document/schema.js.map +1 -1
  92. package/dist/document/template-parse.d.ts.map +1 -1
  93. package/dist/document/template-parse.js +7 -1
  94. package/dist/document/template-parse.js.map +1 -1
  95. package/dist/document/template.d.ts +2 -0
  96. package/dist/document/template.d.ts.map +1 -1
  97. package/dist/document/template.js +10 -1
  98. package/dist/document/template.js.map +1 -1
  99. package/dist/document/to-document.js +2 -2
  100. package/dist/document/to-document.js.map +1 -1
  101. package/dist/document/workflow-spec.d.ts +72 -0
  102. package/dist/document/workflow-spec.d.ts.map +1 -0
  103. package/dist/document/workflow-spec.js +45 -0
  104. package/dist/document/workflow-spec.js.map +1 -0
  105. package/dist/document.schema.json +883 -4
  106. package/dist/head.d.ts +81 -0
  107. package/dist/head.d.ts.map +1 -0
  108. package/dist/head.js +123 -0
  109. package/dist/head.js.map +1 -0
  110. package/dist/history.d.ts.map +1 -1
  111. package/dist/history.js +2 -0
  112. package/dist/history.js.map +1 -1
  113. package/dist/index.d.ts +7 -5
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +4 -3
  116. package/dist/index.js.map +1 -1
  117. package/dist/installation.d.ts +1 -1
  118. package/dist/job-findings.d.ts +5 -0
  119. package/dist/job-findings.d.ts.map +1 -1
  120. package/dist/job-findings.js +9 -3
  121. package/dist/job-findings.js.map +1 -1
  122. package/dist/keep-linked.d.ts +45 -0
  123. package/dist/keep-linked.d.ts.map +1 -0
  124. package/dist/keep-linked.js +188 -0
  125. package/dist/keep-linked.js.map +1 -0
  126. package/dist/mutations/derive-edits.js +2 -2
  127. package/dist/mutations/propose-changes.d.ts +24 -0
  128. package/dist/mutations/propose-changes.d.ts.map +1 -0
  129. package/dist/mutations/propose-changes.js +30 -0
  130. package/dist/mutations/propose-changes.js.map +1 -0
  131. package/dist/mutations/vote-suggestion.d.ts +30 -0
  132. package/dist/mutations/vote-suggestion.d.ts.map +1 -1
  133. package/dist/mutations/vote-suggestion.js +23 -0
  134. package/dist/mutations/vote-suggestion.js.map +1 -1
  135. package/dist/mutations/words.js +3 -3
  136. package/dist/ops/digest.d.ts +3 -1
  137. package/dist/ops/digest.d.ts.map +1 -1
  138. package/dist/ops/digest.js +7 -2
  139. package/dist/ops/digest.js.map +1 -1
  140. package/dist/ops/lineage.d.ts +19 -2
  141. package/dist/ops/lineage.d.ts.map +1 -1
  142. package/dist/ops/lineage.js +8 -4
  143. package/dist/ops/lineage.js.map +1 -1
  144. package/dist/ops/log.d.ts.map +1 -1
  145. package/dist/ops/log.js +13 -2
  146. package/dist/ops/log.js.map +1 -1
  147. package/dist/ops/suggestions.d.ts +47 -5
  148. package/dist/ops/suggestions.d.ts.map +1 -1
  149. package/dist/ops/suggestions.js +88 -13
  150. package/dist/ops/suggestions.js.map +1 -1
  151. package/dist/ops/tidying.d.ts.map +1 -1
  152. package/dist/ops/tidying.js +6 -1
  153. package/dist/ops/tidying.js.map +1 -1
  154. package/dist/ops/types.d.ts +28 -0
  155. package/dist/ops/types.d.ts.map +1 -1
  156. package/dist/ops/undo.d.ts.map +1 -1
  157. package/dist/ops/undo.js +17 -0
  158. package/dist/ops/undo.js.map +1 -1
  159. package/dist/permissions/policy.d.ts +7 -0
  160. package/dist/permissions/policy.d.ts.map +1 -1
  161. package/dist/permissions/policy.js +12 -0
  162. package/dist/permissions/policy.js.map +1 -1
  163. package/dist/permissions/types.d.ts +27 -0
  164. package/dist/permissions/types.d.ts.map +1 -1
  165. package/dist/permissions/types.js.map +1 -1
  166. package/dist/places.d.ts +10 -0
  167. package/dist/places.d.ts.map +1 -1
  168. package/dist/places.js +35 -1
  169. package/dist/places.js.map +1 -1
  170. package/dist/scene.d.ts +2 -0
  171. package/dist/scene.d.ts.map +1 -1
  172. package/dist/scene.js +2 -0
  173. package/dist/scene.js.map +1 -1
  174. package/dist/schema/amount-mark.d.ts +2 -0
  175. package/dist/schema/amount-mark.d.ts.map +1 -1
  176. package/dist/schema/amount-mark.js.map +1 -1
  177. package/dist/schema/amount-words.js +2 -2
  178. package/dist/schema/amount-words.js.map +1 -1
  179. package/dist/schema/choice-words.js +2 -2
  180. package/dist/schema/define-node.d.ts +8 -2
  181. package/dist/schema/define-node.d.ts.map +1 -1
  182. package/dist/schema/define-node.js +2 -2
  183. package/dist/schema/define-node.js.map +1 -1
  184. package/dist/schema/humanize.d.ts +17 -0
  185. package/dist/schema/humanize.d.ts.map +1 -1
  186. package/dist/schema/humanize.js +28 -1
  187. package/dist/schema/humanize.js.map +1 -1
  188. package/dist/schema/reading.d.ts +8 -0
  189. package/dist/schema/reading.d.ts.map +1 -1
  190. package/dist/schema/reading.js +16 -2
  191. package/dist/schema/reading.js.map +1 -1
  192. package/dist/schema/types.d.ts +8 -0
  193. package/dist/schema/types.d.ts.map +1 -1
  194. package/dist/schema/value-words.js +2 -2
  195. package/dist/schema/value-words.js.map +1 -1
  196. package/dist/starting-document.d.ts +16 -3
  197. package/dist/starting-document.d.ts.map +1 -1
  198. package/dist/starting-document.js +32 -5
  199. package/dist/starting-document.js.map +1 -1
  200. package/dist/store.d.ts +47 -2
  201. package/dist/store.d.ts.map +1 -1
  202. package/dist/store.js +176 -13
  203. package/dist/store.js.map +1 -1
  204. package/dist/sync/connection.d.ts +24 -5
  205. package/dist/sync/connection.d.ts.map +1 -1
  206. package/dist/sync/connection.js +168 -31
  207. package/dist/sync/connection.js.map +1 -1
  208. package/dist/sync/engine.d.ts +97 -0
  209. package/dist/sync/engine.d.ts.map +1 -1
  210. package/dist/sync/engine.js +159 -1
  211. package/dist/sync/engine.js.map +1 -1
  212. package/dist/sync/google-calendar.d.ts.map +1 -1
  213. package/dist/sync/google-calendar.js +18 -1
  214. package/dist/sync/google-calendar.js.map +1 -1
  215. package/dist/sync/guest-words.d.ts +9 -0
  216. package/dist/sync/guest-words.d.ts.map +1 -0
  217. package/dist/sync/guest-words.js +41 -0
  218. package/dist/sync/guest-words.js.map +1 -0
  219. package/dist/sync/index.d.ts +8 -5
  220. package/dist/sync/index.d.ts.map +1 -1
  221. package/dist/sync/index.js +2 -0
  222. package/dist/sync/index.js.map +1 -1
  223. package/dist/sync/notion-stub.d.ts +4 -1
  224. package/dist/sync/notion-stub.d.ts.map +1 -1
  225. package/dist/sync/notion-stub.js +40 -0
  226. package/dist/sync/notion-stub.js.map +1 -1
  227. package/dist/sync/notion.d.ts +44 -2
  228. package/dist/sync/notion.d.ts.map +1 -1
  229. package/dist/sync/notion.js +289 -143
  230. package/dist/sync/notion.js.map +1 -1
  231. package/dist/sync/status.d.ts +43 -0
  232. package/dist/sync/status.d.ts.map +1 -0
  233. package/dist/sync/status.js +46 -0
  234. package/dist/sync/status.js.map +1 -0
  235. package/dist/sync/types.d.ts +60 -0
  236. package/dist/sync/types.d.ts.map +1 -1
  237. package/dist/sync/types.js.map +1 -1
  238. package/dist/theme/marks.d.ts +12 -0
  239. package/dist/theme/marks.d.ts.map +1 -1
  240. package/dist/theme/marks.js +5 -0
  241. package/dist/theme/marks.js.map +1 -1
  242. package/dist/tidying.d.ts +53 -4
  243. package/dist/tidying.d.ts.map +1 -1
  244. package/dist/tidying.js +110 -8
  245. package/dist/tidying.js.map +1 -1
  246. package/dist/validate-graph.d.ts +2 -1
  247. package/dist/validate-graph.d.ts.map +1 -1
  248. package/dist/validate-graph.js +32 -1
  249. package/dist/validate-graph.js.map +1 -1
  250. package/dist/version.d.ts +1 -1
  251. package/dist/version.js +1 -1
  252. package/dist/words.d.ts +4 -1
  253. package/dist/words.d.ts.map +1 -1
  254. package/dist/words.js +4 -1
  255. package/dist/words.js.map +1 -1
  256. package/dist/workflow-shape.d.ts +223 -0
  257. package/dist/workflow-shape.d.ts.map +1 -0
  258. package/dist/workflow-shape.js +31 -0
  259. package/dist/workflow-shape.js.map +1 -0
  260. package/dist/workflows/findings.d.ts +13 -0
  261. package/dist/workflows/findings.d.ts.map +1 -0
  262. package/dist/workflows/findings.js +157 -0
  263. package/dist/workflows/findings.js.map +1 -0
  264. package/dist/workflows/generate-words.d.ts +12 -0
  265. package/dist/workflows/generate-words.d.ts.map +1 -0
  266. package/dist/workflows/generate-words.js +25 -0
  267. package/dist/workflows/generate-words.js.map +1 -0
  268. package/dist/workflows/generate.d.ts +59 -0
  269. package/dist/workflows/generate.d.ts.map +1 -0
  270. package/dist/workflows/generate.js +165 -0
  271. package/dist/workflows/generate.js.map +1 -0
  272. package/dist/workflows/judging.d.ts +17 -0
  273. package/dist/workflows/judging.d.ts.map +1 -0
  274. package/dist/workflows/judging.js +11 -0
  275. package/dist/workflows/judging.js.map +1 -0
  276. package/dist/workflows/next.d.ts +18 -0
  277. package/dist/workflows/next.d.ts.map +1 -0
  278. package/dist/workflows/next.js +75 -0
  279. package/dist/workflows/next.js.map +1 -0
  280. package/dist/workflows/on-the-map.d.ts +79 -0
  281. package/dist/workflows/on-the-map.d.ts.map +1 -0
  282. package/dist/workflows/on-the-map.js +96 -0
  283. package/dist/workflows/on-the-map.js.map +1 -0
  284. package/dist/workflows/policies.d.ts +39 -0
  285. package/dist/workflows/policies.d.ts.map +1 -0
  286. package/dist/workflows/policies.js +95 -0
  287. package/dist/workflows/policies.js.map +1 -0
  288. package/dist/workflows/resolve.d.ts +55 -0
  289. package/dist/workflows/resolve.d.ts.map +1 -0
  290. package/dist/workflows/resolve.js +57 -0
  291. package/dist/workflows/resolve.js.map +1 -0
  292. package/dist/workflows/schedule.d.ts +28 -0
  293. package/dist/workflows/schedule.d.ts.map +1 -0
  294. package/dist/workflows/schedule.js +160 -0
  295. package/dist/workflows/schedule.js.map +1 -0
  296. package/dist/workflows/step-act.d.ts +6 -0
  297. package/dist/workflows/step-act.d.ts.map +1 -0
  298. package/dist/workflows/step-act.js +79 -0
  299. package/dist/workflows/step-act.js.map +1 -0
  300. package/dist/workflows/step-agent.d.ts +4 -0
  301. package/dist/workflows/step-agent.d.ts.map +1 -0
  302. package/dist/workflows/step-agent.js +55 -0
  303. package/dist/workflows/step-agent.js.map +1 -0
  304. package/dist/workflows/step-archive.d.ts +8 -0
  305. package/dist/workflows/step-archive.d.ts.map +1 -0
  306. package/dist/workflows/step-archive.js +74 -0
  307. package/dist/workflows/step-archive.js.map +1 -0
  308. package/dist/workflows/step-classify.d.ts +25 -0
  309. package/dist/workflows/step-classify.d.ts.map +1 -0
  310. package/dist/workflows/step-classify.js +160 -0
  311. package/dist/workflows/step-classify.js.map +1 -0
  312. package/dist/workflows/step-generate.d.ts +7 -0
  313. package/dist/workflows/step-generate.d.ts.map +1 -0
  314. package/dist/workflows/step-generate.js +185 -0
  315. package/dist/workflows/step-generate.js.map +1 -0
  316. package/dist/workflows/steps.d.ts +75 -0
  317. package/dist/workflows/steps.d.ts.map +1 -0
  318. package/dist/workflows/steps.js +40 -0
  319. package/dist/workflows/steps.js.map +1 -0
  320. package/dist/workflows/triggered.d.ts +35 -0
  321. package/dist/workflows/triggered.d.ts.map +1 -0
  322. package/dist/workflows/triggered.js +69 -0
  323. package/dist/workflows/triggered.js.map +1 -0
  324. package/dist/workflows/values.d.ts +28 -0
  325. package/dist/workflows/values.d.ts.map +1 -0
  326. package/dist/workflows/values.js +75 -0
  327. package/dist/workflows/values.js.map +1 -0
  328. package/dist/workflows/words.d.ts +10 -0
  329. package/dist/workflows/words.d.ts.map +1 -0
  330. package/dist/workflows/words.js +30 -0
  331. package/dist/workflows/words.js.map +1 -0
  332. package/dist/workflows/world.d.ts +23 -0
  333. package/dist/workflows/world.d.ts.map +1 -0
  334. package/dist/workflows/world.js +50 -0
  335. package/dist/workflows/world.js.map +1 -0
  336. package/dist/workflows.d.ts +35 -0
  337. package/dist/workflows.d.ts.map +1 -0
  338. package/dist/workflows.js +20 -0
  339. package/dist/workflows.js.map +1 -0
  340. package/package.json +12 -2
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://unpkg.com/@graview/core@0.1.62/dist/document.schema.json",
4
- "title": "Graview declaration document, format 1 (@graview/core 0.1.62)",
3
+ "$id": "https://unpkg.com/@graview/core@0.1.64/dist/document.schema.json",
4
+ "title": "Graview declaration document, format 1 (@graview/core 0.1.64)",
5
5
  "description": "A whole Graview app as one JSON object: its kinds, fields, relations, acts, rules, roles, views and brand. `graview check --document <file>` compiles it and says what is wrong in words; this schema is the same shape, for an editor. Name it in a document's \"$schema\".",
6
6
  "type": "object",
7
7
  "properties": {
@@ -191,6 +191,10 @@
191
191
  "markdown"
192
192
  ]
193
193
  },
194
+ "places": {
195
+ "type": "number",
196
+ "const": 0
197
+ },
194
198
  "min": {
195
199
  "type": "number"
196
200
  },
@@ -562,6 +566,10 @@
562
566
  "minLength": 1,
563
567
  "maxLength": 12
564
568
  },
569
+ "places": {
570
+ "type": "number",
571
+ "const": 0
572
+ },
565
573
  "hidden": {
566
574
  "type": "boolean"
567
575
  }
@@ -601,6 +609,102 @@
601
609
  "never",
602
610
  "no-links"
603
611
  ]
612
+ },
613
+ "derives": {
614
+ "type": "object",
615
+ "properties": {
616
+ "from": {
617
+ "type": "string",
618
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
619
+ },
620
+ "via": {
621
+ "type": "string",
622
+ "pattern": "^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*|[a-z][A-Za-z0-9]*)$",
623
+ "not": {
624
+ "enum": [
625
+ "constructor",
626
+ "__defineGetter__",
627
+ "__defineSetter__",
628
+ "hasOwnProperty",
629
+ "__lookupGetter__",
630
+ "__lookupSetter__",
631
+ "isPrototypeOf",
632
+ "propertyIsEnumerable",
633
+ "toString",
634
+ "valueOf",
635
+ "__proto__",
636
+ "toLocaleString"
637
+ ]
638
+ },
639
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
640
+ },
641
+ "set": {
642
+ "type": "object",
643
+ "propertyNames": {
644
+ "type": "string",
645
+ "pattern": "^[a-z][A-Za-z0-9]*$",
646
+ "not": {
647
+ "enum": [
648
+ "id",
649
+ "kind",
650
+ "constructor",
651
+ "__defineGetter__",
652
+ "__defineSetter__",
653
+ "hasOwnProperty",
654
+ "__lookupGetter__",
655
+ "__lookupSetter__",
656
+ "isPrototypeOf",
657
+ "propertyIsEnumerable",
658
+ "toString",
659
+ "valueOf",
660
+ "__proto__",
661
+ "toLocaleString"
662
+ ]
663
+ },
664
+ "description": "Kinds, acts, rules and roles are kebab-case, like \"tool-note\"; fields and relations are camelCase, like \"supersededBy\", so a rule can say them bare. A kind keeps the name it is given, because every record stores it."
665
+ },
666
+ "additionalProperties": {
667
+ "anyOf": [
668
+ {
669
+ "type": "string"
670
+ },
671
+ {
672
+ "type": "number"
673
+ },
674
+ {
675
+ "type": "boolean"
676
+ },
677
+ {
678
+ "type": "null"
679
+ },
680
+ {
681
+ "type": "array",
682
+ "items": {}
683
+ },
684
+ {
685
+ "type": "object",
686
+ "properties": {
687
+ "expr": {
688
+ "type": "string",
689
+ "minLength": 1,
690
+ "maxLength": 2000
691
+ }
692
+ },
693
+ "required": [
694
+ "expr"
695
+ ],
696
+ "additionalProperties": false
697
+ }
698
+ ]
699
+ }
700
+ }
701
+ },
702
+ "required": [
703
+ "from",
704
+ "via",
705
+ "set"
706
+ ],
707
+ "additionalProperties": false
604
708
  }
605
709
  },
606
710
  "required": [
@@ -655,6 +759,10 @@
655
759
  "minLength": 1,
656
760
  "maxLength": 12
657
761
  },
762
+ "places": {
763
+ "type": "number",
764
+ "const": 0
765
+ },
658
766
  "hidden": {
659
767
  "type": "boolean"
660
768
  }
@@ -1114,6 +1222,10 @@
1114
1222
  "markdown"
1115
1223
  ]
1116
1224
  },
1225
+ "places": {
1226
+ "type": "number",
1227
+ "const": 0
1228
+ },
1117
1229
  "min": {
1118
1230
  "type": "number"
1119
1231
  },
@@ -1682,7 +1794,6 @@
1682
1794
  "mutations": {
1683
1795
  "anyOf": [
1684
1796
  {
1685
- "minItems": 1,
1686
1797
  "type": "array",
1687
1798
  "items": {
1688
1799
  "type": "string",
@@ -1720,6 +1831,22 @@
1720
1831
  },
1721
1832
  "ownEnd": {
1722
1833
  "type": "boolean"
1834
+ },
1835
+ "propose": {
1836
+ "anyOf": [
1837
+ {
1838
+ "minItems": 1,
1839
+ "type": "array",
1840
+ "items": {
1841
+ "type": "string",
1842
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
1843
+ }
1844
+ },
1845
+ {
1846
+ "type": "string",
1847
+ "const": "*"
1848
+ }
1849
+ ]
1723
1850
  }
1724
1851
  },
1725
1852
  "required": [
@@ -2658,6 +2785,14 @@
2658
2785
  "type": "string",
2659
2786
  "minLength": 1,
2660
2787
  "maxLength": 40
2788
+ },
2789
+ "scheme": {
2790
+ "type": "string",
2791
+ "enum": [
2792
+ "light",
2793
+ "dark",
2794
+ "device"
2795
+ ]
2661
2796
  }
2662
2797
  },
2663
2798
  "required": [
@@ -2803,6 +2938,25 @@
2803
2938
  "type": "string",
2804
2939
  "pattern": "^[a-z][A-Za-z0-9]*$"
2805
2940
  },
2941
+ {
2942
+ "type": "object",
2943
+ "properties": {
2944
+ "field": {
2945
+ "type": "string",
2946
+ "pattern": "^[a-z][A-Za-z0-9]*$"
2947
+ },
2948
+ "notify": {
2949
+ "type": "boolean"
2950
+ },
2951
+ "max": {
2952
+ "type": "number"
2953
+ }
2954
+ },
2955
+ "required": [
2956
+ "field"
2957
+ ],
2958
+ "additionalProperties": false
2959
+ },
2806
2960
  {
2807
2961
  "type": "object",
2808
2962
  "properties": {
@@ -2828,6 +2982,9 @@
2828
2982
  },
2829
2983
  "notify": {
2830
2984
  "type": "boolean"
2985
+ },
2986
+ "max": {
2987
+ "type": "number"
2831
2988
  }
2832
2989
  },
2833
2990
  "required": [
@@ -3006,6 +3163,87 @@
3006
3163
  ]
3007
3164
  }
3008
3165
  },
3166
+ "sources": {
3167
+ "minItems": 1,
3168
+ "maxItems": 20,
3169
+ "type": "array",
3170
+ "items": {
3171
+ "type": "object",
3172
+ "properties": {
3173
+ "source": {
3174
+ "type": "string",
3175
+ "minLength": 1,
3176
+ "maxLength": 200
3177
+ },
3178
+ "kind": {
3179
+ "type": "string",
3180
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3181
+ },
3182
+ "description": {
3183
+ "type": "string",
3184
+ "minLength": 1,
3185
+ "maxLength": 500
3186
+ },
3187
+ "properties": {
3188
+ "type": "object",
3189
+ "propertyNames": {
3190
+ "type": "string",
3191
+ "pattern": "^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*|[a-z][A-Za-z0-9]*)$"
3192
+ },
3193
+ "additionalProperties": {
3194
+ "anyOf": [
3195
+ {
3196
+ "type": "string",
3197
+ "minLength": 1,
3198
+ "maxLength": 100
3199
+ },
3200
+ {
3201
+ "type": "object",
3202
+ "properties": {
3203
+ "name": {
3204
+ "type": "string",
3205
+ "minLength": 1,
3206
+ "maxLength": 100
3207
+ },
3208
+ "type": {
3209
+ "type": "string",
3210
+ "enum": [
3211
+ "title",
3212
+ "rich_text",
3213
+ "number",
3214
+ "select",
3215
+ "status",
3216
+ "multi_select",
3217
+ "date",
3218
+ "checkbox",
3219
+ "url",
3220
+ "email",
3221
+ "phone_number",
3222
+ "people",
3223
+ "relation"
3224
+ ]
3225
+ }
3226
+ },
3227
+ "required": [
3228
+ "name",
3229
+ "type"
3230
+ ],
3231
+ "additionalProperties": false
3232
+ }
3233
+ ]
3234
+ }
3235
+ }
3236
+ },
3237
+ "required": [
3238
+ "source",
3239
+ "kind"
3240
+ ],
3241
+ "additionalProperties": false
3242
+ }
3243
+ },
3244
+ "create": {
3245
+ "type": "boolean"
3246
+ },
3009
3247
  "direction": {
3010
3248
  "type": "string",
3011
3249
  "enum": [
@@ -3033,7 +3271,6 @@
3033
3271
  "required": [
3034
3272
  "system",
3035
3273
  "database",
3036
- "kind",
3037
3274
  "direction"
3038
3275
  ],
3039
3276
  "additionalProperties": false
@@ -3129,6 +3366,648 @@
3129
3366
  "additionalProperties": false,
3130
3367
  "description": "Who the app is for (`for`), and up to twelve jobs they come to it to do: each a question in their words (`ask`), answered by the records of one kind (`kind`) a rule-language condition holds for (`where`), in an order (`sort`), with the act they usually take next (`act`), for some roles or everybody (`roles`)."
3131
3368
  },
3369
+ "workflows": {
3370
+ "description": "What the app does on its own, by name: each a title, what starts it (`when`: `every` in words like \"sunday 18:00\", `cron`, a record `made` or `changed`, a connection `synced`, or `byHand`), whether it is paused, what its changes become (`approve`: apply, suggest or ask) and its steps in order — run an act (`act`, once or `over` the records a rule picks, `key` for what it makes) or let a model propose (`agent`).",
3371
+ "type": "object",
3372
+ "propertyNames": {
3373
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3374
+ },
3375
+ "additionalProperties": {
3376
+ "type": "object",
3377
+ "properties": {
3378
+ "title": {
3379
+ "type": "string",
3380
+ "minLength": 1,
3381
+ "maxLength": 120
3382
+ },
3383
+ "when": {
3384
+ "minItems": 1,
3385
+ "maxItems": 12,
3386
+ "type": "array",
3387
+ "items": {
3388
+ "anyOf": [
3389
+ {
3390
+ "type": "object",
3391
+ "properties": {
3392
+ "every": {
3393
+ "type": "string",
3394
+ "minLength": 1,
3395
+ "maxLength": 80
3396
+ }
3397
+ },
3398
+ "required": [
3399
+ "every"
3400
+ ],
3401
+ "additionalProperties": false
3402
+ },
3403
+ {
3404
+ "type": "object",
3405
+ "properties": {
3406
+ "cron": {
3407
+ "type": "string",
3408
+ "minLength": 9,
3409
+ "maxLength": 120
3410
+ }
3411
+ },
3412
+ "required": [
3413
+ "cron"
3414
+ ],
3415
+ "additionalProperties": false
3416
+ },
3417
+ {
3418
+ "type": "object",
3419
+ "properties": {
3420
+ "made": {
3421
+ "type": "string",
3422
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3423
+ },
3424
+ "where": {
3425
+ "type": "string",
3426
+ "minLength": 1,
3427
+ "maxLength": 2000
3428
+ }
3429
+ },
3430
+ "required": [
3431
+ "made"
3432
+ ],
3433
+ "additionalProperties": false
3434
+ },
3435
+ {
3436
+ "type": "object",
3437
+ "properties": {
3438
+ "changed": {
3439
+ "type": "string",
3440
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3441
+ },
3442
+ "fields": {
3443
+ "minItems": 1,
3444
+ "maxItems": 40,
3445
+ "type": "array",
3446
+ "items": {
3447
+ "type": "string",
3448
+ "pattern": "^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*|[a-z][A-Za-z0-9]*)$"
3449
+ }
3450
+ },
3451
+ "where": {
3452
+ "type": "string",
3453
+ "minLength": 1,
3454
+ "maxLength": 2000
3455
+ }
3456
+ },
3457
+ "required": [
3458
+ "changed"
3459
+ ],
3460
+ "additionalProperties": false
3461
+ },
3462
+ {
3463
+ "type": "object",
3464
+ "properties": {
3465
+ "synced": {
3466
+ "type": "string",
3467
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3468
+ }
3469
+ },
3470
+ "required": [
3471
+ "synced"
3472
+ ],
3473
+ "additionalProperties": false
3474
+ },
3475
+ {
3476
+ "type": "object",
3477
+ "properties": {
3478
+ "byHand": {
3479
+ "type": "boolean",
3480
+ "const": true
3481
+ }
3482
+ },
3483
+ "required": [
3484
+ "byHand"
3485
+ ],
3486
+ "additionalProperties": false
3487
+ }
3488
+ ]
3489
+ }
3490
+ },
3491
+ "status": {
3492
+ "type": "string",
3493
+ "enum": [
3494
+ "active",
3495
+ "paused"
3496
+ ]
3497
+ },
3498
+ "approve": {
3499
+ "type": "string",
3500
+ "enum": [
3501
+ "apply",
3502
+ "suggest",
3503
+ "ask"
3504
+ ]
3505
+ },
3506
+ "steps": {
3507
+ "minItems": 1,
3508
+ "maxItems": 40,
3509
+ "type": "array",
3510
+ "items": {
3511
+ "anyOf": [
3512
+ {
3513
+ "type": "object",
3514
+ "properties": {
3515
+ "act": {
3516
+ "type": "string",
3517
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3518
+ },
3519
+ "over": {
3520
+ "type": "object",
3521
+ "properties": {
3522
+ "kind": {
3523
+ "type": "string",
3524
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3525
+ },
3526
+ "where": {
3527
+ "type": "string",
3528
+ "minLength": 1,
3529
+ "maxLength": 2000
3530
+ },
3531
+ "limit": {
3532
+ "type": "integer",
3533
+ "minimum": 1,
3534
+ "maximum": 10000
3535
+ }
3536
+ },
3537
+ "required": [
3538
+ "kind"
3539
+ ],
3540
+ "additionalProperties": false
3541
+ },
3542
+ "args": {
3543
+ "type": "object",
3544
+ "propertyNames": {
3545
+ "type": "string"
3546
+ },
3547
+ "additionalProperties": {
3548
+ "anyOf": [
3549
+ {
3550
+ "type": "string"
3551
+ },
3552
+ {
3553
+ "type": "number"
3554
+ },
3555
+ {
3556
+ "type": "boolean"
3557
+ },
3558
+ {
3559
+ "type": "null"
3560
+ },
3561
+ {
3562
+ "type": "array",
3563
+ "items": {}
3564
+ },
3565
+ {
3566
+ "type": "object",
3567
+ "properties": {
3568
+ "expr": {
3569
+ "type": "string",
3570
+ "minLength": 1,
3571
+ "maxLength": 2000
3572
+ }
3573
+ },
3574
+ "required": [
3575
+ "expr"
3576
+ ],
3577
+ "additionalProperties": false
3578
+ }
3579
+ ]
3580
+ }
3581
+ },
3582
+ "key": {
3583
+ "type": "string",
3584
+ "minLength": 1,
3585
+ "maxLength": 300
3586
+ },
3587
+ "approve": {
3588
+ "type": "string",
3589
+ "enum": [
3590
+ "apply",
3591
+ "suggest",
3592
+ "ask"
3593
+ ]
3594
+ }
3595
+ },
3596
+ "required": [
3597
+ "act"
3598
+ ],
3599
+ "additionalProperties": false
3600
+ },
3601
+ {
3602
+ "type": "object",
3603
+ "properties": {
3604
+ "agent": {
3605
+ "type": "string",
3606
+ "minLength": 1,
3607
+ "maxLength": 2000
3608
+ },
3609
+ "reads": {
3610
+ "maxItems": 40,
3611
+ "type": "array",
3612
+ "items": {
3613
+ "type": "string",
3614
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3615
+ }
3616
+ },
3617
+ "acts": {
3618
+ "maxItems": 60,
3619
+ "type": "array",
3620
+ "items": {
3621
+ "type": "string",
3622
+ "minLength": 1,
3623
+ "maxLength": 120
3624
+ }
3625
+ },
3626
+ "model": {
3627
+ "type": "string",
3628
+ "minLength": 1,
3629
+ "maxLength": 120
3630
+ },
3631
+ "budget": {
3632
+ "type": "object",
3633
+ "properties": {
3634
+ "calls": {
3635
+ "type": "integer",
3636
+ "minimum": 1,
3637
+ "maximum": 1000
3638
+ },
3639
+ "tokens": {
3640
+ "type": "integer",
3641
+ "minimum": 1,
3642
+ "maximum": 10000000
3643
+ }
3644
+ },
3645
+ "additionalProperties": false
3646
+ },
3647
+ "approve": {
3648
+ "type": "string",
3649
+ "enum": [
3650
+ "apply",
3651
+ "suggest",
3652
+ "ask"
3653
+ ]
3654
+ }
3655
+ },
3656
+ "required": [
3657
+ "agent",
3658
+ "reads",
3659
+ "acts"
3660
+ ],
3661
+ "additionalProperties": false
3662
+ },
3663
+ {
3664
+ "type": "object",
3665
+ "properties": {
3666
+ "generate": {
3667
+ "type": "string",
3668
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3669
+ },
3670
+ "from": {
3671
+ "minItems": 1,
3672
+ "maxItems": 12,
3673
+ "type": "array",
3674
+ "items": {
3675
+ "type": "object",
3676
+ "properties": {
3677
+ "kind": {
3678
+ "type": "string",
3679
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3680
+ },
3681
+ "where": {
3682
+ "type": "string",
3683
+ "minLength": 1,
3684
+ "maxLength": 2000
3685
+ },
3686
+ "dates": {
3687
+ "type": "string",
3688
+ "minLength": 1,
3689
+ "maxLength": 80
3690
+ }
3691
+ },
3692
+ "required": [
3693
+ "kind",
3694
+ "dates"
3695
+ ],
3696
+ "additionalProperties": false
3697
+ }
3698
+ },
3699
+ "window": {
3700
+ "anyOf": [
3701
+ {
3702
+ "type": "string",
3703
+ "minLength": 1,
3704
+ "maxLength": 40
3705
+ },
3706
+ {
3707
+ "type": "object",
3708
+ "properties": {
3709
+ "from": {
3710
+ "type": "string",
3711
+ "minLength": 1,
3712
+ "maxLength": 2000
3713
+ },
3714
+ "to": {
3715
+ "type": "string",
3716
+ "minLength": 1,
3717
+ "maxLength": 2000
3718
+ }
3719
+ },
3720
+ "required": [
3721
+ "from",
3722
+ "to"
3723
+ ],
3724
+ "additionalProperties": false
3725
+ }
3726
+ ]
3727
+ },
3728
+ "set": {
3729
+ "type": "object",
3730
+ "propertyNames": {
3731
+ "type": "string"
3732
+ },
3733
+ "additionalProperties": {
3734
+ "anyOf": [
3735
+ {
3736
+ "type": "string"
3737
+ },
3738
+ {
3739
+ "type": "number"
3740
+ },
3741
+ {
3742
+ "type": "boolean"
3743
+ },
3744
+ {
3745
+ "type": "null"
3746
+ },
3747
+ {
3748
+ "type": "array",
3749
+ "items": {}
3750
+ },
3751
+ {
3752
+ "type": "object",
3753
+ "properties": {
3754
+ "expr": {
3755
+ "type": "string",
3756
+ "minLength": 1,
3757
+ "maxLength": 2000
3758
+ }
3759
+ },
3760
+ "required": [
3761
+ "expr"
3762
+ ],
3763
+ "additionalProperties": false
3764
+ }
3765
+ ]
3766
+ }
3767
+ },
3768
+ "key": {
3769
+ "type": "string",
3770
+ "minLength": 1,
3771
+ "maxLength": 300
3772
+ },
3773
+ "link": {
3774
+ "type": "string",
3775
+ "minLength": 1,
3776
+ "maxLength": 80
3777
+ },
3778
+ "using": {
3779
+ "type": "string",
3780
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3781
+ },
3782
+ "overwrite": {
3783
+ "type": "boolean"
3784
+ },
3785
+ "approve": {
3786
+ "type": "string",
3787
+ "enum": [
3788
+ "apply",
3789
+ "suggest",
3790
+ "ask"
3791
+ ]
3792
+ }
3793
+ },
3794
+ "required": [
3795
+ "generate",
3796
+ "from",
3797
+ "window"
3798
+ ],
3799
+ "additionalProperties": false
3800
+ },
3801
+ {
3802
+ "type": "object",
3803
+ "properties": {
3804
+ "archive": {
3805
+ "type": "string",
3806
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3807
+ },
3808
+ "where": {
3809
+ "type": "string",
3810
+ "minLength": 1,
3811
+ "maxLength": 2000
3812
+ },
3813
+ "after": {
3814
+ "anyOf": [
3815
+ {
3816
+ "type": "string",
3817
+ "minLength": 1,
3818
+ "maxLength": 40
3819
+ },
3820
+ {
3821
+ "type": "object",
3822
+ "properties": {
3823
+ "field": {
3824
+ "type": "string",
3825
+ "minLength": 1,
3826
+ "maxLength": 120
3827
+ },
3828
+ "days": {
3829
+ "type": "integer",
3830
+ "minimum": 0,
3831
+ "maximum": 36500
3832
+ }
3833
+ },
3834
+ "required": [
3835
+ "field",
3836
+ "days"
3837
+ ],
3838
+ "additionalProperties": false
3839
+ }
3840
+ ]
3841
+ },
3842
+ "approve": {
3843
+ "type": "string",
3844
+ "enum": [
3845
+ "apply",
3846
+ "suggest",
3847
+ "ask"
3848
+ ]
3849
+ }
3850
+ },
3851
+ "required": [
3852
+ "archive"
3853
+ ],
3854
+ "additionalProperties": false
3855
+ },
3856
+ {
3857
+ "type": "object",
3858
+ "properties": {
3859
+ "classify": {
3860
+ "type": "string",
3861
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3862
+ },
3863
+ "where": {
3864
+ "type": "string",
3865
+ "minLength": 1,
3866
+ "maxLength": 2000
3867
+ },
3868
+ "field": {
3869
+ "type": "string",
3870
+ "minLength": 1,
3871
+ "maxLength": 120
3872
+ },
3873
+ "options": {
3874
+ "maxItems": 60,
3875
+ "type": "array",
3876
+ "items": {
3877
+ "type": "string",
3878
+ "minLength": 1,
3879
+ "maxLength": 120
3880
+ }
3881
+ },
3882
+ "instruction": {
3883
+ "type": "string",
3884
+ "minLength": 1,
3885
+ "maxLength": 2000
3886
+ },
3887
+ "floor": {
3888
+ "type": "object",
3889
+ "propertyNames": {
3890
+ "type": "string",
3891
+ "minLength": 1,
3892
+ "maxLength": 120
3893
+ },
3894
+ "additionalProperties": {
3895
+ "type": "object",
3896
+ "properties": {
3897
+ "links": {
3898
+ "type": "integer",
3899
+ "minimum": 1,
3900
+ "maximum": 1000
3901
+ },
3902
+ "words": {
3903
+ "maxItems": 500,
3904
+ "type": "array",
3905
+ "items": {
3906
+ "type": "string",
3907
+ "minLength": 1,
3908
+ "maxLength": 120
3909
+ }
3910
+ },
3911
+ "expr": {
3912
+ "type": "string",
3913
+ "minLength": 1,
3914
+ "maxLength": 2000
3915
+ }
3916
+ },
3917
+ "additionalProperties": false
3918
+ }
3919
+ },
3920
+ "setAside": {
3921
+ "type": "object",
3922
+ "propertyNames": {
3923
+ "type": "string",
3924
+ "minLength": 1,
3925
+ "maxLength": 120
3926
+ },
3927
+ "additionalProperties": {
3928
+ "type": "number"
3929
+ }
3930
+ },
3931
+ "applyAt": {
3932
+ "type": "object",
3933
+ "propertyNames": {
3934
+ "type": "string",
3935
+ "minLength": 1,
3936
+ "maxLength": 120
3937
+ },
3938
+ "additionalProperties": {
3939
+ "type": "number"
3940
+ }
3941
+ },
3942
+ "otherwise": {
3943
+ "type": "string",
3944
+ "minLength": 1,
3945
+ "maxLength": 120
3946
+ },
3947
+ "confirm": {
3948
+ "maxItems": 60,
3949
+ "type": "array",
3950
+ "items": {
3951
+ "type": "string",
3952
+ "minLength": 1,
3953
+ "maxLength": 120
3954
+ }
3955
+ },
3956
+ "relabel": {
3957
+ "type": "boolean"
3958
+ },
3959
+ "model": {
3960
+ "type": "string",
3961
+ "minLength": 1,
3962
+ "maxLength": 120
3963
+ },
3964
+ "budget": {
3965
+ "type": "object",
3966
+ "properties": {
3967
+ "calls": {
3968
+ "type": "integer",
3969
+ "minimum": 1,
3970
+ "maximum": 10000
3971
+ },
3972
+ "tokens": {
3973
+ "type": "integer",
3974
+ "minimum": 1,
3975
+ "maximum": 10000000
3976
+ }
3977
+ },
3978
+ "additionalProperties": false
3979
+ },
3980
+ "approve": {
3981
+ "type": "string",
3982
+ "enum": [
3983
+ "apply",
3984
+ "suggest",
3985
+ "ask"
3986
+ ]
3987
+ }
3988
+ },
3989
+ "required": [
3990
+ "classify",
3991
+ "field"
3992
+ ],
3993
+ "additionalProperties": false
3994
+ }
3995
+ ]
3996
+ }
3997
+ },
3998
+ "follows": {
3999
+ "type": "string",
4000
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
4001
+ }
4002
+ },
4003
+ "required": [
4004
+ "title",
4005
+ "when",
4006
+ "steps"
4007
+ ],
4008
+ "additionalProperties": false
4009
+ }
4010
+ },
3132
4011
  "forms": {
3133
4012
  "type": "object",
3134
4013
  "propertyNames": {