@graview/core 0.1.62 → 0.1.63

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 (328) 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/compile-checked.d.ts.map +1 -1
  33. package/dist/document/compile-checked.js +4 -2
  34. package/dist/document/compile-checked.js.map +1 -1
  35. package/dist/document/compile.d.ts.map +1 -1
  36. package/dist/document/compile.js +48 -9
  37. package/dist/document/compile.js.map +1 -1
  38. package/dist/document/compiled.d.ts +14 -0
  39. package/dist/document/compiled.d.ts.map +1 -1
  40. package/dist/document/compiled.js +39 -4
  41. package/dist/document/compiled.js.map +1 -1
  42. package/dist/document/connection-findings.js +82 -17
  43. package/dist/document/connection-findings.js.map +1 -1
  44. package/dist/document/connection-spec.d.ts +32 -1
  45. package/dist/document/connection-spec.d.ts.map +1 -1
  46. package/dist/document/connection-spec.js +54 -8
  47. package/dist/document/connection-spec.js.map +1 -1
  48. package/dist/document/derives-findings.d.ts +4 -0
  49. package/dist/document/derives-findings.d.ts.map +1 -0
  50. package/dist/document/derives-findings.js +68 -0
  51. package/dist/document/derives-findings.js.map +1 -0
  52. package/dist/document/describe-forms.js +2 -2
  53. package/dist/document/describe-forms.js.map +1 -1
  54. package/dist/document/diff.d.ts +6 -0
  55. package/dist/document/diff.d.ts.map +1 -1
  56. package/dist/document/diff.js +43 -1
  57. package/dist/document/diff.js.map +1 -1
  58. package/dist/document/edit.d.ts +1 -1
  59. package/dist/document/edit.d.ts.map +1 -1
  60. package/dist/document/edit.js +263 -22
  61. package/dist/document/edit.js.map +1 -1
  62. package/dist/document/expr/evaluate.d.ts +7 -0
  63. package/dist/document/expr/evaluate.d.ts.map +1 -1
  64. package/dist/document/expr/evaluate.js.map +1 -1
  65. package/dist/document/format-words.d.ts +1 -0
  66. package/dist/document/format-words.d.ts.map +1 -1
  67. package/dist/document/format-words.js +2 -2
  68. package/dist/document/format-words.js.map +1 -1
  69. package/dist/document/kept-in-step-with.d.ts +20 -0
  70. package/dist/document/kept-in-step-with.d.ts.map +1 -0
  71. package/dist/document/kept-in-step-with.js +38 -0
  72. package/dist/document/kept-in-step-with.js.map +1 -0
  73. package/dist/document/kept-in-step.d.ts.map +1 -1
  74. package/dist/document/kept-in-step.js +3 -1
  75. package/dist/document/kept-in-step.js.map +1 -1
  76. package/dist/document/money.d.ts +10 -2
  77. package/dist/document/money.d.ts.map +1 -1
  78. package/dist/document/money.js +14 -5
  79. package/dist/document/money.js.map +1 -1
  80. package/dist/document/policy-words.d.ts +2 -0
  81. package/dist/document/policy-words.d.ts.map +1 -1
  82. package/dist/document/policy-words.js +11 -1
  83. package/dist/document/policy-words.js.map +1 -1
  84. package/dist/document/schema.d.ts +36 -1
  85. package/dist/document/schema.d.ts.map +1 -1
  86. package/dist/document/schema.js +44 -7
  87. package/dist/document/schema.js.map +1 -1
  88. package/dist/document/template-parse.d.ts.map +1 -1
  89. package/dist/document/template-parse.js +7 -1
  90. package/dist/document/template-parse.js.map +1 -1
  91. package/dist/document/template.d.ts +2 -0
  92. package/dist/document/template.d.ts.map +1 -1
  93. package/dist/document/template.js +10 -1
  94. package/dist/document/template.js.map +1 -1
  95. package/dist/document/to-document.js +2 -2
  96. package/dist/document/to-document.js.map +1 -1
  97. package/dist/document/workflow-spec.d.ts +72 -0
  98. package/dist/document/workflow-spec.d.ts.map +1 -0
  99. package/dist/document/workflow-spec.js +45 -0
  100. package/dist/document/workflow-spec.js.map +1 -0
  101. package/dist/document.schema.json +840 -4
  102. package/dist/history.d.ts.map +1 -1
  103. package/dist/history.js +2 -0
  104. package/dist/history.js.map +1 -1
  105. package/dist/index.d.ts +6 -4
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +3 -2
  108. package/dist/index.js.map +1 -1
  109. package/dist/installation.d.ts +1 -1
  110. package/dist/job-findings.d.ts +5 -0
  111. package/dist/job-findings.d.ts.map +1 -1
  112. package/dist/job-findings.js +9 -3
  113. package/dist/job-findings.js.map +1 -1
  114. package/dist/keep-linked.d.ts +45 -0
  115. package/dist/keep-linked.d.ts.map +1 -0
  116. package/dist/keep-linked.js +188 -0
  117. package/dist/keep-linked.js.map +1 -0
  118. package/dist/mutations/derive-edits.js +2 -2
  119. package/dist/mutations/propose-changes.d.ts +24 -0
  120. package/dist/mutations/propose-changes.d.ts.map +1 -0
  121. package/dist/mutations/propose-changes.js +30 -0
  122. package/dist/mutations/propose-changes.js.map +1 -0
  123. package/dist/mutations/vote-suggestion.d.ts +30 -0
  124. package/dist/mutations/vote-suggestion.d.ts.map +1 -1
  125. package/dist/mutations/vote-suggestion.js +23 -0
  126. package/dist/mutations/vote-suggestion.js.map +1 -1
  127. package/dist/mutations/words.js +3 -3
  128. package/dist/ops/digest.d.ts +3 -1
  129. package/dist/ops/digest.d.ts.map +1 -1
  130. package/dist/ops/digest.js +7 -2
  131. package/dist/ops/digest.js.map +1 -1
  132. package/dist/ops/lineage.d.ts +19 -2
  133. package/dist/ops/lineage.d.ts.map +1 -1
  134. package/dist/ops/lineage.js +8 -4
  135. package/dist/ops/lineage.js.map +1 -1
  136. package/dist/ops/log.d.ts.map +1 -1
  137. package/dist/ops/log.js +13 -2
  138. package/dist/ops/log.js.map +1 -1
  139. package/dist/ops/suggestions.d.ts +47 -5
  140. package/dist/ops/suggestions.d.ts.map +1 -1
  141. package/dist/ops/suggestions.js +88 -13
  142. package/dist/ops/suggestions.js.map +1 -1
  143. package/dist/ops/tidying.d.ts.map +1 -1
  144. package/dist/ops/tidying.js +6 -1
  145. package/dist/ops/tidying.js.map +1 -1
  146. package/dist/ops/types.d.ts +28 -0
  147. package/dist/ops/types.d.ts.map +1 -1
  148. package/dist/ops/undo.d.ts.map +1 -1
  149. package/dist/ops/undo.js +17 -0
  150. package/dist/ops/undo.js.map +1 -1
  151. package/dist/permissions/policy.d.ts +7 -0
  152. package/dist/permissions/policy.d.ts.map +1 -1
  153. package/dist/permissions/policy.js +12 -0
  154. package/dist/permissions/policy.js.map +1 -1
  155. package/dist/permissions/types.d.ts +27 -0
  156. package/dist/permissions/types.d.ts.map +1 -1
  157. package/dist/permissions/types.js.map +1 -1
  158. package/dist/places.d.ts +10 -0
  159. package/dist/places.d.ts.map +1 -1
  160. package/dist/places.js +35 -1
  161. package/dist/places.js.map +1 -1
  162. package/dist/scene.d.ts +2 -0
  163. package/dist/scene.d.ts.map +1 -1
  164. package/dist/scene.js +2 -0
  165. package/dist/scene.js.map +1 -1
  166. package/dist/schema/amount-mark.d.ts +2 -0
  167. package/dist/schema/amount-mark.d.ts.map +1 -1
  168. package/dist/schema/amount-mark.js.map +1 -1
  169. package/dist/schema/amount-words.js +2 -2
  170. package/dist/schema/amount-words.js.map +1 -1
  171. package/dist/schema/choice-words.js +2 -2
  172. package/dist/schema/define-node.d.ts +8 -2
  173. package/dist/schema/define-node.d.ts.map +1 -1
  174. package/dist/schema/define-node.js +2 -2
  175. package/dist/schema/define-node.js.map +1 -1
  176. package/dist/schema/humanize.d.ts +17 -0
  177. package/dist/schema/humanize.d.ts.map +1 -1
  178. package/dist/schema/humanize.js +28 -1
  179. package/dist/schema/humanize.js.map +1 -1
  180. package/dist/schema/reading.d.ts +8 -0
  181. package/dist/schema/reading.d.ts.map +1 -1
  182. package/dist/schema/reading.js +16 -2
  183. package/dist/schema/reading.js.map +1 -1
  184. package/dist/schema/types.d.ts +8 -0
  185. package/dist/schema/types.d.ts.map +1 -1
  186. package/dist/schema/value-words.js +2 -2
  187. package/dist/schema/value-words.js.map +1 -1
  188. package/dist/starting-document.d.ts +16 -3
  189. package/dist/starting-document.d.ts.map +1 -1
  190. package/dist/starting-document.js +32 -5
  191. package/dist/starting-document.js.map +1 -1
  192. package/dist/store.d.ts +47 -2
  193. package/dist/store.d.ts.map +1 -1
  194. package/dist/store.js +176 -13
  195. package/dist/store.js.map +1 -1
  196. package/dist/sync/connection.d.ts +24 -5
  197. package/dist/sync/connection.d.ts.map +1 -1
  198. package/dist/sync/connection.js +160 -27
  199. package/dist/sync/connection.js.map +1 -1
  200. package/dist/sync/engine.d.ts +83 -0
  201. package/dist/sync/engine.d.ts.map +1 -1
  202. package/dist/sync/engine.js +152 -1
  203. package/dist/sync/engine.js.map +1 -1
  204. package/dist/sync/google-calendar.d.ts.map +1 -1
  205. package/dist/sync/google-calendar.js +18 -1
  206. package/dist/sync/google-calendar.js.map +1 -1
  207. package/dist/sync/guest-words.d.ts +9 -0
  208. package/dist/sync/guest-words.d.ts.map +1 -0
  209. package/dist/sync/guest-words.js +41 -0
  210. package/dist/sync/guest-words.js.map +1 -0
  211. package/dist/sync/index.d.ts +8 -5
  212. package/dist/sync/index.d.ts.map +1 -1
  213. package/dist/sync/index.js +2 -0
  214. package/dist/sync/index.js.map +1 -1
  215. package/dist/sync/notion-stub.d.ts +4 -1
  216. package/dist/sync/notion-stub.d.ts.map +1 -1
  217. package/dist/sync/notion-stub.js +40 -0
  218. package/dist/sync/notion-stub.js.map +1 -1
  219. package/dist/sync/notion.d.ts +43 -2
  220. package/dist/sync/notion.d.ts.map +1 -1
  221. package/dist/sync/notion.js +274 -140
  222. package/dist/sync/notion.js.map +1 -1
  223. package/dist/sync/status.d.ts +43 -0
  224. package/dist/sync/status.d.ts.map +1 -0
  225. package/dist/sync/status.js +45 -0
  226. package/dist/sync/status.js.map +1 -0
  227. package/dist/sync/types.d.ts +55 -0
  228. package/dist/sync/types.d.ts.map +1 -1
  229. package/dist/sync/types.js.map +1 -1
  230. package/dist/tidying.d.ts +53 -4
  231. package/dist/tidying.d.ts.map +1 -1
  232. package/dist/tidying.js +110 -8
  233. package/dist/tidying.js.map +1 -1
  234. package/dist/validate-graph.d.ts +2 -1
  235. package/dist/validate-graph.d.ts.map +1 -1
  236. package/dist/validate-graph.js +32 -1
  237. package/dist/validate-graph.js.map +1 -1
  238. package/dist/version.d.ts +1 -1
  239. package/dist/version.js +1 -1
  240. package/dist/words.d.ts +4 -1
  241. package/dist/words.d.ts.map +1 -1
  242. package/dist/words.js +4 -1
  243. package/dist/words.js.map +1 -1
  244. package/dist/workflow-shape.d.ts +217 -0
  245. package/dist/workflow-shape.d.ts.map +1 -0
  246. package/dist/workflow-shape.js +31 -0
  247. package/dist/workflow-shape.js.map +1 -0
  248. package/dist/workflows/findings.d.ts +13 -0
  249. package/dist/workflows/findings.d.ts.map +1 -0
  250. package/dist/workflows/findings.js +157 -0
  251. package/dist/workflows/findings.js.map +1 -0
  252. package/dist/workflows/generate-words.d.ts +12 -0
  253. package/dist/workflows/generate-words.d.ts.map +1 -0
  254. package/dist/workflows/generate-words.js +25 -0
  255. package/dist/workflows/generate-words.js.map +1 -0
  256. package/dist/workflows/generate.d.ts +59 -0
  257. package/dist/workflows/generate.d.ts.map +1 -0
  258. package/dist/workflows/generate.js +165 -0
  259. package/dist/workflows/generate.js.map +1 -0
  260. package/dist/workflows/judging.d.ts +17 -0
  261. package/dist/workflows/judging.d.ts.map +1 -0
  262. package/dist/workflows/judging.js +11 -0
  263. package/dist/workflows/judging.js.map +1 -0
  264. package/dist/workflows/next.d.ts +18 -0
  265. package/dist/workflows/next.d.ts.map +1 -0
  266. package/dist/workflows/next.js +75 -0
  267. package/dist/workflows/next.js.map +1 -0
  268. package/dist/workflows/on-the-map.d.ts +70 -0
  269. package/dist/workflows/on-the-map.d.ts.map +1 -0
  270. package/dist/workflows/on-the-map.js +94 -0
  271. package/dist/workflows/on-the-map.js.map +1 -0
  272. package/dist/workflows/policies.d.ts +39 -0
  273. package/dist/workflows/policies.d.ts.map +1 -0
  274. package/dist/workflows/policies.js +95 -0
  275. package/dist/workflows/policies.js.map +1 -0
  276. package/dist/workflows/resolve.d.ts +55 -0
  277. package/dist/workflows/resolve.d.ts.map +1 -0
  278. package/dist/workflows/resolve.js +57 -0
  279. package/dist/workflows/resolve.js.map +1 -0
  280. package/dist/workflows/schedule.d.ts +28 -0
  281. package/dist/workflows/schedule.d.ts.map +1 -0
  282. package/dist/workflows/schedule.js +160 -0
  283. package/dist/workflows/schedule.js.map +1 -0
  284. package/dist/workflows/step-act.d.ts +6 -0
  285. package/dist/workflows/step-act.d.ts.map +1 -0
  286. package/dist/workflows/step-act.js +79 -0
  287. package/dist/workflows/step-act.js.map +1 -0
  288. package/dist/workflows/step-agent.d.ts +4 -0
  289. package/dist/workflows/step-agent.d.ts.map +1 -0
  290. package/dist/workflows/step-agent.js +55 -0
  291. package/dist/workflows/step-agent.js.map +1 -0
  292. package/dist/workflows/step-archive.d.ts +8 -0
  293. package/dist/workflows/step-archive.d.ts.map +1 -0
  294. package/dist/workflows/step-archive.js +74 -0
  295. package/dist/workflows/step-archive.js.map +1 -0
  296. package/dist/workflows/step-classify.d.ts +23 -0
  297. package/dist/workflows/step-classify.d.ts.map +1 -0
  298. package/dist/workflows/step-classify.js +143 -0
  299. package/dist/workflows/step-classify.js.map +1 -0
  300. package/dist/workflows/step-generate.d.ts +7 -0
  301. package/dist/workflows/step-generate.d.ts.map +1 -0
  302. package/dist/workflows/step-generate.js +185 -0
  303. package/dist/workflows/step-generate.js.map +1 -0
  304. package/dist/workflows/steps.d.ts +75 -0
  305. package/dist/workflows/steps.d.ts.map +1 -0
  306. package/dist/workflows/steps.js +40 -0
  307. package/dist/workflows/steps.js.map +1 -0
  308. package/dist/workflows/triggered.d.ts +22 -0
  309. package/dist/workflows/triggered.d.ts.map +1 -0
  310. package/dist/workflows/triggered.js +52 -0
  311. package/dist/workflows/triggered.js.map +1 -0
  312. package/dist/workflows/values.d.ts +28 -0
  313. package/dist/workflows/values.d.ts.map +1 -0
  314. package/dist/workflows/values.js +75 -0
  315. package/dist/workflows/values.js.map +1 -0
  316. package/dist/workflows/words.d.ts +10 -0
  317. package/dist/workflows/words.d.ts.map +1 -0
  318. package/dist/workflows/words.js +30 -0
  319. package/dist/workflows/words.js.map +1 -0
  320. package/dist/workflows/world.d.ts +23 -0
  321. package/dist/workflows/world.d.ts.map +1 -0
  322. package/dist/workflows/world.js +50 -0
  323. package/dist/workflows/world.js.map +1 -0
  324. package/dist/workflows.d.ts +35 -0
  325. package/dist/workflows.d.ts.map +1 -0
  326. package/dist/workflows.js +20 -0
  327. package/dist/workflows.js.map +1 -0
  328. package/package.json +8 -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.63/dist/document.schema.json",
