@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.
- package/dist/app.d.ts +12 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js.map +1 -1
- package/dist/arranging.js +2 -2
- package/dist/arranging.js.map +1 -1
- package/dist/cli/check/index.d.ts +1 -0
- package/dist/cli/check/index.d.ts.map +1 -1
- package/dist/cli/check/index.js +1 -0
- package/dist/cli/check/index.js.map +1 -1
- package/dist/cli/check/workflows.d.ts +11 -0
- package/dist/cli/check/workflows.d.ts.map +1 -0
- package/dist/cli/check/workflows.js +20 -0
- package/dist/cli/check/workflows.js.map +1 -0
- package/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +2 -1
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/describe.d.ts.map +1 -1
- package/dist/cli/describe.js +31 -1
- package/dist/cli/describe.js.map +1 -1
- package/dist/cli/document-schema.d.ts.map +1 -1
- package/dist/cli/document-schema.js +9 -0
- package/dist/cli/document-schema.js.map +1 -1
- package/dist/compose.d.ts +1 -1
- package/dist/compose.d.ts.map +1 -1
- package/dist/document/amount.d.ts +1 -1
- package/dist/document/amount.d.ts.map +1 -1
- package/dist/document/amount.js +2 -2
- package/dist/document/amount.js.map +1 -1
- package/dist/document/blocks.d.ts.map +1 -1
- package/dist/document/blocks.js +17 -1
- package/dist/document/blocks.js.map +1 -1
- package/dist/document/compile-checked.d.ts.map +1 -1
- package/dist/document/compile-checked.js +4 -2
- package/dist/document/compile-checked.js.map +1 -1
- package/dist/document/compile.d.ts.map +1 -1
- package/dist/document/compile.js +48 -9
- package/dist/document/compile.js.map +1 -1
- package/dist/document/compiled.d.ts +14 -0
- package/dist/document/compiled.d.ts.map +1 -1
- package/dist/document/compiled.js +39 -4
- package/dist/document/compiled.js.map +1 -1
- package/dist/document/connection-findings.js +82 -17
- package/dist/document/connection-findings.js.map +1 -1
- package/dist/document/connection-spec.d.ts +32 -1
- package/dist/document/connection-spec.d.ts.map +1 -1
- package/dist/document/connection-spec.js +54 -8
- package/dist/document/connection-spec.js.map +1 -1
- package/dist/document/derives-findings.d.ts +4 -0
- package/dist/document/derives-findings.d.ts.map +1 -0
- package/dist/document/derives-findings.js +68 -0
- package/dist/document/derives-findings.js.map +1 -0
- package/dist/document/describe-forms.js +2 -2
- package/dist/document/describe-forms.js.map +1 -1
- package/dist/document/diff.d.ts +6 -0
- package/dist/document/diff.d.ts.map +1 -1
- package/dist/document/diff.js +43 -1
- package/dist/document/diff.js.map +1 -1
- package/dist/document/edit.d.ts +1 -1
- package/dist/document/edit.d.ts.map +1 -1
- package/dist/document/edit.js +263 -22
- package/dist/document/edit.js.map +1 -1
- package/dist/document/expr/evaluate.d.ts +7 -0
- package/dist/document/expr/evaluate.d.ts.map +1 -1
- package/dist/document/expr/evaluate.js.map +1 -1
- package/dist/document/format-words.d.ts +1 -0
- package/dist/document/format-words.d.ts.map +1 -1
- package/dist/document/format-words.js +2 -2
- package/dist/document/format-words.js.map +1 -1
- package/dist/document/kept-in-step-with.d.ts +20 -0
- package/dist/document/kept-in-step-with.d.ts.map +1 -0
- package/dist/document/kept-in-step-with.js +38 -0
- package/dist/document/kept-in-step-with.js.map +1 -0
- package/dist/document/kept-in-step.d.ts.map +1 -1
- package/dist/document/kept-in-step.js +3 -1
- package/dist/document/kept-in-step.js.map +1 -1
- package/dist/document/money.d.ts +10 -2
- package/dist/document/money.d.ts.map +1 -1
- package/dist/document/money.js +14 -5
- package/dist/document/money.js.map +1 -1
- package/dist/document/policy-words.d.ts +2 -0
- package/dist/document/policy-words.d.ts.map +1 -1
- package/dist/document/policy-words.js +11 -1
- package/dist/document/policy-words.js.map +1 -1
- package/dist/document/schema.d.ts +36 -1
- package/dist/document/schema.d.ts.map +1 -1
- package/dist/document/schema.js +44 -7
- package/dist/document/schema.js.map +1 -1
- package/dist/document/template-parse.d.ts.map +1 -1
- package/dist/document/template-parse.js +7 -1
- package/dist/document/template-parse.js.map +1 -1
- package/dist/document/template.d.ts +2 -0
- package/dist/document/template.d.ts.map +1 -1
- package/dist/document/template.js +10 -1
- package/dist/document/template.js.map +1 -1
- package/dist/document/to-document.js +2 -2
- package/dist/document/to-document.js.map +1 -1
- package/dist/document/workflow-spec.d.ts +72 -0
- package/dist/document/workflow-spec.d.ts.map +1 -0
- package/dist/document/workflow-spec.js +45 -0
- package/dist/document/workflow-spec.js.map +1 -0
- package/dist/document.schema.json +840 -4
- package/dist/history.d.ts.map +1 -1
- package/dist/history.js +2 -0
- package/dist/history.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/installation.d.ts +1 -1
- package/dist/job-findings.d.ts +5 -0
- package/dist/job-findings.d.ts.map +1 -1
- package/dist/job-findings.js +9 -3
- package/dist/job-findings.js.map +1 -1
- package/dist/keep-linked.d.ts +45 -0
- package/dist/keep-linked.d.ts.map +1 -0
- package/dist/keep-linked.js +188 -0
- package/dist/keep-linked.js.map +1 -0
- package/dist/mutations/derive-edits.js +2 -2
- package/dist/mutations/propose-changes.d.ts +24 -0
- package/dist/mutations/propose-changes.d.ts.map +1 -0
- package/dist/mutations/propose-changes.js +30 -0
- package/dist/mutations/propose-changes.js.map +1 -0
- package/dist/mutations/vote-suggestion.d.ts +30 -0
- package/dist/mutations/vote-suggestion.d.ts.map +1 -1
- package/dist/mutations/vote-suggestion.js +23 -0
- package/dist/mutations/vote-suggestion.js.map +1 -1
- package/dist/mutations/words.js +3 -3
- package/dist/ops/digest.d.ts +3 -1
- package/dist/ops/digest.d.ts.map +1 -1
- package/dist/ops/digest.js +7 -2
- package/dist/ops/digest.js.map +1 -1
- package/dist/ops/lineage.d.ts +19 -2
- package/dist/ops/lineage.d.ts.map +1 -1
- package/dist/ops/lineage.js +8 -4
- package/dist/ops/lineage.js.map +1 -1
- package/dist/ops/log.d.ts.map +1 -1
- package/dist/ops/log.js +13 -2
- package/dist/ops/log.js.map +1 -1
- package/dist/ops/suggestions.d.ts +47 -5
- package/dist/ops/suggestions.d.ts.map +1 -1
- package/dist/ops/suggestions.js +88 -13
- package/dist/ops/suggestions.js.map +1 -1
- package/dist/ops/tidying.d.ts.map +1 -1
- package/dist/ops/tidying.js +6 -1
- package/dist/ops/tidying.js.map +1 -1
- package/dist/ops/types.d.ts +28 -0
- package/dist/ops/types.d.ts.map +1 -1
- package/dist/ops/undo.d.ts.map +1 -1
- package/dist/ops/undo.js +17 -0
- package/dist/ops/undo.js.map +1 -1
- package/dist/permissions/policy.d.ts +7 -0
- package/dist/permissions/policy.d.ts.map +1 -1
- package/dist/permissions/policy.js +12 -0
- package/dist/permissions/policy.js.map +1 -1
- package/dist/permissions/types.d.ts +27 -0
- package/dist/permissions/types.d.ts.map +1 -1
- package/dist/permissions/types.js.map +1 -1
- package/dist/places.d.ts +10 -0
- package/dist/places.d.ts.map +1 -1
- package/dist/places.js +35 -1
- package/dist/places.js.map +1 -1
- package/dist/scene.d.ts +2 -0
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +2 -0
- package/dist/scene.js.map +1 -1
- package/dist/schema/amount-mark.d.ts +2 -0
- package/dist/schema/amount-mark.d.ts.map +1 -1
- package/dist/schema/amount-mark.js.map +1 -1
- package/dist/schema/amount-words.js +2 -2
- package/dist/schema/amount-words.js.map +1 -1
- package/dist/schema/choice-words.js +2 -2
- package/dist/schema/define-node.d.ts +8 -2
- package/dist/schema/define-node.d.ts.map +1 -1
- package/dist/schema/define-node.js +2 -2
- package/dist/schema/define-node.js.map +1 -1
- package/dist/schema/humanize.d.ts +17 -0
- package/dist/schema/humanize.d.ts.map +1 -1
- package/dist/schema/humanize.js +28 -1
- package/dist/schema/humanize.js.map +1 -1
- package/dist/schema/reading.d.ts +8 -0
- package/dist/schema/reading.d.ts.map +1 -1
- package/dist/schema/reading.js +16 -2
- package/dist/schema/reading.js.map +1 -1
- package/dist/schema/types.d.ts +8 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/value-words.js +2 -2
- package/dist/schema/value-words.js.map +1 -1
- package/dist/starting-document.d.ts +16 -3
- package/dist/starting-document.d.ts.map +1 -1
- package/dist/starting-document.js +32 -5
- package/dist/starting-document.js.map +1 -1
- package/dist/store.d.ts +47 -2
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +176 -13
- package/dist/store.js.map +1 -1
- package/dist/sync/connection.d.ts +24 -5
- package/dist/sync/connection.d.ts.map +1 -1
- package/dist/sync/connection.js +160 -27
- package/dist/sync/connection.js.map +1 -1
- package/dist/sync/engine.d.ts +83 -0
- package/dist/sync/engine.d.ts.map +1 -1
- package/dist/sync/engine.js +152 -1
- package/dist/sync/engine.js.map +1 -1
- package/dist/sync/google-calendar.d.ts.map +1 -1
- package/dist/sync/google-calendar.js +18 -1
- package/dist/sync/google-calendar.js.map +1 -1
- package/dist/sync/guest-words.d.ts +9 -0
- package/dist/sync/guest-words.d.ts.map +1 -0
- package/dist/sync/guest-words.js +41 -0
- package/dist/sync/guest-words.js.map +1 -0
- package/dist/sync/index.d.ts +8 -5
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +2 -0
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/notion-stub.d.ts +4 -1
- package/dist/sync/notion-stub.d.ts.map +1 -1
- package/dist/sync/notion-stub.js +40 -0
- package/dist/sync/notion-stub.js.map +1 -1
- package/dist/sync/notion.d.ts +43 -2
- package/dist/sync/notion.d.ts.map +1 -1
- package/dist/sync/notion.js +274 -140
- package/dist/sync/notion.js.map +1 -1
- package/dist/sync/status.d.ts +43 -0
- package/dist/sync/status.d.ts.map +1 -0
- package/dist/sync/status.js +45 -0
- package/dist/sync/status.js.map +1 -0
- package/dist/sync/types.d.ts +55 -0
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/sync/types.js.map +1 -1
- package/dist/tidying.d.ts +53 -4
- package/dist/tidying.d.ts.map +1 -1
- package/dist/tidying.js +110 -8
- package/dist/tidying.js.map +1 -1
- package/dist/validate-graph.d.ts +2 -1
- package/dist/validate-graph.d.ts.map +1 -1
- package/dist/validate-graph.js +32 -1
- package/dist/validate-graph.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/words.d.ts +4 -1
- package/dist/words.d.ts.map +1 -1
- package/dist/words.js +4 -1
- package/dist/words.js.map +1 -1
- package/dist/workflow-shape.d.ts +217 -0
- package/dist/workflow-shape.d.ts.map +1 -0
- package/dist/workflow-shape.js +31 -0
- package/dist/workflow-shape.js.map +1 -0
- package/dist/workflows/findings.d.ts +13 -0
- package/dist/workflows/findings.d.ts.map +1 -0
- package/dist/workflows/findings.js +157 -0
- package/dist/workflows/findings.js.map +1 -0
- package/dist/workflows/generate-words.d.ts +12 -0
- package/dist/workflows/generate-words.d.ts.map +1 -0
- package/dist/workflows/generate-words.js +25 -0
- package/dist/workflows/generate-words.js.map +1 -0
- package/dist/workflows/generate.d.ts +59 -0
- package/dist/workflows/generate.d.ts.map +1 -0
- package/dist/workflows/generate.js +165 -0
- package/dist/workflows/generate.js.map +1 -0
- package/dist/workflows/judging.d.ts +17 -0
- package/dist/workflows/judging.d.ts.map +1 -0
- package/dist/workflows/judging.js +11 -0
- package/dist/workflows/judging.js.map +1 -0
- package/dist/workflows/next.d.ts +18 -0
- package/dist/workflows/next.d.ts.map +1 -0
- package/dist/workflows/next.js +75 -0
- package/dist/workflows/next.js.map +1 -0
- package/dist/workflows/on-the-map.d.ts +70 -0
- package/dist/workflows/on-the-map.d.ts.map +1 -0
- package/dist/workflows/on-the-map.js +94 -0
- package/dist/workflows/on-the-map.js.map +1 -0
- package/dist/workflows/policies.d.ts +39 -0
- package/dist/workflows/policies.d.ts.map +1 -0
- package/dist/workflows/policies.js +95 -0
- package/dist/workflows/policies.js.map +1 -0
- package/dist/workflows/resolve.d.ts +55 -0
- package/dist/workflows/resolve.d.ts.map +1 -0
- package/dist/workflows/resolve.js +57 -0
- package/dist/workflows/resolve.js.map +1 -0
- package/dist/workflows/schedule.d.ts +28 -0
- package/dist/workflows/schedule.d.ts.map +1 -0
- package/dist/workflows/schedule.js +160 -0
- package/dist/workflows/schedule.js.map +1 -0
- package/dist/workflows/step-act.d.ts +6 -0
- package/dist/workflows/step-act.d.ts.map +1 -0
- package/dist/workflows/step-act.js +79 -0
- package/dist/workflows/step-act.js.map +1 -0
- package/dist/workflows/step-agent.d.ts +4 -0
- package/dist/workflows/step-agent.d.ts.map +1 -0
- package/dist/workflows/step-agent.js +55 -0
- package/dist/workflows/step-agent.js.map +1 -0
- package/dist/workflows/step-archive.d.ts +8 -0
- package/dist/workflows/step-archive.d.ts.map +1 -0
- package/dist/workflows/step-archive.js +74 -0
- package/dist/workflows/step-archive.js.map +1 -0
- package/dist/workflows/step-classify.d.ts +23 -0
- package/dist/workflows/step-classify.d.ts.map +1 -0
- package/dist/workflows/step-classify.js +143 -0
- package/dist/workflows/step-classify.js.map +1 -0
- package/dist/workflows/step-generate.d.ts +7 -0
- package/dist/workflows/step-generate.d.ts.map +1 -0
- package/dist/workflows/step-generate.js +185 -0
- package/dist/workflows/step-generate.js.map +1 -0
- package/dist/workflows/steps.d.ts +75 -0
- package/dist/workflows/steps.d.ts.map +1 -0
- package/dist/workflows/steps.js +40 -0
- package/dist/workflows/steps.js.map +1 -0
- package/dist/workflows/triggered.d.ts +22 -0
- package/dist/workflows/triggered.d.ts.map +1 -0
- package/dist/workflows/triggered.js +52 -0
- package/dist/workflows/triggered.js.map +1 -0
- package/dist/workflows/values.d.ts +28 -0
- package/dist/workflows/values.d.ts.map +1 -0
- package/dist/workflows/values.js +75 -0
- package/dist/workflows/values.js.map +1 -0
- package/dist/workflows/words.d.ts +10 -0
- package/dist/workflows/words.d.ts.map +1 -0
- package/dist/workflows/words.js +30 -0
- package/dist/workflows/words.js.map +1 -0
- package/dist/workflows/world.d.ts +23 -0
- package/dist/workflows/world.d.ts.map +1 -0
- package/dist/workflows/world.js +50 -0
- package/dist/workflows/world.js.map +1 -0
- package/dist/workflows.d.ts +35 -0
- package/dist/workflows.d.ts.map +1 -0
- package/dist/workflows.js +20 -0
- package/dist/workflows.js.map +1 -0
- package/package.json +8 -2
package/dist/validate-graph.js
CHANGED
|
@@ -3,6 +3,7 @@ import { UNSET } from "./graph/primitives.js";
|
|
|
3
3
|
import { edgeId } from "./graph/types.js";
|
|
4
4
|
import { evaluate } from "./invariants/engine.js";
|
|
5
5
|
import { humanizeField, labelOf } from "./schema/define-node.js";
|
|
6
|
+
import { keepsLinked, outOfStep } from "./keep-linked.js";
|
|
6
7
|
/** Every code, in the order findings are reported. */
|
|
7
8
|
export const GRAPH_FINDING_CODES = [
|
|
8
9
|
"kind-unknown",
|
|
@@ -11,6 +12,7 @@ export const GRAPH_FINDING_CODES = [
|
|
|
11
12
|
"edge-disallowed",
|
|
12
13
|
"rule-error",
|
|
13
14
|
"rule-budget",
|
|
15
|
+
"derived-out-of-step",
|
|
14
16
|
];
|
|
15
17
|
/** A stored node's fields that do not fit: undefined when it fits, [] when the failure names no field. */
|
|
16
18
|
function failingFields(schema, node) {
|
|
@@ -197,6 +199,26 @@ export function validateGraph(app, snapshot, options = {}) {
|
|
|
197
199
|
findings.push({ code, id, detail: violation.invariant, message: violation.message });
|
|
198
200
|
}
|
|
199
201
|
}
|
|
202
|
+
/*
|
|
203
|
+
* A RECORD THAT FOLLOWS ANOTHER (Roadmap f-keep-linked) and says other
|
|
204
|
+
* than its source works out: a field worked out from the source changed
|
|
205
|
+
* on its own side, which cannot go back, or a record made before the
|
|
206
|
+
* kind said what it follows. Its repair sets the field again.
|
|
207
|
+
*/
|
|
208
|
+
if (keepsLinked(schema)) {
|
|
209
|
+
const graph = Graph.from(schema, { nodes: [...nodes.values()].filter((node) => !unknownKind.has(node.id)), edges: held }, { validate: false });
|
|
210
|
+
for (const step of outOfStep(schema, graph, nodes.values())) {
|
|
211
|
+
const node = nodes.get(step.id);
|
|
212
|
+
const source = nodes.get(step.source);
|
|
213
|
+
findings.push({
|
|
214
|
+
code: "derived-out-of-step",
|
|
215
|
+
id: step.id,
|
|
216
|
+
detail: step.field,
|
|
217
|
+
message: `${named(schema, node)}: ${humanizeField(step.field)} says ${JSON.stringify(step.holds ?? null)}, and it follows ${named(schema, source)}, which works it out as ${JSON.stringify(step.follows ?? null)}`,
|
|
218
|
+
repair: { action: "coerce", primitives: [{ op: "patch-node", id: step.id, before: { [step.field]: step.holds === undefined ? UNSET : step.holds }, after: { [step.field]: step.follows === undefined ? UNSET : step.follows } }] },
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}
|
|
200
222
|
return findings.sort((a, b) => GRAPH_FINDING_CODES.indexOf(a.code) - GRAPH_FINDING_CODES.indexOf(b.code) ||
|
|
201
223
|
byString(a.id, b.id) ||
|
|
202
224
|
byString(a.detail ?? "", b.detail ?? ""));
|
|
@@ -219,6 +241,7 @@ export function repairPlan(findings) {
|
|
|
219
241
|
const dangling = new Set();
|
|
220
242
|
const disallowed = new Set();
|
|
221
243
|
let unjudged = 0;
|
|
244
|
+
const derivedFields = new Set();
|
|
222
245
|
for (const finding of findings) {
|
|
223
246
|
if (finding.code === "rule-error" || finding.code === "rule-budget")
|
|
224
247
|
unjudged++;
|
|
@@ -244,6 +267,9 @@ export function repairPlan(findings) {
|
|
|
244
267
|
removedEdges.set(id, primitive);
|
|
245
268
|
}
|
|
246
269
|
else if (primitive.op === "patch-node") {
|
|
270
|
+
if (finding.code === "derived-out-of-step")
|
|
271
|
+
for (const field of Object.keys(primitive.after))
|
|
272
|
+
derivedFields.add(`${primitive.id}|${field}`);
|
|
247
273
|
const patch = patches.get(primitive.id) ?? { before: {}, after: {} };
|
|
248
274
|
Object.assign(patch.before, primitive.before);
|
|
249
275
|
Object.assign(patch.after, primitive.after);
|
|
@@ -255,7 +281,10 @@ export function repairPlan(findings) {
|
|
|
255
281
|
for (const [id, patch] of [...patches].sort(([a], [b]) => byString(a, b))) {
|
|
256
282
|
if (removedNodes.has(id))
|
|
257
283
|
continue;
|
|
258
|
-
for (const value of Object.
|
|
284
|
+
for (const [field, value] of Object.entries(patch.after)) {
|
|
285
|
+
// A derived field set again is said as itself, not as a default.
|
|
286
|
+
if (derivedFields.has(`${id}|${field}`))
|
|
287
|
+
continue;
|
|
259
288
|
if (value === UNSET)
|
|
260
289
|
cleared++;
|
|
261
290
|
else
|
|
@@ -270,6 +299,8 @@ export function repairPlan(findings) {
|
|
|
270
299
|
said.push(count(cleared, "field that no longer fits would be cleared", "fields that no longer fit would be cleared"));
|
|
271
300
|
if (coerced > 0)
|
|
272
301
|
said.push(count(coerced, "required field would be set to its default", "required fields would be set to their defaults"));
|
|
302
|
+
if (derivedFields.size > 0)
|
|
303
|
+
said.push(count(derivedFields.size, "field of a record that follows another would be set again from its source", "fields of records that follow another would be set again from their sources"));
|
|
273
304
|
if (unfit > 0)
|
|
274
305
|
said.push(`${count(unfit, "record that cannot be made to fit would be removed", "records that cannot be made to fit would be removed")}, with their links`);
|
|
275
306
|
if (dangling.size > 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-graph.js","sourceRoot":"","sources":["../src/validate-graph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate-graph.js","sourceRoot":"","sources":["../src/validate-graph.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/dist/words.d.ts
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
* `edgeWords`), and an amount asked for as it is said (`amountBox`,
|
|
11
11
|
* `amountInBox`, `readAmount`), and a date typed as
|
|
12
12
|
* people say it (`readWhenTyped`, `storedOfWall`, `wallOfStored`, `zoneSaid`,
|
|
13
|
-
* `endAfterStartMoved`, `startAndEndOf`)
|
|
13
|
+
* `endAfterStartMoved`, `startAndEndOf`), and the other system a record is
|
|
14
|
+
* kept in step with (`keptInStepWith`).
|
|
14
15
|
*
|
|
15
16
|
* Apart from `@graview/core` because a bundler places a whole file in a
|
|
16
17
|
* page's first chunk when the first chunk can reach it and any chunk uses
|
|
@@ -36,4 +37,6 @@ export type { AmountBox } from "./amount-input.js";
|
|
|
36
37
|
export { readPartialDay, readWhenTyped } from "./when-typed.js";
|
|
37
38
|
export { endAfterStartMoved, namesInstant, startAndEndOf, storedOfWall, wallNow, wallOfStored, zoneSaid } from "./wall-time.js";
|
|
38
39
|
export type { WallTime } from "./wall-time.js";
|
|
40
|
+
export { keptInStepWith } from "./document/kept-in-step-with.js";
|
|
41
|
+
export type { KeptInStepWith } from "./document/kept-in-step-with.js";
|
|
39
42
|
//# sourceMappingURL=words.d.ts.map
|
package/dist/words.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"words.d.ts","sourceRoot":"","sources":["../src/words.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"words.d.ts","sourceRoot":"","sources":["../src/words.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACpI,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACvE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAChI,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC"}
|
package/dist/words.js
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
* `edgeWords`), and an amount asked for as it is said (`amountBox`,
|
|
11
11
|
* `amountInBox`, `readAmount`), and a date typed as
|
|
12
12
|
* people say it (`readWhenTyped`, `storedOfWall`, `wallOfStored`, `zoneSaid`,
|
|
13
|
-
* `endAfterStartMoved`, `startAndEndOf`)
|
|
13
|
+
* `endAfterStartMoved`, `startAndEndOf`), and the other system a record is
|
|
14
|
+
* kept in step with (`keptInStepWith`).
|
|
14
15
|
*
|
|
15
16
|
* Apart from `@graview/core` because a bundler places a whole file in a
|
|
16
17
|
* page's first chunk when the first chunk can reach it and any chunk uses
|
|
@@ -39,4 +40,6 @@ export { amountBox, amountInBox, readAmount } from "./amount-input.js";
|
|
|
39
40
|
// A day or a moment typed as people say it — "tomorrow 3pm", "Fri 10:30", "17 Oct" — kept as the field keeps it (Roadmap f-date-inputs).
|
|
40
41
|
export { readPartialDay, readWhenTyped } from "./when-typed.js";
|
|
41
42
|
export { endAfterStartMoved, namesInstant, startAndEndOf, storedOfWall, wallNow, wallOfStored, zoneSaid } from "./wall-time.js";
|
|
43
|
+
// The other system a record is kept in step with, as its page says it: "Kept in step with Notion · Tasks", linked there.
|
|
44
|
+
export { keptInStepWith } from "./document/kept-in-step-with.js";
|
|
42
45
|
//# sourceMappingURL=words.js.map
|
package/dist/words.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"words.js","sourceRoot":"","sources":["../src/words.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"words.js","sourceRoot":"","sources":["../src/words.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,+DAA+D;AAC/D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACtE,uIAAuI;AACvI,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,wEAAwE;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,+EAA+E;AAC/E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACpI,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEvE,yIAAyI;AACzI,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEhI,yHAAyH;AACzH,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WORKFLOWS: WHAT THE APP DOES ON ITS OWN, AND WHEN (Roadmap f-jobs-declared).
|
|
3
|
+
*
|
|
4
|
+
* workflows: {
|
|
5
|
+
* "next-weeks-events": {
|
|
6
|
+
* title: "Fill out next week's events",
|
|
7
|
+
* when: [{ every: "sunday 18:00" }, { made: "grocery-list" }],
|
|
8
|
+
* steps: [{ act: "add-event", over: { kind: "routine", where: "active" }, args: { name: { expr: "name" } }, key: "{id}" }],
|
|
9
|
+
* },
|
|
10
|
+
* }
|
|
11
|
+
*
|
|
12
|
+
* A workflow is the app's own actor given a schedule and a list of steps,
|
|
13
|
+
* in the declaration: run on a clock (`every`, `cron`, said in the brand's
|
|
14
|
+
* time zone), when a record of a kind is made or changed, when a connection
|
|
15
|
+
* finishes a pass, or by hand. Each step is one of a closed set of kinds
|
|
16
|
+
* (`STEP_KINDS`, `@graview/core/workflows`): run an act once or over the
|
|
17
|
+
* records a rule picks, or let a model propose acts from a list. What it
|
|
18
|
+
* makes is applied, suggested or asked about (`approve`).
|
|
19
|
+
*
|
|
20
|
+
* The same shape in a document (`workflows`) and in `defineApp({ workflows })`.
|
|
21
|
+
* `graview check` holds each to the declaration (`workflow-*`);
|
|
22
|
+
* `@graview/core/workflows` resolves them (`workflowsOf`), says them
|
|
23
|
+
* (`workflowWords`) and says when one runs next (`nextRunAt`);
|
|
24
|
+
* `@graview/tools/workflows` runs one (`runWorkflow`). Never a "job": the
|
|
25
|
+
* purpose's jobs are the questions an app answers (`job-shape.ts`).
|
|
26
|
+
*/
|
|
27
|
+
/** What starts a run: a clock in words or cron, a record made or changed, a connection's pass, or a person. */
|
|
28
|
+
export type WorkflowTrigger =
|
|
29
|
+
/** Words: "day", "day 03:00", "weekday 09:00", "sunday 18:00", "month 1 09:00", "hour" — in the brand's time zone. */
|
|
30
|
+
{
|
|
31
|
+
readonly every: string;
|
|
32
|
+
}
|
|
33
|
+
/** Five-field cron, "0 18 * * 0", in the brand's time zone. */
|
|
34
|
+
| {
|
|
35
|
+
readonly cron: string;
|
|
36
|
+
}
|
|
37
|
+
/** A record of this kind was made; `where`, in the rule language, holds of it. */
|
|
38
|
+
| {
|
|
39
|
+
readonly made: string;
|
|
40
|
+
readonly where?: string;
|
|
41
|
+
}
|
|
42
|
+
/** A record of this kind changed — one of these fields, when said. */
|
|
43
|
+
| {
|
|
44
|
+
readonly changed: string;
|
|
45
|
+
readonly fields?: readonly string[];
|
|
46
|
+
readonly where?: string;
|
|
47
|
+
}
|
|
48
|
+
/** The named connection finished a pass. */
|
|
49
|
+
| {
|
|
50
|
+
readonly synced: string;
|
|
51
|
+
}
|
|
52
|
+
/** Run now, only. */
|
|
53
|
+
| {
|
|
54
|
+
readonly byHand: true;
|
|
55
|
+
};
|
|
56
|
+
/** What becomes of what a run would change: made, suggested by how sure it is, or gathered for a person to approve. */
|
|
57
|
+
export type WorkflowApproval = "apply" | "suggest" | "ask";
|
|
58
|
+
/** A value a step hands an act: a literal, `$subject`, `$now`, `$today`, or `{ expr }` read on the record a step is over. */
|
|
59
|
+
export type WorkflowValue = string | number | boolean | null | readonly unknown[] | {
|
|
60
|
+
readonly expr: string;
|
|
61
|
+
};
|
|
62
|
+
/** Which records a step runs over: one kind, those a rule holds of, at most `limit`. */
|
|
63
|
+
export interface WorkflowOver {
|
|
64
|
+
readonly kind: string;
|
|
65
|
+
readonly where?: string;
|
|
66
|
+
readonly limit?: number;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* RUN AN ACT: once (no `over`), or once per record `over` picks — the
|
|
70
|
+
* record the act's subject and what `{ expr }` values read. `key`, a
|
|
71
|
+
* `{field}` template ("{id}:{date}"), is the stable key of what the step
|
|
72
|
+
* makes: a rerun with the same key changes the record it made last time
|
|
73
|
+
* rather than making another.
|
|
74
|
+
*/
|
|
75
|
+
export interface ActStep {
|
|
76
|
+
readonly act: string;
|
|
77
|
+
readonly over?: WorkflowOver;
|
|
78
|
+
readonly args?: Readonly<Record<string, WorkflowValue>>;
|
|
79
|
+
readonly key?: string;
|
|
80
|
+
readonly approve?: WorkflowApproval;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* LET A MODEL PROPOSE: an instruction in words, the kinds it may read and
|
|
84
|
+
* the acts it may propose, the model ("fast" or a host's model id) and
|
|
85
|
+
* what one run may spend. Each act it proposes is applied, suggested or
|
|
86
|
+
* let go by `approve` and its confidence, as the app's own actor's are.
|
|
87
|
+
* With no model lent, the step is skipped and the run says so.
|
|
88
|
+
*/
|
|
89
|
+
export interface AgentStep {
|
|
90
|
+
readonly agent: string;
|
|
91
|
+
readonly reads: readonly string[];
|
|
92
|
+
readonly acts: readonly string[];
|
|
93
|
+
readonly model?: string;
|
|
94
|
+
readonly budget?: {
|
|
95
|
+
readonly calls?: number;
|
|
96
|
+
readonly tokens?: number;
|
|
97
|
+
};
|
|
98
|
+
readonly approve?: WorkflowApproval;
|
|
99
|
+
}
|
|
100
|
+
/** Where a generate step's dates come from: a kind, the records a rule picks of it, and the field that holds each one's date. */
|
|
101
|
+
export interface GenerateFrom {
|
|
102
|
+
readonly kind: string;
|
|
103
|
+
readonly where?: string;
|
|
104
|
+
/** A date or a moment (one day), one that repeats (`<field>Repeat` beside it), or a set of weekdays ("mon", "wed"). */
|
|
105
|
+
readonly dates: string;
|
|
106
|
+
}
|
|
107
|
+
/** The days a generate step makes records for: words ("next week", "this week", "next 7 days", "today", "tomorrow"), or two expressions. */
|
|
108
|
+
export type GenerateWindow = string | {
|
|
109
|
+
readonly from: string;
|
|
110
|
+
readonly to: string;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* MAKE DATED RECORDS FROM A PATTERN (Roadmap f-job-generate-from-pattern):
|
|
114
|
+
* for each day in `window` that a source record's date falls on — a date,
|
|
115
|
+
* a date that repeats, a set of weekdays — one record of the kind
|
|
116
|
+
* `generate` names, its fields from `set` (read on the source, with `date`
|
|
117
|
+
* the occurrence and `source` its record), linked back through `link`.
|
|
118
|
+
* Made once per `key` ("{source}:{date}" when unsaid): a rerun changes what
|
|
119
|
+
* the source changed and nothing a person changed, unless `overwrite`.
|
|
120
|
+
*/
|
|
121
|
+
export interface GenerateStep {
|
|
122
|
+
readonly generate: string;
|
|
123
|
+
readonly from: readonly GenerateFrom[];
|
|
124
|
+
readonly window: GenerateWindow;
|
|
125
|
+
readonly set?: Readonly<Record<string, WorkflowValue>>;
|
|
126
|
+
readonly key?: string;
|
|
127
|
+
/** The relation between a made record and its source: the made kind's, or the source kind's. */
|
|
128
|
+
readonly link?: string;
|
|
129
|
+
/** The act that makes one, where more than one act makes the kind (not `act`, which would make the step an act step). */
|
|
130
|
+
readonly using?: string;
|
|
131
|
+
/** A rerun sets a field again even where a person changed it. */
|
|
132
|
+
readonly overwrite?: boolean;
|
|
133
|
+
readonly approve?: WorkflowApproval;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* SET ASIDE WHAT IS DONE WITH (Roadmap f-retention-rules): archive the
|
|
137
|
+
* records of a kind `where` holds of, once they have stood `after` — "3
|
|
138
|
+
* days" since each last changed, or `{ field, days }` after a date it
|
|
139
|
+
* holds. Archived, never removed; a record left alone, a kind never
|
|
140
|
+
* tidied and a record a person brought back from this workflow's archive
|
|
141
|
+
* are passed by.
|
|
142
|
+
*/
|
|
143
|
+
export interface ArchiveStep {
|
|
144
|
+
readonly archive: string;
|
|
145
|
+
readonly where?: string;
|
|
146
|
+
readonly after?: string | {
|
|
147
|
+
readonly field: string;
|
|
148
|
+
readonly days: number;
|
|
149
|
+
};
|
|
150
|
+
readonly approve?: WorkflowApproval;
|
|
151
|
+
}
|
|
152
|
+
/** A floor rule: what labels a record when no model judges it — any one of these that holds. */
|
|
153
|
+
export interface ClassifyFloorRule {
|
|
154
|
+
/** At least this many links (http, https or www) in its text fields. */
|
|
155
|
+
readonly links?: number;
|
|
156
|
+
/** Any of these words or phrases in its text fields, as whole words, any case. */
|
|
157
|
+
readonly words?: readonly string[];
|
|
158
|
+
/** A line of the rule language that holds of it. */
|
|
159
|
+
readonly expr?: string;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* LABEL EACH RECORD (Roadmap f-feedback-triage-agent): one typed judgment
|
|
163
|
+
* per record of `classify` — which of `field`'s options fits it, and how
|
|
164
|
+
* sure — set through the kind's own act with the reason on its lineage.
|
|
165
|
+
* Without a model, the `floor` decides; a record no rule matches is left
|
|
166
|
+
* for a person. An option whose confidence reaches its `setAside`
|
|
167
|
+
* threshold also archives the record (never removes it). Asked of a person
|
|
168
|
+
* unless the step says its own `approve`; an option in `confirm` is
|
|
169
|
+
* always asked. A record already labeled is passed by unless `relabel`.
|
|
170
|
+
*/
|
|
171
|
+
export interface ClassifyStep {
|
|
172
|
+
readonly classify: string;
|
|
173
|
+
readonly where?: string;
|
|
174
|
+
/** The choice field the label is kept in. */
|
|
175
|
+
readonly field: string;
|
|
176
|
+
/** The options it may choose from: the field's, or some of them. */
|
|
177
|
+
readonly options?: readonly string[];
|
|
178
|
+
/** What the model is told, in words, beside the options. */
|
|
179
|
+
readonly instruction?: string;
|
|
180
|
+
readonly floor?: Readonly<Record<string, ClassifyFloorRule>>;
|
|
181
|
+
/** An option, and how sure (0 to 1) a judgment must be for the record to be archived too. */
|
|
182
|
+
readonly setAside?: Readonly<Record<string, number>>;
|
|
183
|
+
/** Options never set without a person's yes, whatever `approve` says. */
|
|
184
|
+
readonly confirm?: readonly string[];
|
|
185
|
+
/** Judge a record again though it is labeled already. */
|
|
186
|
+
readonly relabel?: boolean;
|
|
187
|
+
readonly model?: string;
|
|
188
|
+
readonly budget?: {
|
|
189
|
+
readonly calls?: number;
|
|
190
|
+
readonly tokens?: number;
|
|
191
|
+
};
|
|
192
|
+
readonly approve?: WorkflowApproval;
|
|
193
|
+
}
|
|
194
|
+
/** One step of a workflow: one of `STEP_KINDS`, told apart by its one discriminating key. */
|
|
195
|
+
export type WorkflowStep = ActStep | AgentStep | GenerateStep | ArchiveStep | ClassifyStep;
|
|
196
|
+
/** A workflow as it is declared. */
|
|
197
|
+
export interface WorkflowDeclaration {
|
|
198
|
+
/** Words a person reads: "Fill out next week's events". 1–120 characters. */
|
|
199
|
+
readonly title: string;
|
|
200
|
+
/** What starts it: one or several. */
|
|
201
|
+
readonly when: readonly WorkflowTrigger[];
|
|
202
|
+
/** Paused, it runs on no clock and no change; Run now still dry-runs it. Active when unsaid. */
|
|
203
|
+
readonly status?: "active" | "paused";
|
|
204
|
+
/** The workflow's own word on what its changes become; a step may say its own. */
|
|
205
|
+
readonly approve?: WorkflowApproval;
|
|
206
|
+
/** In order; at least one. */
|
|
207
|
+
readonly steps: readonly WorkflowStep[];
|
|
208
|
+
/** A kind of policy records the run reads and its model steps are told (Roadmap f-job-rule-inputs). */
|
|
209
|
+
readonly follows?: string;
|
|
210
|
+
}
|
|
211
|
+
/** An app's workflows, by slug name. */
|
|
212
|
+
export type AppWorkflows = Readonly<Record<string, WorkflowDeclaration>>;
|
|
213
|
+
/** The most workflows an app declares. */
|
|
214
|
+
export declare const MOST_WORKFLOWS = 40;
|
|
215
|
+
/** The most steps one workflow takes. */
|
|
216
|
+
export declare const MOST_STEPS = 40;
|
|
217
|
+
//# sourceMappingURL=workflow-shape.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-shape.d.ts","sourceRoot":"","sources":["../src/workflow-shape.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WORKFLOWS: WHAT THE APP DOES ON ITS OWN, AND WHEN (Roadmap f-jobs-declared).
|
|
3
|
+
*
|
|
4
|
+
* workflows: {
|
|
5
|
+
* "next-weeks-events": {
|
|
6
|
+
* title: "Fill out next week's events",
|
|
7
|
+
* when: [{ every: "sunday 18:00" }, { made: "grocery-list" }],
|
|
8
|
+
* steps: [{ act: "add-event", over: { kind: "routine", where: "active" }, args: { name: { expr: "name" } }, key: "{id}" }],
|
|
9
|
+
* },
|
|
10
|
+
* }
|
|
11
|
+
*
|
|
12
|
+
* A workflow is the app's own actor given a schedule and a list of steps,
|
|
13
|
+
* in the declaration: run on a clock (`every`, `cron`, said in the brand's
|
|
14
|
+
* time zone), when a record of a kind is made or changed, when a connection
|
|
15
|
+
* finishes a pass, or by hand. Each step is one of a closed set of kinds
|
|
16
|
+
* (`STEP_KINDS`, `@graview/core/workflows`): run an act once or over the
|
|
17
|
+
* records a rule picks, or let a model propose acts from a list. What it
|
|
18
|
+
* makes is applied, suggested or asked about (`approve`).
|
|
19
|
+
*
|
|
20
|
+
* The same shape in a document (`workflows`) and in `defineApp({ workflows })`.
|
|
21
|
+
* `graview check` holds each to the declaration (`workflow-*`);
|
|
22
|
+
* `@graview/core/workflows` resolves them (`workflowsOf`), says them
|
|
23
|
+
* (`workflowWords`) and says when one runs next (`nextRunAt`);
|
|
24
|
+
* `@graview/tools/workflows` runs one (`runWorkflow`). Never a "job": the
|
|
25
|
+
* purpose's jobs are the questions an app answers (`job-shape.ts`).
|
|
26
|
+
*/
|
|
27
|
+
/** The most workflows an app declares. */
|
|
28
|
+
export const MOST_WORKFLOWS = 40;
|
|
29
|
+
/** The most steps one workflow takes. */
|
|
30
|
+
export const MOST_STEPS = 40;
|
|
31
|
+
//# sourceMappingURL=workflow-shape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-shape.js","sourceRoot":"","sources":["../src/workflow-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AA8KH,0CAA0C;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,yCAAyC;AACzC,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type Finding } from "../document/findings.js";
|
|
2
|
+
import type { GraviewDocument } from "../document/schema.js";
|
|
3
|
+
import { type WorkflowFinding } from "./steps.js";
|
|
4
|
+
import { type WorkflowWorld } from "./world.js";
|
|
5
|
+
/** Every finding about one workflow. */
|
|
6
|
+
export declare function workflowFindingsOf(name: string, raw: unknown, world: WorkflowWorld): WorkflowFinding[];
|
|
7
|
+
/** Every finding about an app's workflows, by name, at paths under `workflows`. */
|
|
8
|
+
export declare function workflowFindings(workflows: unknown, world: WorkflowWorld): (WorkflowFinding & {
|
|
9
|
+
readonly workflow: string;
|
|
10
|
+
})[];
|
|
11
|
+
/** A document's workflows, judged with its own sentences at its own paths (`workflows.<name>.steps.0.act`): what `compileDocument` and `graview check` say of them. */
|
|
12
|
+
export declare function documentWorkflowFindings(document: GraviewDocument): Finding[];
|
|
13
|
+
//# sourceMappingURL=findings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findings.d.ts","sourceRoot":"","sources":["../../src/workflows/findings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAM7D,OAAO,EAAsC,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAGtF,OAAO,EAA2B,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AA+BzE,wCAAwC;AACxC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,eAAe,EAAE,CAyEtG;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,CAAC,eAAe,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,CAU9H;AAED,uKAAuK;AACvK,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,EAAE,CAM7E"}
|