@graview/core 0.1.61 → 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/README.md +13 -1
- package/dist/app-places.d.ts.map +1 -1
- package/dist/app-places.js +2 -2
- package/dist/app-places.js.map +1 -1
- package/dist/app.d.ts +22 -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/capabilities.js +1 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/cli/check/hidden-reads.d.ts.map +1 -1
- package/dist/cli/check/hidden-reads.js +26 -0
- package/dist/cli/check/hidden-reads.js.map +1 -1
- package/dist/cli/check/index.d.ts +2 -0
- package/dist/cli/check/index.d.ts.map +1 -1
- package/dist/cli/check/index.js +2 -0
- package/dist/cli/check/index.js.map +1 -1
- package/dist/cli/check/tidying.d.ts +14 -0
- package/dist/cli/check/tidying.d.ts.map +1 -0
- package/dist/cli/check/tidying.js +24 -0
- package/dist/cli/check/tidying.js.map +1 -0
- 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 +3 -1
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/describe.d.ts.map +1 -1
- package/dist/cli/describe.js +45 -2
- package/dist/cli/describe.js.map +1 -1
- package/dist/cli/document-schema.d.ts.map +1 -1
- package/dist/cli/document-schema.js +15 -2
- package/dist/cli/document-schema.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/compose.d.ts +11 -3
- package/dist/compose.d.ts.map +1 -1
- package/dist/compose.js +12 -2
- package/dist/compose.js.map +1 -1
- package/dist/css/sanitize.d.ts +125 -0
- package/dist/css/sanitize.d.ts.map +1 -0
- package/dist/css/sanitize.js +989 -0
- package/dist/css/sanitize.js.map +1 -0
- package/dist/css/tables.d.ts +55 -0
- package/dist/css/tables.d.ts.map +1 -0
- package/dist/css/tables.js +137 -0
- package/dist/css/tables.js.map +1 -0
- package/dist/css.d.ts +20 -0
- package/dist/css.d.ts.map +1 -0
- package/dist/css.js +19 -0
- package/dist/css.js.map +1 -0
- package/dist/days.d.ts +15 -0
- package/dist/days.d.ts.map +1 -1
- package/dist/days.js +21 -0
- package/dist/days.js.map +1 -1
- package/dist/describe.d.ts +1 -1
- package/dist/describe.d.ts.map +1 -1
- package/dist/document/act-findings.d.ts.map +1 -1
- package/dist/document/act-findings.js +80 -1
- package/dist/document/act-findings.js.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/brand-check.d.ts +15 -1
- package/dist/document/brand-check.d.ts.map +1 -1
- package/dist/document/brand-check.js +80 -0
- package/dist/document/brand-check.js.map +1 -1
- package/dist/document/brand.d.ts.map +1 -1
- package/dist/document/brand.js +2 -0
- package/dist/document/brand.js.map +1 -1
- package/dist/document/compile-checked.d.ts.map +1 -1
- package/dist/document/compile-checked.js +5 -2
- package/dist/document/compile-checked.js.map +1 -1
- package/dist/document/compile.d.ts.map +1 -1
- package/dist/document/compile.js +96 -16
- package/dist/document/compile.js.map +1 -1
- package/dist/document/compiled.d.ts +32 -3
- package/dist/document/compiled.d.ts.map +1 -1
- package/dist/document/compiled.js +123 -12
- package/dist/document/compiled.js.map +1 -1
- package/dist/document/connection-findings.js +165 -22
- package/dist/document/connection-findings.js.map +1 -1
- package/dist/document/connection-spec.d.ts +38 -1
- package/dist/document/connection-spec.d.ts.map +1 -1
- package/dist/document/connection-spec.js +71 -7
- package/dist/document/connection-spec.js.map +1 -1
- package/dist/document/covers.d.ts +48 -0
- package/dist/document/covers.d.ts.map +1 -0
- package/dist/document/covers.js +90 -0
- package/dist/document/covers.js.map +1 -0
- 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/describe-place.d.ts +3 -0
- package/dist/document/describe-place.d.ts.map +1 -1
- package/dist/document/describe-place.js +11 -0
- package/dist/document/describe-place.js.map +1 -1
- package/dist/document/described.d.ts +28 -0
- package/dist/document/described.d.ts.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 +53 -2
- 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 +366 -29
- package/dist/document/edit.js.map +1 -1
- package/dist/document/expr/evaluate.d.ts +17 -1
- package/dist/document/expr/evaluate.d.ts.map +1 -1
- package/dist/document/expr/evaluate.js +110 -2
- package/dist/document/expr/evaluate.js.map +1 -1
- package/dist/document/expr/index.d.ts +1 -0
- package/dist/document/expr/index.d.ts.map +1 -1
- package/dist/document/expr/index.js +2 -0
- package/dist/document/expr/index.js.map +1 -1
- package/dist/document/expr/typing.d.ts +24 -0
- package/dist/document/expr/typing.d.ts.map +1 -0
- package/dist/document/expr/typing.js +219 -0
- package/dist/document/expr/typing.js.map +1 -0
- package/dist/document/expr/when.d.ts +52 -0
- package/dist/document/expr/when.d.ts.map +1 -0
- package/dist/document/expr/when.js +215 -0
- package/dist/document/expr/when.js.map +1 -0
- package/dist/document/expr-type-findings.d.ts +5 -0
- package/dist/document/expr-type-findings.d.ts.map +1 -0
- package/dist/document/expr-type-findings.js +90 -0
- package/dist/document/expr-type-findings.js.map +1 -0
- 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/index.d.ts +6 -3
- package/dist/document/index.d.ts.map +1 -1
- package/dist/document/index.js +5 -2
- package/dist/document/index.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/linked-findings.js +1 -1
- package/dist/document/linked-findings.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/rule-line.d.ts +7 -3
- package/dist/document/rule-line.d.ts.map +1 -1
- package/dist/document/rule-line.js +17 -2
- package/dist/document/rule-line.js.map +1 -1
- package/dist/document/rule-reads.d.ts.map +1 -1
- package/dist/document/rule-reads.js +3 -1
- package/dist/document/rule-reads.js.map +1 -1
- package/dist/document/rules.d.ts +30 -0
- package/dist/document/rules.d.ts.map +1 -1
- package/dist/document/rules.js +74 -0
- package/dist/document/rules.js.map +1 -1
- package/dist/document/schema.d.ts +110 -2
- package/dist/document/schema.d.ts.map +1 -1
- package/dist/document/schema.js +125 -10
- 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.d.ts.map +1 -1
- package/dist/document/to-document.js +5 -3
- 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 +1143 -50
- 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 +11 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/dist/installation.d.ts +1 -1
- package/dist/invariants/types.d.ts +7 -2
- package/dist/invariants/types.d.ts.map +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/lines.d.ts.map +1 -1
- package/dist/lines.js +6 -2
- package/dist/lines.js.map +1 -1
- 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/types.d.ts +9 -0
- package/dist/mutations/types.d.ts.map +1 -1
- package/dist/mutations/vote-suggestion.d.ts +97 -0
- package/dist/mutations/vote-suggestion.d.ts.map +1 -0
- package/dist/mutations/vote-suggestion.js +59 -0
- package/dist/mutations/vote-suggestion.js.map +1 -0
- package/dist/mutations/words.js +3 -3
- package/dist/navigate.d.ts +7 -3
- package/dist/navigate.d.ts.map +1 -1
- package/dist/navigate.js +7 -3
- package/dist/navigate.js.map +1 -1
- 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 +29 -2
- package/dist/ops/lineage.d.ts.map +1 -1
- package/dist/ops/lineage.js +12 -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 +75 -1
- package/dist/ops/suggestions.d.ts.map +1 -1
- package/dist/ops/suggestions.js +123 -6
- 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 +41 -0
- package/dist/ops/types.d.ts.map +1 -1
- package/dist/ops/types.js.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/place-names.d.ts +42 -0
- package/dist/place-names.d.ts.map +1 -0
- package/dist/place-names.js +43 -0
- package/dist/place-names.js.map +1 -0
- package/dist/places.d.ts +12 -0
- package/dist/places.d.ts.map +1 -1
- package/dist/places.js +37 -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 +47 -2
- package/dist/starting-document.d.ts.map +1 -1
- package/dist/starting-document.js +66 -8
- package/dist/starting-document.js.map +1 -1
- package/dist/store.d.ts +75 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +305 -29
- package/dist/store.js.map +1 -1
- package/dist/sync/connection.d.ts +35 -6
- package/dist/sync/connection.d.ts.map +1 -1
- package/dist/sync/connection.js +252 -47
- 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 +157 -4
- package/dist/sync/engine.js.map +1 -1
- package/dist/sync/google-calendar.d.ts +8 -0
- package/dist/sync/google-calendar.d.ts.map +1 -1
- package/dist/sync/google-calendar.js +30 -3
- 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/guests.d.ts +44 -0
- package/dist/sync/guests.d.ts.map +1 -0
- package/dist/sync/guests.js +57 -0
- package/dist/sync/guests.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 +64 -0
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/sync/types.js.map +1 -1
- package/dist/testing.js +1 -1
- package/dist/testing.js.map +1 -1
- package/dist/theme/contrast.d.ts +2 -0
- package/dist/theme/contrast.d.ts.map +1 -1
- package/dist/theme/contrast.js +4 -0
- package/dist/theme/contrast.js.map +1 -1
- package/dist/theme/ground.d.ts +1 -2
- package/dist/theme/ground.d.ts.map +1 -1
- package/dist/theme/ground.js +2 -5
- package/dist/theme/ground.js.map +1 -1
- package/dist/theme/marks.d.ts +14 -2
- package/dist/theme/marks.d.ts.map +1 -1
- package/dist/theme/marks.js +20 -3
- package/dist/theme/marks.js.map +1 -1
- package/dist/theme/types.d.ts +22 -0
- package/dist/theme/types.d.ts.map +1 -1
- package/dist/theme/types.js.map +1 -1
- package/dist/tidying.d.ts +79 -4
- package/dist/tidying.d.ts.map +1 -1
- package/dist/tidying.js +216 -9
- package/dist/tidying.js.map +1 -1
- package/dist/trait-vocabulary.d.ts +17 -0
- package/dist/trait-vocabulary.d.ts.map +1 -0
- package/dist/trait-vocabulary.js +16 -0
- package/dist/trait-vocabulary.js.map +1 -0
- package/dist/traits.d.ts +14 -7
- package/dist/traits.d.ts.map +1 -1
- package/dist/traits.js +33 -12
- package/dist/traits.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 +18 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/workflows/steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as z from "../schema/zod.js";
|
|
2
|
+
import { NAME } from "../document/schema.js";
|
|
3
|
+
import { nounOf } from "../schema/define-node.js";
|
|
4
|
+
import { actStep } from "./step-act.js";
|
|
5
|
+
import { agentStep } from "./step-agent.js";
|
|
6
|
+
import { generateStep } from "./step-generate.js";
|
|
7
|
+
import { archiveStep } from "./step-archive.js";
|
|
8
|
+
import { classifyStep } from "./step-classify.js";
|
|
9
|
+
/** A kind's noun when no declaration is at hand: its name, read as words. */
|
|
10
|
+
export const kindNoun = (kind) => nounOf(undefined, kind);
|
|
11
|
+
/** Every kind of step, by its key. A new kind: its file, and one line here. */
|
|
12
|
+
export const STEP_KINDS = {
|
|
13
|
+
act: actStep,
|
|
14
|
+
agent: agentStep,
|
|
15
|
+
generate: generateStep,
|
|
16
|
+
archive: archiveStep,
|
|
17
|
+
classify: classifyStep,
|
|
18
|
+
};
|
|
19
|
+
/** The kind of a step, by the one key of `STEP_KINDS` it holds; undefined for one that holds none. */
|
|
20
|
+
export function stepKindOf(step) {
|
|
21
|
+
if (typeof step !== "object" || step === null)
|
|
22
|
+
return undefined;
|
|
23
|
+
for (const key of Object.keys(STEP_KINDS))
|
|
24
|
+
if (key in step)
|
|
25
|
+
return STEP_KINDS[key];
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
/** The shapes a step kind is built with. */
|
|
29
|
+
export function stepShapes() {
|
|
30
|
+
const str = (min, max) => z.string().check(z.minLength(min), z.maxLength(max));
|
|
31
|
+
const expression = str(1, 2000);
|
|
32
|
+
return {
|
|
33
|
+
str,
|
|
34
|
+
name: (what) => z.string().check(z.regex(NAME, `${what} names are kebab-case, lower-case words joined by hyphens like "add-event"`)),
|
|
35
|
+
expression,
|
|
36
|
+
value: z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(z.unknown()), z.strictObject({ expr: expression })]),
|
|
37
|
+
approve: z.enum(["apply", "suggest", "ask"], 'approve is "apply", "suggest" or "ask"'),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=steps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/workflows/steps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAoDlD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,QAAQ,GAAa,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAkBpE,+EAA+E;AAC/E,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,GAAG,EAAE,OAAO;IACZ,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,YAAY;CACsC,CAAC;AAI/D,sGAAsG;AACtG,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAChE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAkB;QAAE,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,UAAU,CAAC,GAAG,CAAsE,CAAC;IACzK,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/F,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,OAAO;QACL,GAAG;QACH,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,4EAA4E,CAAC,CAAC;QACpI,UAAU;QACV,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAC3H,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,wCAAwC,CAAC;KACvF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Operation } from "../ops/types.js";
|
|
2
|
+
import type { AnySchema } from "../schema/schema.js";
|
|
3
|
+
import type { Store } from "../store.js";
|
|
4
|
+
import type { WorkflowTrigger } from "../workflow-shape.js";
|
|
5
|
+
/** What a commit is, to a workflow: the ops it landed, or a connection's pass. */
|
|
6
|
+
export type WorkflowCommit = {
|
|
7
|
+
readonly ops: readonly Operation[];
|
|
8
|
+
} | {
|
|
9
|
+
readonly synced: string;
|
|
10
|
+
};
|
|
11
|
+
/** A trigger a commit fired, and the records that fired it. */
|
|
12
|
+
export interface FiredTrigger {
|
|
13
|
+
readonly trigger: WorkflowTrigger;
|
|
14
|
+
readonly records: readonly string[];
|
|
15
|
+
}
|
|
16
|
+
/** The triggers of a workflow a commit fires, in the order declared. */
|
|
17
|
+
export declare function triggeredBy<S extends AnySchema>(workflow: {
|
|
18
|
+
readonly name: string;
|
|
19
|
+
readonly title: string;
|
|
20
|
+
readonly when: readonly WorkflowTrigger[];
|
|
21
|
+
}, commit: WorkflowCommit, given: Store<S>): FiredTrigger[];
|
|
22
|
+
//# sourceMappingURL=triggered.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triggered.d.ts","sourceRoot":"","sources":["../../src/workflows/triggered.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAY5D,kFAAkF;AAClF,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAcD,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,QAAQ,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,eAAe,EAAE,CAAA;CAAE,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,CAsBhN"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { shapesFor } from "../document/computed-values.js";
|
|
2
|
+
import { evaluateExpr, ExprEvalError } from "../document/expr/evaluate.js";
|
|
3
|
+
import { parseExpr } from "../document/expr/parse.js";
|
|
4
|
+
import { matchSubscriptions } from "../subscriptions.js";
|
|
5
|
+
import { workflowAuthor } from "./resolve.js";
|
|
6
|
+
const holds = (where, node, store) => {
|
|
7
|
+
if (where === undefined)
|
|
8
|
+
return true;
|
|
9
|
+
if (!node)
|
|
10
|
+
return false;
|
|
11
|
+
try {
|
|
12
|
+
const value = evaluateExpr(parseExpr(where), { graph: store.graph, subject: node, kinds: shapesFor(store.schema) });
|
|
13
|
+
return value === true;
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
if (error instanceof ExprEvalError)
|
|
17
|
+
return false;
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
/** The triggers of a workflow a commit fires, in the order declared. */
|
|
22
|
+
export function triggeredBy(workflow, commit, given) {
|
|
23
|
+
const store = given;
|
|
24
|
+
if ("synced" in commit)
|
|
25
|
+
return workflow.when.filter((trigger) => "synced" in trigger && trigger.synced === commit.synced).map((trigger) => ({ trigger, records: [] }));
|
|
26
|
+
const who = { ...workflowAuthor(workflow) };
|
|
27
|
+
const fired = [];
|
|
28
|
+
workflow.when.forEach((trigger, at) => {
|
|
29
|
+
if (!("made" in trigger) && !("changed" in trigger))
|
|
30
|
+
return;
|
|
31
|
+
const kind = "made" in trigger ? trigger.made : trigger.changed;
|
|
32
|
+
const subscription = { id: `workflow:${workflow.name}:${at}`, who, app: "", when: "made" in trigger ? { on: "created", kind } : { on: "changed", kind }, at: "" };
|
|
33
|
+
const records = new Set();
|
|
34
|
+
for (const match of matchSubscriptions(given, commit.ops, [subscription])) {
|
|
35
|
+
for (const record of match.records) {
|
|
36
|
+
if (record.kind !== kind)
|
|
37
|
+
continue;
|
|
38
|
+
if ("made" in trigger ? record.change !== "created" : record.change !== "changed")
|
|
39
|
+
continue;
|
|
40
|
+
if ("changed" in trigger && trigger.fields?.length && !(record.fields ?? []).some((field) => trigger.fields.includes(field.field)))
|
|
41
|
+
continue;
|
|
42
|
+
if (!holds(trigger.where, store.graph.getNode(record.id), store))
|
|
43
|
+
continue;
|
|
44
|
+
records.add(record.id);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (records.size > 0)
|
|
48
|
+
fired.push({ trigger, records: [...records] });
|
|
49
|
+
});
|
|
50
|
+
return fired;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=triggered.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triggered.js","sourceRoot":"","sources":["../../src/workflows/triggered.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { AnyGraphNode } from "../graph/types.js";
|
|
2
|
+
import type { Principal } from "../permissions/types.js";
|
|
3
|
+
import type { AnySchema } from "../schema/schema.js";
|
|
4
|
+
import type { Store } from "../store.js";
|
|
5
|
+
import type { WorkflowDeclaration, WorkflowOver, WorkflowValue } from "../workflow-shape.js";
|
|
6
|
+
/** The ids of the records a step runs over, as `principal` sees them: those of the kind `where` holds of, at most `limit`, in the order they stand. */
|
|
7
|
+
export declare function recordsOver<S extends AnySchema>(store: Store<S>, over: WorkflowOver, principal: Principal): string[];
|
|
8
|
+
/**
|
|
9
|
+
* A STEP'S VALUE, as the act is handed it: `{ expr }` read with the record
|
|
10
|
+
* as its subject; `$subject` the record's id; `$now` and `$today` the
|
|
11
|
+
* run's moment and day; `$$…` a literal "$…"; anything else as written.
|
|
12
|
+
*/
|
|
13
|
+
export declare function workflowValue<S extends AnySchema>(value: WorkflowValue, record: AnyGraphNode | undefined, store: Store<S>, now: {
|
|
14
|
+
readonly at: string;
|
|
15
|
+
readonly today: string;
|
|
16
|
+
}): unknown;
|
|
17
|
+
/** A key template read on what a step has: "{id}:{date}" → "task:7f3:2026-11-02". A name it has no value for reads as nothing. */
|
|
18
|
+
export declare function workflowKey(template: string, values: Readonly<Record<string, unknown>>): string;
|
|
19
|
+
/** A workflow as declared, hashed — all but whether it is paused, which changes when it runs, not what it does. */
|
|
20
|
+
export declare function workflowSpecHash(declared: WorkflowDeclaration): string;
|
|
21
|
+
/**
|
|
22
|
+
* THE ID A KEYED RECORD IS MADE UNDER (Roadmap f-job-idempotency):
|
|
23
|
+
* `<prefix>:wf.<workflow>.<key>` — the prefix the kind's ids carry, the
|
|
24
|
+
* workflow's name and the key slugged — asked for as a client asks for an
|
|
25
|
+
* id, so the store itself refuses a second record of the same key.
|
|
26
|
+
*/
|
|
27
|
+
export declare const keyedId: (prefix: string, workflow: string, key: string) => string;
|
|
28
|
+
//# sourceMappingURL=values.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/workflows/values.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,mBAAmB,CAAC;AAGnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAU7F,uJAAuJ;AACvJ,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE,CAGpH;AAUD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAYzL;AAED,kIAAkI;AAClI,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAK/F;AAED,mHAAmH;AACnH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAGtE;AAQD;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,EAAE,UAAU,MAAM,EAAE,KAAK,MAAM,KAAG,MAAoD,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { canonicalize } from "../document/canonical.js";
|
|
2
|
+
import { shapesFor } from "../document/computed-values.js";
|
|
3
|
+
import { evaluateExpr, NodeSet } from "../document/expr/evaluate.js";
|
|
4
|
+
import { parseExpr } from "../document/expr/parse.js";
|
|
5
|
+
import { sha256Hex } from "../integrity.js";
|
|
6
|
+
import { answerJob } from "../jobs.js";
|
|
7
|
+
/*
|
|
8
|
+
* WHAT A STEP READS, worked out as a runner needs it: the records `over`
|
|
9
|
+
* picks, as the run's author sees them; the value a step hands an act,
|
|
10
|
+
* read on the record it is over, as an act's own `{ expr }` values are;
|
|
11
|
+
* the key of what it makes; and the hash of a workflow as declared, which
|
|
12
|
+
* says whether the next run is the first after a change.
|
|
13
|
+
*/
|
|
14
|
+
/** The ids of the records a step runs over, as `principal` sees them: those of the kind `where` holds of, at most `limit`, in the order they stand. */
|
|
15
|
+
export function recordsOver(store, over, principal) {
|
|
16
|
+
const ids = answerJob(store, { kind: over.kind, ...(over.where !== undefined ? { where: over.where } : {}) }, principal).ids;
|
|
17
|
+
return over.limit === undefined ? [...ids] : ids.slice(0, over.limit);
|
|
18
|
+
}
|
|
19
|
+
/** A value the language gives, as an act's argument takes it: a record as its id, a set as its ids. */
|
|
20
|
+
const asArgument = (value) => {
|
|
21
|
+
if (value instanceof NodeSet)
|
|
22
|
+
return value.nodes.map((node) => node.id);
|
|
23
|
+
if (Array.isArray(value))
|
|
24
|
+
return value.map((one) => asArgument(one));
|
|
25
|
+
if (value !== null && typeof value === "object")
|
|
26
|
+
return value.id;
|
|
27
|
+
return value;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* A STEP'S VALUE, as the act is handed it: `{ expr }` read with the record
|
|
31
|
+
* as its subject; `$subject` the record's id; `$now` and `$today` the
|
|
32
|
+
* run's moment and day; `$$…` a literal "$…"; anything else as written.
|
|
33
|
+
*/
|
|
34
|
+
export function workflowValue(value, record, store, now) {
|
|
35
|
+
if (value !== null && typeof value === "object" && !Array.isArray(value) && "expr" in value) {
|
|
36
|
+
const any = store;
|
|
37
|
+
return asArgument(evaluateExpr(parseExpr(value.expr), { graph: any.graph, subject: record ?? null, kinds: shapesFor(any.schema), today: now.today, ...(record ? { bindings: { subject: record } } : {}) }));
|
|
38
|
+
}
|
|
39
|
+
if (typeof value === "string") {
|
|
40
|
+
if (value.startsWith("$$"))
|
|
41
|
+
return value.slice(1);
|
|
42
|
+
if (value === "$subject")
|
|
43
|
+
return record?.id;
|
|
44
|
+
if (value === "$now")
|
|
45
|
+
return now.at;
|
|
46
|
+
if (value === "$today")
|
|
47
|
+
return now.today;
|
|
48
|
+
}
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
/** A key template read on what a step has: "{id}:{date}" → "task:7f3:2026-11-02". A name it has no value for reads as nothing. */
|
|
52
|
+
export function workflowKey(template, values) {
|
|
53
|
+
return template.replace(/\{([^{}|\s]+)(?:\s*\|[^{}]*)?\}/g, (_, name) => {
|
|
54
|
+
const value = values[name];
|
|
55
|
+
return value === undefined || value === null ? "" : typeof value === "object" ? JSON.stringify(value) : String(value);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/** A workflow as declared, hashed — all but whether it is paused, which changes when it runs, not what it does. */
|
|
59
|
+
export function workflowSpecHash(declared) {
|
|
60
|
+
const { status: _status, ...rest } = declared;
|
|
61
|
+
return sha256Hex(canonicalize(rest));
|
|
62
|
+
}
|
|
63
|
+
/** A key as an id may carry it: letters, digits and a few marks; a long one, or one with none of those, by its hash. */
|
|
64
|
+
const keySlug = (text) => {
|
|
65
|
+
const slug = text.toLowerCase().replace(/[^a-z0-9._:-]+/g, "-").replace(/^-+|-+$/g, "");
|
|
66
|
+
return slug.length > 0 && slug.length <= 120 ? slug : sha256Hex(text).slice(0, 24);
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* THE ID A KEYED RECORD IS MADE UNDER (Roadmap f-job-idempotency):
|
|
70
|
+
* `<prefix>:wf.<workflow>.<key>` — the prefix the kind's ids carry, the
|
|
71
|
+
* workflow's name and the key slugged — asked for as a client asks for an
|
|
72
|
+
* id, so the store itself refuses a second record of the same key.
|
|
73
|
+
*/
|
|
74
|
+
export const keyedId = (prefix, workflow, key) => `${prefix}:wf.${workflow}.${keySlug(key)}`;
|
|
75
|
+
//# sourceMappingURL=values.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/workflows/values.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { WorkflowTrigger } from "../workflow-shape.js";
|
|
2
|
+
import { type KindNoun } from "./steps.js";
|
|
3
|
+
/** One trigger in words: "every Sunday at 6 PM", "when a grocery list is made". */
|
|
4
|
+
export declare function triggerWords(trigger: WorkflowTrigger, noun?: KindNoun): string;
|
|
5
|
+
/** A workflow in a sentence. */
|
|
6
|
+
export declare function workflowWords(workflow: {
|
|
7
|
+
readonly title: string;
|
|
8
|
+
readonly when: readonly WorkflowTrigger[];
|
|
9
|
+
}, noun?: KindNoun): string;
|
|
10
|
+
//# sourceMappingURL=words.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"words.d.ts","sourceRoot":"","sources":["../../src/workflows/words.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWrD,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,GAAE,QAAmB,GAAG,MAAM,CAMxF;AAED,gCAAgC;AAChC,wBAAgB,aAAa,CAAC,QAAQ,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,eAAe,EAAE,CAAA;CAAE,EAAE,IAAI,GAAE,QAAmB,GAAG,MAAM,CAKhJ"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { scheduleWords } from "./schedule.js";
|
|
2
|
+
import { withArticle } from "../schema/define-node.js";
|
|
3
|
+
import { kindNoun } from "./steps.js";
|
|
4
|
+
/*
|
|
5
|
+
* A WORKFLOW IN A SENTENCE: what starts it, then what it does — "Every
|
|
6
|
+
* Sunday at 6 PM, and when a grocery list is made: fill out next week's
|
|
7
|
+
* events". Each kind by its noun: the declaration's, where the caller
|
|
8
|
+
* hands it (`noun`), else its name read as words.
|
|
9
|
+
*/
|
|
10
|
+
const listed = (said) => (said.length <= 2 ? said.join(" and ") : `${said.slice(0, -1).join(", ")} and ${said.at(-1)}`);
|
|
11
|
+
/** One trigger in words: "every Sunday at 6 PM", "when a grocery list is made". */
|
|
12
|
+
export function triggerWords(trigger, noun = kindNoun) {
|
|
13
|
+
if ("every" in trigger || "cron" in trigger)
|
|
14
|
+
return scheduleWords(trigger);
|
|
15
|
+
if ("made" in trigger)
|
|
16
|
+
return `when ${withArticle(noun(trigger.made))} is made${trigger.where ? ` where ${trigger.where}` : ""}`;
|
|
17
|
+
if ("changed" in trigger)
|
|
18
|
+
return `when ${withArticle(noun(trigger.changed))}${trigger.fields?.length ? `'s ${listed(trigger.fields)}` : ""} changes${trigger.where ? ` where ${trigger.where}` : ""}`;
|
|
19
|
+
if ("synced" in trigger)
|
|
20
|
+
return `when the connection “${trigger.synced}” finishes a pass`;
|
|
21
|
+
return "when somebody runs it";
|
|
22
|
+
}
|
|
23
|
+
/** A workflow in a sentence. */
|
|
24
|
+
export function workflowWords(workflow, noun = kindNoun) {
|
|
25
|
+
const when = workflow.when.map((trigger) => triggerWords(trigger, noun));
|
|
26
|
+
const said = when.length <= 2 ? when.join(", and ") : `${when.slice(0, -1).join(", ")}, and ${when.at(-1)}`;
|
|
27
|
+
const start = said.charAt(0).toUpperCase() + said.slice(1);
|
|
28
|
+
return `${start}: ${workflow.title.charAt(0).toLowerCase()}${workflow.title.slice(1)}`;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=words.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"words.js","sourceRoot":"","sources":["../../src/workflows/words.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAC;AAErD;;;;;GAKG;AAEH,MAAM,MAAM,GAAG,CAAC,IAAuB,EAAU,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAEnJ,mFAAmF;AACnF,MAAM,UAAU,YAAY,CAAC,OAAwB,EAAE,OAAiB,QAAQ;IAC9E,IAAI,OAAO,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO;QAAE,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3E,IAAI,MAAM,IAAI,OAAO;QAAE,OAAO,QAAQ,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACjI,IAAI,SAAS,IAAI,OAAO;QAAE,OAAO,QAAQ,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACtM,IAAI,QAAQ,IAAI,OAAO;QAAE,OAAO,wBAAwB,OAAO,CAAC,MAAM,mBAAmB,CAAC;IAC1F,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,aAAa,CAAC,QAA+E,EAAE,OAAiB,QAAQ;IACtI,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5G,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,GAAG,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACzF,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { GraviewApp } from "../app.js";
|
|
2
|
+
import type { GraviewDocument } from "../document/schema.js";
|
|
3
|
+
import { type JobWorld } from "../job-findings.js";
|
|
4
|
+
import type { AnySchema } from "../schema/schema.js";
|
|
5
|
+
/** A connection as a workflow reads it: the kinds it keeps in step, and whether this app's changes go out through it. */
|
|
6
|
+
export interface WorkflowConnection {
|
|
7
|
+
readonly kinds: readonly string[];
|
|
8
|
+
readonly writes: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface WorkflowWorld extends JobWorld {
|
|
11
|
+
/** Every act the app gives, declared and derived, by name. */
|
|
12
|
+
readonly acts: readonly string[];
|
|
13
|
+
/** The kinds an act makes records of; undefined where the app has no act of that name. */
|
|
14
|
+
actMakes(name: string): readonly string[] | undefined;
|
|
15
|
+
readonly connections: ReadonlyMap<string, WorkflowConnection>;
|
|
16
|
+
/** A kind as a person reads it: the noun its declaration says. */
|
|
17
|
+
noun(kind: string): string;
|
|
18
|
+
}
|
|
19
|
+
/** What a document's workflows may name, read off the document alone. */
|
|
20
|
+
export declare function workflowWorldOfDocument(document: GraviewDocument): WorkflowWorld;
|
|
21
|
+
/** What a compiled or TypeScript app's workflows may name. */
|
|
22
|
+
export declare function workflowWorldOfApp<S extends AnySchema>(app: GraviewApp<S>): WorkflowWorld;
|
|
23
|
+
//# sourceMappingURL=world.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/workflows/world.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAqC,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAItF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAUrD,yHAAyH;AACzH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC9D,kEAAkE;IAClE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAaD,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,GAAG,aAAa,CAiBhF;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,aAAa,CAczF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { actsOfDocument } from "../document/act-spellings.js";
|
|
2
|
+
import { jobWorldOfApp, jobWorldOfDocument } from "../job-findings.js";
|
|
3
|
+
import { deriveMutations } from "../mutations/derive-edits.js";
|
|
4
|
+
import { derivedActOf, givenWhenNeverArchived } from "../mutations/derived-names.js";
|
|
5
|
+
import { nounOf } from "../schema/define-node.js";
|
|
6
|
+
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
7
|
+
/** A connection's kinds and direction, read loosely: one kind, or a kind per source. */
|
|
8
|
+
function connectionOf(spec) {
|
|
9
|
+
const given = isRecord(spec) ? spec : {};
|
|
10
|
+
const kinds = [given["kind"], ...(Array.isArray(given["sources"]) ? given["sources"].map((source) => (isRecord(source) ? source["kind"] : undefined)) : [])].filter((kind) => typeof kind === "string");
|
|
11
|
+
return { kinds, writes: given["direction"] !== "read" };
|
|
12
|
+
}
|
|
13
|
+
const connectionsOf = (connections) => new Map(Object.entries(connections ?? {}).map(([name, spec]) => [name, connectionOf(spec)]));
|
|
14
|
+
/** What a document's workflows may name, read off the document alone. */
|
|
15
|
+
export function workflowWorldOfDocument(document) {
|
|
16
|
+
const acts = document.acts ?? {};
|
|
17
|
+
return {
|
|
18
|
+
...jobWorldOfDocument(document),
|
|
19
|
+
// A kind that is never set aside (`archives: false`) is given no archive, unarchive or merge: as the app's derived acts leave them out.
|
|
20
|
+
acts: actsOfDocument(document).filter((act) => {
|
|
21
|
+
const derived = derivedActOf(act);
|
|
22
|
+
return !derived || document.kinds[derived.kind]?.archives !== false || givenWhenNeverArchived(derived.act);
|
|
23
|
+
}),
|
|
24
|
+
actMakes(name) {
|
|
25
|
+
const act = acts[name];
|
|
26
|
+
if (act)
|
|
27
|
+
return [...new Set([...(act.creates ? [act.creates] : []), ...(act.effects ?? []).flatMap((effect) => (isRecord(effect) && typeof effect["create"] === "string" ? [effect["create"]] : []))])];
|
|
28
|
+
return derivedActOf(name) || this.actOn(name) !== undefined ? [] : undefined;
|
|
29
|
+
},
|
|
30
|
+
connections: connectionsOf(document.connections),
|
|
31
|
+
noun: (kind) => nounOf(document.kinds[kind], kind),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** What a compiled or TypeScript app's workflows may name. */
|
|
35
|
+
export function workflowWorldOfApp(app) {
|
|
36
|
+
const declared = app.mutations ?? [];
|
|
37
|
+
const every = [...declared, ...deriveMutations(app.schema, declared)];
|
|
38
|
+
const byName = new Map(every.map((mutation) => [mutation.name, mutation]));
|
|
39
|
+
return {
|
|
40
|
+
...jobWorldOfApp(app),
|
|
41
|
+
acts: [...byName.keys()],
|
|
42
|
+
actMakes: (name) => {
|
|
43
|
+
const mutation = byName.get(name);
|
|
44
|
+
return mutation ? [...(mutation.creates ?? [])] : undefined;
|
|
45
|
+
},
|
|
46
|
+
connections: connectionsOf(app.connections),
|
|
47
|
+
noun: (kind) => nounOf(app.schema.tryDefinition(kind), kind),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=world.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/workflows/world.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAiB,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AA2BlD,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE5I,wFAAwF;AACxF,SAAS,YAAY,CAAC,IAAa;IACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;IACxN,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,MAAM,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,WAA0D,EAA2C,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5N,yEAAyE;AACzE,MAAM,UAAU,uBAAuB,CAAC,QAAyB;IAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;IACjC,OAAO;QACL,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QAC/B,wIAAwI;QACxI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5C,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,KAAK,IAAI,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7G,CAAC,CAAC;QACF,QAAQ,CAAC,IAAI;YACX,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAmE,CAAC;YACzF,IAAI,GAAG;gBAAE,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxM,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,CAAC;QACD,WAAW,EAAE,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC;QAChD,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAkC,EAAE,IAAI,CAAC;KACpF,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB,CAAsB,GAAkB;IACxE,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3E,OAAO;QACL,GAAG,aAAa,CAAC,GAAG,CAAC;QACrB,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACxB,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;YACjB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAE,QAA4C,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnG,CAAC;QACD,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,WAA4D,CAAC;QAC5F,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAkC,EAAE,IAAI,CAAC;KAC9F,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@graview/core/workflows` — WHAT THE APP DOES ON ITS OWN, AND WHEN
|
|
3
|
+
* (Roadmap f-jobs-declared).
|
|
4
|
+
*
|
|
5
|
+
* The declaration's `workflows`, read: their shape (`WorkflowSpec`), the
|
|
6
|
+
* closed set of step kinds (`STEP_KINDS`) and what each may name
|
|
7
|
+
* (`workflowWorldOfDocument`, `workflowWorldOfApp`), each resolved with its
|
|
8
|
+
* defaults (`workflowsOf`, dreaming among them), said in a sentence
|
|
9
|
+
* (`workflowWords`), when it next runs on its clock (`nextRunAt`), what a
|
|
10
|
+
* commit starts (`triggeredBy`) and what the checker says of them
|
|
11
|
+
* (`workflowFindings`). Running one is
|
|
12
|
+
* `@graview/tools/workflows`' (`runWorkflow`). An entry of its own, on no
|
|
13
|
+
* page: nothing a page draws runs a workflow.
|
|
14
|
+
*/
|
|
15
|
+
export type { ActStep, AgentStep, ArchiveStep, ClassifyFloorRule, ClassifyStep, GenerateFrom, GenerateStep, GenerateWindow, AppWorkflows, WorkflowApproval, WorkflowDeclaration, WorkflowOver, WorkflowStep, WorkflowTrigger, WorkflowValue } from "./workflow-shape.js";
|
|
16
|
+
export { MOST_STEPS, MOST_WORKFLOWS } from "./workflow-shape.js";
|
|
17
|
+
export { kindNoun, STEP_KINDS, stepKindOf, stepShapes, type KindNoun, type StepCheck, type StepKind, type StepKindKey, type StepShapes, type WorkflowFinding } from "./workflows/steps.js";
|
|
18
|
+
export { actStep, keyFields } from "./workflows/step-act.js";
|
|
19
|
+
export { agentStep } from "./workflows/step-agent.js";
|
|
20
|
+
export { classifyAsks, classifyStep, classifyWords, floorLabel, linksIn, type FloorReading } from "./workflows/step-classify.js";
|
|
21
|
+
export { actsMaking, generateStep } from "./workflows/step-generate.js";
|
|
22
|
+
export { datesIn, generateWants, windowDays, type GenerateReading, type GenerateWants, type WantedRecord } from "./workflows/generate.js";
|
|
23
|
+
export { DEFAULT_GENERATE_KEY, MOST_GENERATED, MOST_WINDOW_DAYS } from "./workflows/generate-words.js";
|
|
24
|
+
export { afterMs, afterWords, archiveStep } from "./workflows/step-archive.js";
|
|
25
|
+
export { followsFindings, keeps, policiesOf, policyApplies, policyInstruction, type WorkflowPolicy } from "./workflows/policies.js";
|
|
26
|
+
export { workflowWorldOfApp, workflowWorldOfDocument, type WorkflowConnection, type WorkflowWorld } from "./workflows/world.js";
|
|
27
|
+
export { WorkflowSpec, WorkflowStepSpec, WorkflowTriggerSpec, WorkflowsSpec } from "./document/workflow-spec.js";
|
|
28
|
+
export { declaredWorkflows, DREAMING, dreamingWorkflow, resolveWorkflow, workflowAuthor, workflowReach, workflowsOf, type ResolvedWorkflow } from "./workflows/resolve.js";
|
|
29
|
+
export { scheduleOf, scheduleOfCron, scheduleOfWords, scheduleWords, SCHEDULE_WORDS, type Schedule } from "./workflows/schedule.js";
|
|
30
|
+
export { nextOf, nextRunAt } from "./workflows/next.js";
|
|
31
|
+
export { triggerWords, workflowWords } from "./workflows/words.js";
|
|
32
|
+
export { triggeredBy, type FiredTrigger, type WorkflowCommit } from "./workflows/triggered.js";
|
|
33
|
+
export { documentWorkflowFindings, workflowFindings, workflowFindingsOf } from "./workflows/findings.js";
|
|
34
|
+
export { keyedId, recordsOver, workflowKey, workflowSpecHash, workflowValue } from "./workflows/values.js";
|
|
35
|
+
//# sourceMappingURL=workflows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzQ,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3L,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjI,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC1I,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACvG,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpI,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChI,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3K,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACpI,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export { MOST_STEPS, MOST_WORKFLOWS } from "./workflow-shape.js";
|
|
2
|
+
export { kindNoun, STEP_KINDS, stepKindOf, stepShapes } from "./workflows/steps.js";
|
|
3
|
+
export { actStep, keyFields } from "./workflows/step-act.js";
|
|
4
|
+
export { agentStep } from "./workflows/step-agent.js";
|
|
5
|
+
export { classifyAsks, classifyStep, classifyWords, floorLabel, linksIn } from "./workflows/step-classify.js";
|
|
6
|
+
export { actsMaking, generateStep } from "./workflows/step-generate.js";
|
|
7
|
+
export { datesIn, generateWants, windowDays } from "./workflows/generate.js";
|
|
8
|
+
export { DEFAULT_GENERATE_KEY, MOST_GENERATED, MOST_WINDOW_DAYS } from "./workflows/generate-words.js";
|
|
9
|
+
export { afterMs, afterWords, archiveStep } from "./workflows/step-archive.js";
|
|
10
|
+
export { followsFindings, keeps, policiesOf, policyApplies, policyInstruction } from "./workflows/policies.js";
|
|
11
|
+
export { workflowWorldOfApp, workflowWorldOfDocument } from "./workflows/world.js";
|
|
12
|
+
export { WorkflowSpec, WorkflowStepSpec, WorkflowTriggerSpec, WorkflowsSpec } from "./document/workflow-spec.js";
|
|
13
|
+
export { declaredWorkflows, DREAMING, dreamingWorkflow, resolveWorkflow, workflowAuthor, workflowReach, workflowsOf } from "./workflows/resolve.js";
|
|
14
|
+
export { scheduleOf, scheduleOfCron, scheduleOfWords, scheduleWords, SCHEDULE_WORDS } from "./workflows/schedule.js";
|
|
15
|
+
export { nextOf, nextRunAt } from "./workflows/next.js";
|
|
16
|
+
export { triggerWords, workflowWords } from "./workflows/words.js";
|
|
17
|
+
export { triggeredBy } from "./workflows/triggered.js";
|
|
18
|
+
export { documentWorkflowFindings, workflowFindings, workflowFindingsOf } from "./workflows/findings.js";
|
|
19
|
+
export { keyedId, recordsOver, workflowKey, workflowSpecHash, workflowValue } from "./workflows/values.js";
|
|
20
|
+
//# sourceMappingURL=workflows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAyG,MAAM,sBAAsB,CAAC;AAC3L,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAqB,MAAM,8BAA8B,CAAC;AACjI,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAA+D,MAAM,yBAAyB,CAAC;AAC1I,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACvG,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAuB,MAAM,yBAAyB,CAAC;AACpI,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAA+C,MAAM,sBAAsB,CAAC;AAChI,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAyB,MAAM,wBAAwB,CAAC;AAC3K,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAiB,MAAM,yBAAyB,CAAC;AACpI,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,WAAW,EAA0C,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graview/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.63",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -89,10 +89,18 @@
|
|
|
89
89
|
"types": "./dist/jobs.d.ts",
|
|
90
90
|
"default": "./dist/jobs.js"
|
|
91
91
|
},
|
|
92
|
+
"./workflows": {
|
|
93
|
+
"types": "./dist/workflows.d.ts",
|
|
94
|
+
"default": "./dist/workflows.js"
|
|
95
|
+
},
|
|
92
96
|
"./friction": {
|
|
93
97
|
"types": "./dist/friction.d.ts",
|
|
94
98
|
"default": "./dist/friction.js"
|
|
95
99
|
},
|
|
100
|
+
"./css": {
|
|
101
|
+
"types": "./dist/css.d.ts",
|
|
102
|
+
"default": "./dist/css.js"
|
|
103
|
+
},
|
|
96
104
|
"./learn": {
|
|
97
105
|
"types": "./dist/learn.d.ts",
|
|
98
106
|
"default": "./dist/learn.js"
|
|
@@ -101,6 +109,10 @@
|
|
|
101
109
|
"types": "./dist/compose.d.ts",
|
|
102
110
|
"default": "./dist/compose.js"
|
|
103
111
|
},
|
|
112
|
+
"./traits": {
|
|
113
|
+
"types": "./dist/trait-vocabulary.d.ts",
|
|
114
|
+
"default": "./dist/trait-vocabulary.js"
|
|
115
|
+
},
|
|
104
116
|
"./subscriptions": {
|
|
105
117
|
"types": "./dist/subscriptions.d.ts",
|
|
106
118
|
"default": "./dist/subscriptions.js"
|
|
@@ -216,8 +228,12 @@
|
|
|
216
228
|
"./src/field-sight.ts",
|
|
217
229
|
"./dist/publishing.js",
|
|
218
230
|
"./src/publishing.ts",
|
|
231
|
+
"./dist/tidying.js",
|
|
232
|
+
"./src/tidying.ts",
|
|
219
233
|
"./dist/typing.js",
|
|
220
|
-
"./src/typing.ts"
|
|
234
|
+
"./src/typing.ts",
|
|
235
|
+
"./dist/workflows/findings.js",
|
|
236
|
+
"./src/workflows/findings.ts"
|
|
221
237
|
],
|
|
222
238
|
"repository": {
|
|
223
239
|
"type": "git",
|