4
+ "title": "Graview declaration document, format 1 (@graview/core 0.1.63)",
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": [
@@ -2828,6 +2955,9 @@
2828
2955
  },
2829
2956
  "notify": {
2830
2957
  "type": "boolean"
2958
+ },
2959
+ "max": {
2960
+ "type": "number"
2831
2961
  }
2832
2962
  },
2833
2963
  "required": [
@@ -3006,6 +3136,87 @@
3006
3136
  ]
3007
3137
  }
3008
3138
  },
3139
+ "sources": {
3140
+ "minItems": 1,
3141
+ "maxItems": 20,
3142
+ "type": "array",
3143
+ "items": {
3144
+ "type": "object",
3145
+ "properties": {
3146
+ "source": {
3147
+ "type": "string",
3148
+ "minLength": 1,
3149
+ "maxLength": 200
3150
+ },
3151
+ "kind": {
3152
+ "type": "string",
3153
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3154
+ },
3155
+ "description": {
3156
+ "type": "string",
3157
+ "minLength": 1,
3158
+ "maxLength": 500
3159
+ },
3160
+ "properties": {
3161
+ "type": "object",
3162
+ "propertyNames": {
3163
+ "type": "string",
3164
+ "pattern": "^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*|[a-z][A-Za-z0-9]*)$"
3165
+ },
3166
+ "additionalProperties": {
3167
+ "anyOf": [
3168
+ {
3169
+ "type": "string",
3170
+ "minLength": 1,
3171
+ "maxLength": 100
3172
+ },
3173
+ {
3174
+ "type": "object",
3175
+ "properties": {
3176
+ "name": {
3177
+ "type": "string",
3178
+ "minLength": 1,
3179
+ "maxLength": 100
3180
+ },
3181
+ "type": {
3182
+ "type": "string",
3183
+ "enum": [
3184
+ "title",
3185
+ "rich_text",
3186
+ "number",
3187
+ "select",
3188
+ "status",
3189
+ "multi_select",
3190
+ "date",
3191
+ "checkbox",
3192
+ "url",
3193
+ "email",
3194
+ "phone_number",
3195
+ "people",
3196
+ "relation"
3197
+ ]
3198
+ }
3199
+ },
3200
+ "required": [
3201
+ "name",
3202
+ "type"
3203
+ ],
3204
+ "additionalProperties": false
3205
+ }
3206
+ ]
3207
+ }
3208
+ }
3209
+ },
3210
+ "required": [
3211
+ "source",
3212
+ "kind"
3213
+ ],
3214
+ "additionalProperties": false
3215
+ }
3216
+ },
3217
+ "create": {
3218
+ "type": "boolean"
3219
+ },
3009
3220
  "direction": {
3010
3221
  "type": "string",
3011
3222
  "enum": [
@@ -3033,7 +3244,6 @@
3033
3244
  "required": [
3034
3245
  "system",
3035
3246
  "database",
3036
- "kind",
3037
3247
  "direction"
3038
3248
  ],
3039
3249
  "additionalProperties": false
@@ -3129,6 +3339,632 @@
3129
3339
  "additionalProperties": false,
3130
3340
  "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
3341
  },
3342
+ "workflows": {
3343
+ "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`).",
3344
+ "type": "object",
3345
+ "propertyNames": {
3346
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3347
+ },
3348
+ "additionalProperties": {
3349
+ "type": "object",
3350
+ "properties": {
3351
+ "title": {
3352
+ "type": "string",
3353
+ "minLength": 1,
3354
+ "maxLength": 120
3355
+ },
3356
+ "when": {
3357
+ "minItems": 1,
3358
+ "maxItems": 12,
3359
+ "type": "array",
3360
+ "items": {
3361
+ "anyOf": [
3362
+ {
3363
+ "type": "object",
3364
+ "properties": {
3365
+ "every": {
3366
+ "type": "string",
3367
+ "minLength": 1,
3368
+ "maxLength": 80
3369
+ }
3370
+ },
3371
+ "required": [
3372
+ "every"
3373
+ ],
3374
+ "additionalProperties": false
3375
+ },
3376
+ {
3377
+ "type": "object",
3378
+ "properties": {
3379
+ "cron": {
3380
+ "type": "string",
3381
+ "minLength": 9,
3382
+ "maxLength": 120
3383
+ }
3384
+ },
3385
+ "required": [
3386
+ "cron"
3387
+ ],
3388
+ "additionalProperties": false
3389
+ },
3390
+ {
3391
+ "type": "object",
3392
+ "properties": {
3393
+ "made": {
3394
+ "type": "string",
3395
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3396
+ },
3397
+ "where": {
3398
+ "type": "string",
3399
+ "minLength": 1,
3400
+ "maxLength": 2000
3401
+ }
3402
+ },
3403
+ "required": [
3404
+ "made"
3405
+ ],
3406
+ "additionalProperties": false
3407
+ },
3408
+ {
3409
+ "type": "object",
3410
+ "properties": {
3411
+ "changed": {
3412
+ "type": "string",
3413
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3414
+ },
3415
+ "fields": {
3416
+ "minItems": 1,
3417
+ "maxItems": 40,
3418
+ "type": "array",
3419
+ "items": {
3420
+ "type": "string",
3421
+ "pattern": "^(?:[a-z][a-z0-9]*(?:-[a-z0-9]+)*|[a-z][A-Za-z0-9]*)$"
3422
+ }
3423
+ },
3424
+ "where": {
3425
+ "type": "string",
3426
+ "minLength": 1,
3427
+ "maxLength": 2000
3428
+ }
3429
+ },
3430
+ "required": [
3431
+ "changed"
3432
+ ],
3433
+ "additionalProperties": false
3434
+ },
3435
+ {
3436
+ "type": "object",
3437
+ "properties": {
3438
+ "synced": {
3439
+ "type": "string",
3440
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3441
+ }
3442
+ },
3443
+ "required": [
3444
+ "synced"
3445
+ ],
3446
+ "additionalProperties": false
3447
+ },
3448
+ {
3449
+ "type": "object",
3450
+ "properties": {
3451
+ "byHand": {
3452
+ "type": "boolean",
3453
+ "const": true
3454
+ }
3455
+ },
3456
+ "required": [
3457
+ "byHand"
3458
+ ],
3459
+ "additionalProperties": false
3460
+ }
3461
+ ]
3462
+ }
3463
+ },
3464
+ "status": {
3465
+ "type": "string",
3466
+ "enum": [
3467
+ "active",
3468
+ "paused"
3469
+ ]
3470
+ },
3471
+ "approve": {
3472
+ "type": "string",
3473
+ "enum": [
3474
+ "apply",
3475
+ "suggest",
3476
+ "ask"
3477
+ ]
3478
+ },
3479
+ "steps": {
3480
+ "minItems": 1,
3481
+ "maxItems": 40,
3482
+ "type": "array",
3483
+ "items": {
3484
+ "anyOf": [
3485
+ {
3486
+ "type": "object",
3487
+ "properties": {
3488
+ "act": {
3489
+ "type": "string",
3490
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3491
+ },
3492
+ "over": {
3493
+ "type": "object",
3494
+ "properties": {
3495
+ "kind": {
3496
+ "type": "string",
3497
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3498
+ },
3499
+ "where": {
3500
+ "type": "string",
3501
+ "minLength": 1,
3502
+ "maxLength": 2000
3503
+ },
3504
+ "limit": {
3505
+ "type": "integer",
3506
+ "minimum": 1,
3507
+ "maximum": 10000
3508
+ }
3509
+ },
3510
+ "required": [
3511
+ "kind"
3512
+ ],
3513
+ "additionalProperties": false
3514
+ },
3515
+ "args": {
3516
+ "type": "object",
3517
+ "propertyNames": {
3518
+ "type": "string"
3519
+ },
3520
+ "additionalProperties": {
3521
+ "anyOf": [
3522
+ {
3523
+ "type": "string"
3524
+ },
3525
+ {
3526
+ "type": "number"
3527
+ },
3528
+ {
3529
+ "type": "boolean"
3530
+ },
3531
+ {
3532
+ "type": "null"
3533
+ },
3534
+ {
3535
+ "type": "array",
3536
+ "items": {}
3537
+ },
3538
+ {
3539
+ "type": "object",
3540
+ "properties": {
3541
+ "expr": {
3542
+ "type": "string",
3543
+ "minLength": 1,
3544
+ "maxLength": 2000
3545
+ }
3546
+ },
3547
+ "required": [
3548
+ "expr"
3549
+ ],
3550
+ "additionalProperties": false
3551
+ }
3552
+ ]
3553
+ }
3554
+ },
3555
+ "key": {
3556
+ "type": "string",
3557
+ "minLength": 1,
3558
+ "maxLength": 300
3559
+ },
3560
+ "approve": {
3561
+ "type": "string",
3562
+ "enum": [
3563
+ "apply",
3564
+ "suggest",
3565
+ "ask"
3566
+ ]
3567
+ }
3568
+ },
3569
+ "required": [
3570
+ "act"
3571
+ ],
3572
+ "additionalProperties": false
3573
+ },
3574
+ {
3575
+ "type": "object",
3576
+ "properties": {
3577
+ "agent": {
3578
+ "type": "string",
3579
+ "minLength": 1,
3580
+ "maxLength": 2000
3581
+ },
3582
+ "reads": {
3583
+ "maxItems": 40,
3584
+ "type": "array",
3585
+ "items": {
3586
+ "type": "string",
3587
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3588
+ }
3589
+ },
3590
+ "acts": {
3591
+ "maxItems": 60,
3592
+ "type": "array",
3593
+ "items": {
3594
+ "type": "string",
3595
+ "minLength": 1,
3596
+ "maxLength": 120
3597
+ }
3598
+ },
3599
+ "model": {
3600
+ "type": "string",
3601
+ "minLength": 1,
3602
+ "maxLength": 120
3603
+ },
3604
+ "budget": {
3605
+ "type": "object",
3606
+ "properties": {
3607
+ "calls": {
3608
+ "type": "integer",
3609
+ "minimum": 1,
3610
+ "maximum": 1000
3611
+ },
3612
+ "tokens": {
3613
+ "type": "integer",
3614
+ "minimum": 1,
3615
+ "maximum": 10000000
3616
+ }
3617
+ },
3618
+ "additionalProperties": false
3619
+ },
3620
+ "approve": {
3621
+ "type": "string",
3622
+ "enum": [
3623
+ "apply",
3624
+ "suggest",
3625
+ "ask"
3626
+ ]
3627
+ }
3628
+ },
3629
+ "required": [
3630
+ "agent",
3631
+ "reads",
3632
+ "acts"
3633
+ ],
3634
+ "additionalProperties": false
3635
+ },
3636
+ {
3637
+ "type": "object",
3638
+ "properties": {
3639
+ "generate": {
3640
+ "type": "string",
3641
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3642
+ },
3643
+ "from": {
3644
+ "minItems": 1,
3645
+ "maxItems": 12,
3646
+ "type": "array",
3647
+ "items": {
3648
+ "type": "object",
3649
+ "properties": {
3650
+ "kind": {
3651
+ "type": "string",
3652
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3653
+ },
3654
+ "where": {
3655
+ "type": "string",
3656
+ "minLength": 1,
3657
+ "maxLength": 2000
3658
+ },
3659
+ "dates": {
3660
+ "type": "string",
3661
+ "minLength": 1,
3662
+ "maxLength": 80
3663
+ }
3664
+ },
3665
+ "required": [
3666
+ "kind",
3667
+ "dates"
3668
+ ],
3669
+ "additionalProperties": false
3670
+ }
3671
+ },
3672
+ "window": {
3673
+ "anyOf": [
3674
+ {
3675
+ "type": "string",
3676
+ "minLength": 1,
3677
+ "maxLength": 40
3678
+ },
3679
+ {
3680
+ "type": "object",
3681
+ "properties": {
3682
+ "from": {
3683
+ "type": "string",
3684
+ "minLength": 1,
3685
+ "maxLength": 2000
3686
+ },
3687
+ "to": {
3688
+ "type": "string",
3689
+ "minLength": 1,
3690
+ "maxLength": 2000
3691
+ }
3692
+ },
3693
+ "required": [
3694
+ "from",
3695
+ "to"
3696
+ ],
3697
+ "additionalProperties": false
3698
+ }
3699
+ ]
3700
+ },
3701
+ "set": {
3702
+ "type": "object",
3703
+ "propertyNames": {
3704
+ "type": "string"
3705
+ },
3706
+ "additionalProperties": {
3707
+ "anyOf": [
3708
+ {
3709
+ "type": "string"
3710
+ },
3711
+ {
3712
+ "type": "number"
3713
+ },
3714
+ {
3715
+ "type": "boolean"
3716
+ },
3717
+ {
3718
+ "type": "null"
3719
+ },
3720
+ {
3721
+ "type": "array",
3722
+ "items": {}
3723
+ },
3724
+ {
3725
+ "type": "object",
3726
+ "properties": {
3727
+ "expr": {
3728
+ "type": "string",
3729
+ "minLength": 1,
3730
+ "maxLength": 2000
3731
+ }
3732
+ },
3733
+ "required": [
3734
+ "expr"
3735
+ ],
3736
+ "additionalProperties": false
3737
+ }
3738
+ ]
3739
+ }
3740
+ },
3741
+ "key": {
3742
+ "type": "string",
3743
+ "minLength": 1,
3744
+ "maxLength": 300
3745
+ },
3746
+ "link": {
3747
+ "type": "string",
3748
+ "minLength": 1,
3749
+ "maxLength": 80
3750
+ },
3751
+ "using": {
3752
+ "type": "string",
3753
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3754
+ },
3755
+ "overwrite": {
3756
+ "type": "boolean"
3757
+ },
3758
+ "approve": {
3759
+ "type": "string",
3760
+ "enum": [
3761
+ "apply",
3762
+ "suggest",
3763
+ "ask"
3764
+ ]
3765
+ }
3766
+ },
3767
+ "required": [
3768
+ "generate",
3769
+ "from",
3770
+ "window"
3771
+ ],
3772
+ "additionalProperties": false
3773
+ },
3774
+ {
3775
+ "type": "object",
3776
+ "properties": {
3777
+ "archive": {
3778
+ "type": "string",
3779
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3780
+ },
3781
+ "where": {
3782
+ "type": "string",
3783
+ "minLength": 1,
3784
+ "maxLength": 2000
3785
+ },
3786
+ "after": {
3787
+ "anyOf": [
3788
+ {
3789
+ "type": "string",
3790
+ "minLength": 1,
3791
+ "maxLength": 40
3792
+ },
3793
+ {
3794
+ "type": "object",
3795
+ "properties": {
3796
+ "field": {
3797
+ "type": "string",
3798
+ "minLength": 1,
3799
+ "maxLength": 120
3800
+ },
3801
+ "days": {
3802
+ "type": "integer",
3803
+ "minimum": 0,
3804
+ "maximum": 36500
3805
+ }
3806
+ },
3807
+ "required": [
3808
+ "field",
3809
+ "days"
3810
+ ],
3811
+ "additionalProperties": false
3812
+ }
3813
+ ]
3814
+ },
3815
+ "approve": {
3816
+ "type": "string",
3817
+ "enum": [
3818
+ "apply",
3819
+ "suggest",
3820
+ "ask"
3821
+ ]
3822
+ }
3823
+ },
3824
+ "required": [
3825
+ "archive"
3826
+ ],
3827
+ "additionalProperties": false
3828
+ },
3829
+ {
3830
+ "type": "object",
3831
+ "properties": {
3832
+ "classify": {
3833
+ "type": "string",
3834
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3835
+ },
3836
+ "where": {
3837
+ "type": "string",
3838
+ "minLength": 1,
3839
+ "maxLength": 2000
3840
+ },
3841
+ "field": {
3842
+ "type": "string",
3843
+ "minLength": 1,
3844
+ "maxLength": 120
3845
+ },
3846
+ "options": {
3847
+ "maxItems": 60,
3848
+ "type": "array",
3849
+ "items": {
3850
+ "type": "string",
3851
+ "minLength": 1,
3852
+ "maxLength": 120
3853
+ }
3854
+ },
3855
+ "instruction": {
3856
+ "type": "string",
3857
+ "minLength": 1,
3858
+ "maxLength": 2000
3859
+ },
3860
+ "floor": {
3861
+ "type": "object",
3862
+ "propertyNames": {
3863
+ "type": "string",
3864
+ "minLength": 1,
3865
+ "maxLength": 120
3866
+ },
3867
+ "additionalProperties": {
3868
+ "type": "object",
3869
+ "properties": {
3870
+ "links": {
3871
+ "type": "integer",
3872
+ "minimum": 1,
3873
+ "maximum": 1000
3874
+ },
3875
+ "words": {
3876
+ "maxItems": 500,
3877
+ "type": "array",
3878
+ "items": {
3879
+ "type": "string",
3880
+ "minLength": 1,
3881
+ "maxLength": 120
3882
+ }
3883
+ },
3884
+ "expr": {
3885
+ "type": "string",
3886
+ "minLength": 1,
3887
+ "maxLength": 2000
3888
+ }
3889
+ },
3890
+ "additionalProperties": false
3891
+ }
3892
+ },
3893
+ "setAside": {
3894
+ "type": "object",
3895
+ "propertyNames": {
3896
+ "type": "string",
3897
+ "minLength": 1,
3898
+ "maxLength": 120
3899
+ },
3900
+ "additionalProperties": {
3901
+ "type": "number"
3902
+ }
3903
+ },
3904
+ "confirm": {
3905
+ "maxItems": 60,
3906
+ "type": "array",
3907
+ "items": {
3908
+ "type": "string",
3909
+ "minLength": 1,
3910
+ "maxLength": 120
3911
+ }
3912
+ },
3913
+ "relabel": {
3914
+ "type": "boolean"
3915
+ },
3916
+ "model": {
3917
+ "type": "string",
3918
+ "minLength": 1,
3919
+ "maxLength": 120
3920
+ },
3921
+ "budget": {
3922
+ "type": "object",
3923
+ "properties": {
3924
+ "calls": {
3925
+ "type": "integer",
3926
+ "minimum": 1,
3927
+ "maximum": 10000
3928
+ },
3929
+ "tokens": {
3930
+ "type": "integer",
3931
+ "minimum": 1,
3932
+ "maximum": 10000000
3933
+ }
3934
+ },
3935
+ "additionalProperties": false
3936
+ },
3937
+ "approve": {
3938
+ "type": "string",
3939
+ "enum": [
3940
+ "apply",
3941
+ "suggest",
3942
+ "ask"
3943
+ ]
3944
+ }
3945
+ },
3946
+ "required": [
3947
+ "classify",
3948
+ "field"
3949
+ ],
3950
+ "additionalProperties": false
3951
+ }
3952
+ ]
3953
+ }
3954
+ },
3955
+ "follows": {
3956
+ "type": "string",
3957
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
3958
+ }
3959
+ },
3960
+ "required": [
3961
+ "title",
3962
+ "when",
3963
+ "steps"
3964
+ ],
3965
+ "additionalProperties": false
3966
+ }
3967
+ },
3132
3968
  "forms": {
3133
3969
  "type": "object",
3134
3970
  "propertyNames": {