wingfoil 0.2.1 → 0.3.0
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 +88 -42
- package/dist/agent/discovery.d.ts +72 -0
- package/dist/agent/discovery.d.ts.map +1 -0
- package/dist/agent/discovery.js +210 -0
- package/dist/agent/discovery.js.map +1 -0
- package/dist/agent/execute.d.ts +206 -0
- package/dist/agent/execute.d.ts.map +1 -0
- package/dist/agent/execute.js +581 -0
- package/dist/agent/execute.js.map +1 -0
- package/dist/agent/index.d.ts +23 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +85 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/launch.d.ts +133 -0
- package/dist/agent/launch.d.ts.map +1 -0
- package/dist/agent/launch.js +380 -0
- package/dist/agent/launch.js.map +1 -0
- package/dist/agent/manifest.d.ts +30 -0
- package/dist/agent/manifest.d.ts.map +1 -0
- package/dist/agent/manifest.js +93 -0
- package/dist/agent/manifest.js.map +1 -0
- package/dist/agent/placeholders.d.ts +49 -0
- package/dist/agent/placeholders.d.ts.map +1 -0
- package/dist/agent/placeholders.js +177 -0
- package/dist/agent/placeholders.js.map +1 -0
- package/dist/agent/run-log.d.ts +254 -0
- package/dist/agent/run-log.d.ts.map +1 -0
- package/dist/agent/run-log.js +612 -0
- package/dist/agent/run-log.js.map +1 -0
- package/dist/agent/schema.d.ts +100 -0
- package/dist/agent/schema.d.ts.map +1 -0
- package/dist/agent/schema.js +89 -0
- package/dist/agent/schema.js.map +1 -0
- package/dist/agent/step.d.ts +41 -0
- package/dist/agent/step.d.ts.map +1 -0
- package/dist/agent/step.js +95 -0
- package/dist/agent/step.js.map +1 -0
- package/dist/build-info.json +4 -0
- package/dist/cli/error.d.ts +11 -2
- package/dist/cli/error.d.ts.map +1 -1
- package/dist/cli/error.js +27 -6
- package/dist/cli/error.js.map +1 -1
- package/dist/cli/exit.d.ts +33 -3
- package/dist/cli/exit.d.ts.map +1 -1
- package/dist/cli/exit.js +54 -3
- package/dist/cli/exit.js.map +1 -1
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +3 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init-command.d.ts.map +1 -1
- package/dist/cli/init-command.js +6 -3
- package/dist/cli/init-command.js.map +1 -1
- package/dist/cli/mcp-command.d.ts +13 -4
- package/dist/cli/mcp-command.d.ts.map +1 -1
- package/dist/cli/mcp-command.js +25 -8
- package/dist/cli/mcp-command.js.map +1 -1
- package/dist/cli/output.d.ts +12 -4
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +15 -4
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/program.d.ts +1 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +270 -60
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/registrar.d.ts +16 -7
- package/dist/cli/registrar.d.ts.map +1 -1
- package/dist/cli/registrar.js +71 -6
- package/dist/cli/registrar.js.map +1 -1
- package/dist/cli/suggest.d.ts +20 -0
- package/dist/cli/suggest.d.ts.map +1 -0
- package/dist/cli/suggest.js +49 -0
- package/dist/cli/suggest.js.map +1 -0
- package/dist/cli/warning.d.ts +26 -0
- package/dist/cli/warning.d.ts.map +1 -0
- package/dist/cli/warning.js +66 -0
- package/dist/cli/warning.js.map +1 -0
- package/dist/cli.js +11 -2
- package/dist/cli.js.map +1 -1
- package/dist/core/agent-execute.d.ts +44 -0
- package/dist/core/agent-execute.d.ts.map +1 -0
- package/dist/core/agent-execute.js +71 -0
- package/dist/core/agent-execute.js.map +1 -0
- package/dist/core/agent-list.d.ts +95 -0
- package/dist/core/agent-list.d.ts.map +1 -0
- package/dist/core/agent-list.js +207 -0
- package/dist/core/agent-list.js.map +1 -0
- package/dist/core/agent-show.d.ts +44 -0
- package/dist/core/agent-show.d.ts.map +1 -0
- package/dist/core/agent-show.js +188 -0
- package/dist/core/agent-show.js.map +1 -0
- package/dist/core/approval-authority.d.ts +17 -14
- package/dist/core/approval-authority.d.ts.map +1 -1
- package/dist/core/approval-authority.js +9 -9
- package/dist/core/approval-authority.js.map +1 -1
- package/dist/core/builtin-asset.d.ts +18 -15
- package/dist/core/builtin-asset.d.ts.map +1 -1
- package/dist/core/builtin-asset.js +17 -14
- package/dist/core/builtin-asset.js.map +1 -1
- package/dist/core/builtin-integrity.d.ts +12 -2
- package/dist/core/builtin-integrity.d.ts.map +1 -1
- package/dist/core/builtin-integrity.js +85 -9
- package/dist/core/builtin-integrity.js.map +1 -1
- package/dist/core/confinement.d.ts +3 -1
- package/dist/core/confinement.d.ts.map +1 -1
- package/dist/core/confinement.js +7 -4
- package/dist/core/confinement.js.map +1 -1
- package/dist/core/context.d.ts +150 -98
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +602 -66
- package/dist/core/context.js.map +1 -1
- package/dist/core/directive-assign.d.ts +33 -7
- package/dist/core/directive-assign.d.ts.map +1 -1
- package/dist/core/directive-assign.js +67 -27
- package/dist/core/directive-assign.js.map +1 -1
- package/dist/core/directive-scope.d.ts +36 -0
- package/dist/core/directive-scope.d.ts.map +1 -0
- package/dist/core/directive-scope.js +34 -0
- package/dist/core/directive-scope.js.map +1 -0
- package/dist/core/directives-list.d.ts +13 -3
- package/dist/core/directives-list.d.ts.map +1 -1
- package/dist/core/directives-list.js +18 -6
- package/dist/core/directives-list.js.map +1 -1
- package/dist/core/dry-run.d.ts +33 -0
- package/dist/core/dry-run.d.ts.map +1 -0
- package/dist/core/dry-run.js +45 -0
- package/dist/core/dry-run.js.map +1 -0
- package/dist/core/element-ref.d.ts +23 -0
- package/dist/core/element-ref.d.ts.map +1 -0
- package/dist/core/element-ref.js +24 -0
- package/dist/core/element-ref.js.map +1 -0
- package/dist/core/error-details.d.ts +20 -0
- package/dist/core/error-details.d.ts.map +1 -0
- package/dist/core/error-details.js +65 -0
- package/dist/core/error-details.js.map +1 -0
- package/dist/core/exit-code.js +6 -6
- package/dist/core/git-identity.d.ts +46 -11
- package/dist/core/git-identity.d.ts.map +1 -1
- package/dist/core/git-identity.js +140 -27
- package/dist/core/git-identity.js.map +1 -1
- package/dist/core/index.d.ts +189 -14
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1241 -238
- package/dist/core/index.js.map +1 -1
- package/dist/core/init.d.ts +50 -8
- package/dist/core/init.d.ts.map +1 -1
- package/dist/core/init.js +139 -27
- package/dist/core/init.js.map +1 -1
- package/dist/core/loaders.d.ts +170 -14
- package/dist/core/loaders.d.ts.map +1 -1
- package/dist/core/loaders.js +570 -89
- package/dist/core/loaders.js.map +1 -1
- package/dist/core/memory-add-link.d.ts +28 -0
- package/dist/core/memory-add-link.d.ts.map +1 -0
- package/dist/core/memory-add-link.js +67 -0
- package/dist/core/memory-add-link.js.map +1 -0
- package/dist/core/memory-add-type.d.ts +25 -1
- package/dist/core/memory-add-type.d.ts.map +1 -1
- package/dist/core/memory-add-type.js +59 -1
- package/dist/core/memory-add-type.js.map +1 -1
- package/dist/core/memory-amend.d.ts +80 -0
- package/dist/core/memory-amend.d.ts.map +1 -0
- package/dist/core/memory-amend.js +160 -0
- package/dist/core/memory-amend.js.map +1 -0
- package/dist/core/memory-supersede.d.ts +28 -0
- package/dist/core/memory-supersede.d.ts.map +1 -0
- package/dist/core/memory-supersede.js +79 -0
- package/dist/core/memory-supersede.js.map +1 -0
- package/dist/core/memory-transition.d.ts +190 -30
- package/dist/core/memory-transition.d.ts.map +1 -1
- package/dist/core/memory-transition.js +480 -59
- package/dist/core/memory-transition.js.map +1 -1
- package/dist/core/registry.d.ts +147 -23
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/registry.js +50 -0
- package/dist/core/registry.js.map +1 -1
- package/dist/core/relevance.d.ts +74 -12
- package/dist/core/relevance.d.ts.map +1 -1
- package/dist/core/relevance.js +45 -27
- package/dist/core/relevance.js.map +1 -1
- package/dist/core/require-reason.d.ts.map +1 -1
- package/dist/core/require-reason.js +6 -5
- package/dist/core/require-reason.js.map +1 -1
- package/dist/core/required-fields.d.ts +28 -0
- package/dist/core/required-fields.d.ts.map +1 -0
- package/dist/core/required-fields.js +60 -0
- package/dist/core/required-fields.js.map +1 -0
- package/dist/core/revision.d.ts +82 -0
- package/dist/core/revision.d.ts.map +1 -0
- package/dist/core/revision.js +144 -0
- package/dist/core/revision.js.map +1 -0
- package/dist/core/types.d.ts +28 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +12 -3
- package/dist/core/types.js.map +1 -1
- package/dist/core/workflow-core-checks.d.ts +34 -0
- package/dist/core/workflow-core-checks.d.ts.map +1 -0
- package/dist/core/workflow-core-checks.js +403 -0
- package/dist/core/workflow-core-checks.js.map +1 -0
- package/dist/core/workflow-create-remove.d.ts +65 -0
- package/dist/core/workflow-create-remove.d.ts.map +1 -0
- package/dist/core/workflow-create-remove.js +277 -0
- package/dist/core/workflow-create-remove.js.map +1 -0
- package/dist/core/workflow-deduction.d.ts +48 -0
- package/dist/core/workflow-deduction.d.ts.map +1 -0
- package/dist/core/workflow-deduction.js +523 -0
- package/dist/core/workflow-deduction.js.map +1 -0
- package/dist/core/workflow-diagnostics.d.ts +83 -0
- package/dist/core/workflow-diagnostics.d.ts.map +1 -0
- package/dist/core/workflow-diagnostics.js +375 -0
- package/dist/core/workflow-diagnostics.js.map +1 -0
- package/dist/core/workflow-exit-state.d.ts +125 -0
- package/dist/core/workflow-exit-state.d.ts.map +1 -0
- package/dist/core/workflow-exit-state.js +243 -0
- package/dist/core/workflow-exit-state.js.map +1 -0
- package/dist/core/workflow-finalize.d.ts +37 -0
- package/dist/core/workflow-finalize.d.ts.map +1 -0
- package/dist/core/workflow-finalize.js +153 -0
- package/dist/core/workflow-finalize.js.map +1 -0
- package/dist/core/workflow-list-show.d.ts +176 -0
- package/dist/core/workflow-list-show.d.ts.map +1 -0
- package/dist/core/workflow-list-show.js +268 -0
- package/dist/core/workflow-list-show.js.map +1 -0
- package/dist/core/workflow-next.d.ts +268 -0
- package/dist/core/workflow-next.d.ts.map +1 -0
- package/dist/core/workflow-next.js +503 -0
- package/dist/core/workflow-next.js.map +1 -0
- package/dist/core/workflow-registry.d.ts +52 -0
- package/dist/core/workflow-registry.d.ts.map +1 -0
- package/dist/core/workflow-registry.js +158 -0
- package/dist/core/workflow-registry.js.map +1 -0
- package/dist/core/workflow-start-end.d.ts +71 -0
- package/dist/core/workflow-start-end.d.ts.map +1 -0
- package/dist/core/workflow-start-end.js +298 -0
- package/dist/core/workflow-start-end.js.map +1 -0
- package/dist/core/workflow-status.d.ts +83 -0
- package/dist/core/workflow-status.d.ts.map +1 -0
- package/dist/core/workflow-status.js +125 -0
- package/dist/core/workflow-status.js.map +1 -0
- package/dist/core/write-guard.d.ts +51 -8
- package/dist/core/write-guard.d.ts.map +1 -1
- package/dist/core/write-guard.js +139 -9
- package/dist/core/write-guard.js.map +1 -1
- package/dist/directives/index.d.ts +3 -2
- package/dist/directives/index.d.ts.map +1 -1
- package/dist/directives/index.js +5 -3
- package/dist/directives/index.js.map +1 -1
- package/dist/directives/schema.d.ts +35 -30
- package/dist/directives/schema.d.ts.map +1 -1
- package/dist/directives/schema.js +36 -30
- package/dist/directives/schema.js.map +1 -1
- package/dist/directives/version.d.ts +28 -0
- package/dist/directives/version.d.ts.map +1 -0
- package/dist/directives/version.js +51 -0
- package/dist/directives/version.js.map +1 -0
- package/dist/dna/edit.d.ts +7 -6
- package/dist/dna/edit.d.ts.map +1 -1
- package/dist/dna/edit.js +96 -41
- package/dist/dna/edit.js.map +1 -1
- package/dist/dna/mutate.js +18 -3
- package/dist/dna/mutate.js.map +1 -1
- package/dist/dna/path.d.ts +2 -2
- package/dist/dna/roles.d.ts +1 -1
- package/dist/dna/schema.d.ts +61 -3
- package/dist/dna/schema.d.ts.map +1 -1
- package/dist/dna/schema.js +121 -6
- package/dist/dna/schema.js.map +1 -1
- package/dist/mcp/dna-resource.d.ts.map +1 -1
- package/dist/mcp/dna-resource.js +4 -4
- package/dist/mcp/dna-resource.js.map +1 -1
- package/dist/mcp/index.d.ts +9 -5
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +13 -2
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/memory-resource.d.ts.map +1 -1
- package/dist/mcp/memory-resource.js +30 -19
- package/dist/mcp/memory-resource.js.map +1 -1
- package/dist/mcp/prompt.d.ts +61 -24
- package/dist/mcp/prompt.d.ts.map +1 -1
- package/dist/mcp/prompt.js +176 -47
- package/dist/mcp/prompt.js.map +1 -1
- package/dist/mcp/read-only.d.ts +39 -0
- package/dist/mcp/read-only.d.ts.map +1 -1
- package/dist/mcp/read-only.js +61 -0
- package/dist/mcp/read-only.js.map +1 -1
- package/dist/mcp/registrar.d.ts +10 -0
- package/dist/mcp/registrar.d.ts.map +1 -1
- package/dist/mcp/registrar.js +48 -12
- package/dist/mcp/registrar.js.map +1 -1
- package/dist/mcp/server.d.ts +21 -14
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +41 -15
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session-resource.d.ts +13 -0
- package/dist/mcp/session-resource.d.ts.map +1 -0
- package/dist/mcp/session-resource.js +65 -0
- package/dist/mcp/session-resource.js.map +1 -0
- package/dist/mcp/workflow-resource.d.ts +18 -0
- package/dist/mcp/workflow-resource.d.ts.map +1 -1
- package/dist/mcp/workflow-resource.js +37 -8
- package/dist/mcp/workflow-resource.js.map +1 -1
- package/dist/memory/add.d.ts +160 -17
- package/dist/memory/add.d.ts.map +1 -1
- package/dist/memory/add.js +361 -51
- package/dist/memory/add.js.map +1 -1
- package/dist/memory/audit.d.ts +165 -32
- package/dist/memory/audit.d.ts.map +1 -1
- package/dist/memory/audit.js +267 -97
- package/dist/memory/audit.js.map +1 -1
- package/dist/memory/commit-message.d.ts +60 -38
- package/dist/memory/commit-message.d.ts.map +1 -1
- package/dist/memory/commit-message.js +167 -21
- package/dist/memory/commit-message.js.map +1 -1
- package/dist/memory/entry.d.ts.map +1 -1
- package/dist/memory/entry.js +1 -2
- package/dist/memory/entry.js.map +1 -1
- package/dist/memory/frontmatter-edit.d.ts +16 -4
- package/dist/memory/frontmatter-edit.d.ts.map +1 -1
- package/dist/memory/frontmatter-edit.js +13 -1
- package/dist/memory/frontmatter-edit.js.map +1 -1
- package/dist/memory/git-log.d.ts +18 -6
- package/dist/memory/git-log.d.ts.map +1 -1
- package/dist/memory/git-log.js +40 -13
- package/dist/memory/git-log.js.map +1 -1
- package/dist/memory/history.d.ts +74 -13
- package/dist/memory/history.d.ts.map +1 -1
- package/dist/memory/history.js +129 -45
- package/dist/memory/history.js.map +1 -1
- package/dist/memory/index.d.ts +13 -11
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +38 -3
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/query.d.ts +161 -19
- package/dist/memory/query.d.ts.map +1 -1
- package/dist/memory/query.js +435 -55
- package/dist/memory/query.js.map +1 -1
- package/dist/memory/schema.d.ts +52 -3
- package/dist/memory/schema.d.ts.map +1 -1
- package/dist/memory/schema.js +132 -8
- package/dist/memory/schema.js.map +1 -1
- package/dist/memory/state-machine.d.ts +65 -10
- package/dist/memory/state-machine.d.ts.map +1 -1
- package/dist/memory/state-machine.js +136 -48
- package/dist/memory/state-machine.js.map +1 -1
- package/dist/memory/submit.d.ts +52 -3
- package/dist/memory/submit.d.ts.map +1 -1
- package/dist/memory/submit.js +118 -11
- package/dist/memory/submit.js.map +1 -1
- package/dist/storage/build-stamp.d.ts +18 -0
- package/dist/storage/build-stamp.d.ts.map +1 -0
- package/dist/storage/build-stamp.js +68 -0
- package/dist/storage/build-stamp.js.map +1 -0
- package/dist/storage/builtin-adapters.d.ts +32 -0
- package/dist/storage/builtin-adapters.d.ts.map +1 -0
- package/dist/storage/builtin-adapters.js +100 -0
- package/dist/storage/builtin-adapters.js.map +1 -0
- package/dist/storage/builtin-directives.d.ts +0 -29
- package/dist/storage/builtin-directives.d.ts.map +1 -1
- package/dist/storage/builtin-directives.js +9 -4
- package/dist/storage/builtin-directives.js.map +1 -1
- package/dist/storage/commit.d.ts +310 -3
- package/dist/storage/commit.d.ts.map +1 -1
- package/dist/storage/commit.js +807 -33
- package/dist/storage/commit.js.map +1 -1
- package/dist/storage/document.d.ts +6 -0
- package/dist/storage/document.d.ts.map +1 -1
- package/dist/storage/document.js +10 -1
- package/dist/storage/document.js.map +1 -1
- package/dist/storage/dry-run.d.ts +65 -0
- package/dist/storage/dry-run.d.ts.map +1 -0
- package/dist/storage/dry-run.js +150 -0
- package/dist/storage/dry-run.js.map +1 -0
- package/dist/storage/errors.d.ts +26 -0
- package/dist/storage/errors.d.ts.map +1 -1
- package/dist/storage/errors.js +27 -1
- package/dist/storage/errors.js.map +1 -1
- package/dist/storage/frontmatter.d.ts +1 -1
- package/dist/storage/frontmatter.js +1 -1
- package/dist/storage/git-read.d.ts +64 -0
- package/dist/storage/git-read.d.ts.map +1 -0
- package/dist/storage/git-read.js +107 -0
- package/dist/storage/git-read.js.map +1 -0
- package/dist/storage/index.d.ts +13 -5
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +39 -2
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/layout.d.ts +2 -2
- package/dist/storage/layout.d.ts.map +1 -1
- package/dist/storage/layout.js +2 -7
- package/dist/storage/layout.js.map +1 -1
- package/dist/storage/memory-path.d.ts +18 -5
- package/dist/storage/memory-path.d.ts.map +1 -1
- package/dist/storage/memory-path.js +41 -5
- package/dist/storage/memory-path.js.map +1 -1
- package/dist/storage/snapshot.js +1 -1
- package/dist/storage/templates.d.ts +33 -6
- package/dist/storage/templates.d.ts.map +1 -1
- package/dist/storage/templates.js +182 -17
- package/dist/storage/templates.js.map +1 -1
- package/dist/validation/config-version.d.ts +19 -0
- package/dist/validation/config-version.d.ts.map +1 -0
- package/dist/validation/config-version.js +53 -0
- package/dist/validation/config-version.js.map +1 -0
- package/dist/validation/diagnostic.d.ts +40 -0
- package/dist/validation/diagnostic.d.ts.map +1 -0
- package/dist/validation/diagnostic.js +41 -0
- package/dist/validation/diagnostic.js.map +1 -0
- package/dist/validation/format.d.ts +74 -0
- package/dist/validation/format.d.ts.map +1 -0
- package/dist/validation/format.js +104 -0
- package/dist/validation/format.js.map +1 -0
- package/dist/validation/id.d.ts +40 -0
- package/dist/validation/id.d.ts.map +1 -1
- package/dist/validation/id.js +99 -12
- package/dist/validation/id.js.map +1 -1
- package/dist/validation/identity.d.ts +40 -0
- package/dist/validation/identity.d.ts.map +1 -0
- package/dist/validation/identity.js +78 -0
- package/dist/validation/identity.js.map +1 -0
- package/dist/validation/index.d.ts +9 -3
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +33 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/secret-scan.d.ts +10 -7
- package/dist/validation/secret-scan.d.ts.map +1 -1
- package/dist/validation/secret-scan.js +39 -16
- package/dist/validation/secret-scan.js.map +1 -1
- package/dist/validation/warning.d.ts +30 -16
- package/dist/validation/warning.d.ts.map +1 -1
- package/dist/validation/warning.js +74 -7
- package/dist/validation/warning.js.map +1 -1
- package/dist/workflow/bindings.d.ts +152 -0
- package/dist/workflow/bindings.d.ts.map +1 -0
- package/dist/workflow/bindings.js +249 -0
- package/dist/workflow/bindings.js.map +1 -0
- package/dist/workflow/create.d.ts +13 -0
- package/dist/workflow/create.d.ts.map +1 -0
- package/dist/workflow/create.js +41 -0
- package/dist/workflow/create.js.map +1 -0
- package/dist/workflow/deduce.d.ts +400 -0
- package/dist/workflow/deduce.d.ts.map +1 -0
- package/dist/workflow/deduce.js +1109 -0
- package/dist/workflow/deduce.js.map +1 -0
- package/dist/workflow/manifest-edit.d.ts +19 -0
- package/dist/workflow/manifest-edit.d.ts.map +1 -0
- package/dist/workflow/manifest-edit.js +124 -0
- package/dist/workflow/manifest-edit.js.map +1 -0
- package/dist/workflow/schema.d.ts +158 -19
- package/dist/workflow/schema.d.ts.map +1 -1
- package/dist/workflow/schema.js +190 -16
- package/dist/workflow/schema.js.map +1 -1
- package/package.json +37 -13
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BindingsYaml = exports.ActionBinding = exports.CheckBinding = exports.BINDINGS_FILE = void 0;
|
|
4
|
+
exports.collectionEntryKey = collectionEntryKey;
|
|
5
|
+
exports.collectionKeyIssues = collectionKeyIssues;
|
|
6
|
+
exports.tokenName = tokenName;
|
|
7
|
+
exports.memoryAddType = memoryAddType;
|
|
8
|
+
exports.typedStateType = typedStateType;
|
|
9
|
+
exports.isBuiltinToken = isBuiltinToken;
|
|
10
|
+
exports.resolveToken = resolveToken;
|
|
11
|
+
exports.isWholeInterpolation = isWholeInterpolation;
|
|
12
|
+
exports.runsAgentExecute = runsAgentExecute;
|
|
13
|
+
/**
|
|
14
|
+
* Layer 3 — the token-binding file `.wingfoil/workflows/bindings.yaml` (spec-003-workflows-yaml-schema
|
|
15
|
+
* § "Layer 3", `dl-090` Q1 (a), Q2 (c), Q3 (a), Q4, Q5 (c), Q6), and the **built-in** binding table
|
|
16
|
+
* (spec-003 § "Action expressions"). Every `actions:` and `checks:` token of a workflow resolves through
|
|
17
|
+
* one of the two: a token WingFoil implements itself is built in and may not be rebound; every other
|
|
18
|
+
* token is bound by the project here, or is unbound (`W_WORKFLOW_UNBOUND_TOKEN`, a warning in v0.3).
|
|
19
|
+
*
|
|
20
|
+
* Like `./schema.ts`, this module holds the **structural** (Zod) shape plus the pure readings the
|
|
21
|
+
* loader's checks and later commands share ({@link tokenName}, {@link isBuiltinToken},
|
|
22
|
+
* {@link resolveToken}, {@link isWholeInterpolation}, {@link runsAgentExecute}). The loader rows
|
|
23
|
+
* themselves are run by `src/core/loaders.ts` with `src/core/workflow-diagnostics.ts`
|
|
24
|
+
* (spec-009-validation-strategy §1). Every object node is `.passthrough()` per spec-009 §2, except
|
|
25
|
+
* where spec-003's shape is strict.
|
|
26
|
+
*
|
|
27
|
+
* Nothing here runs a binding: in v0.3 the loader validates and `workflow show` / `workflow next`
|
|
28
|
+
* display (spec-003 § "What v0.3 does with these fields"); the v1.0 engine executes (P4.10, P4.12).
|
|
29
|
+
*/
|
|
30
|
+
const zod_1 = require("zod");
|
|
31
|
+
const format_1 = require("../validation/format");
|
|
32
|
+
const id_1 = require("../validation/id");
|
|
33
|
+
/** The bindings file, relative to `.wingfoil/` — the `file` of its diagnostics (spec-003 Layer 3). */
|
|
34
|
+
exports.BINDINGS_FILE = 'workflows/bindings.yaml';
|
|
35
|
+
/** spec-009's ID characters, anchored: what a collection entry's key must match (spec-003 § "Collections"). */
|
|
36
|
+
const ID_RE = new RegExp(`^[${id_1.ID_CHAR_CLASS}]+$`);
|
|
37
|
+
/** An argument vector: the first element is the program; never passed to a shell (`dl-090` Q3 (a)). */
|
|
38
|
+
const Argv = zod_1.z.array(zod_1.z.string()).min(1);
|
|
39
|
+
/** `args`: one declared pattern per interpolated placeholder; each must compile as a regular expression. */
|
|
40
|
+
const Args = zod_1.z.record(zod_1.z.string(), zod_1.z.string().superRefine((pattern, ctx) => {
|
|
41
|
+
try {
|
|
42
|
+
new RegExp(pattern);
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
ctx.addIssue({ code: 'custom', message: `invalid argument pattern "${pattern}": ${err.message}` });
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
48
|
+
/** A check token's binding: a command and a severity (`dl-090` Q4; default `reject`). */
|
|
49
|
+
exports.CheckBinding = zod_1.z
|
|
50
|
+
.object({
|
|
51
|
+
run: Argv,
|
|
52
|
+
severity: zod_1.z.enum(['warn', 'reject']).default('reject'),
|
|
53
|
+
args: Args.optional(),
|
|
54
|
+
})
|
|
55
|
+
.passthrough();
|
|
56
|
+
/** An action token's binding: exactly one of `run` (a command) or `manual: true` (`dl-090` Q2 (c)). */
|
|
57
|
+
exports.ActionBinding = zod_1.z
|
|
58
|
+
.object({
|
|
59
|
+
run: Argv.optional(),
|
|
60
|
+
manual: zod_1.z.literal(true).optional(),
|
|
61
|
+
args: Args.optional(),
|
|
62
|
+
})
|
|
63
|
+
.passthrough()
|
|
64
|
+
.superRefine((binding, ctx) => {
|
|
65
|
+
if ((binding.run === undefined) === (binding.manual === undefined)) {
|
|
66
|
+
ctx.addIssue({ code: 'custom', message: 'an action binding declares exactly one of run or manual' });
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
/** One collection entry: a scalar, or a map keyed by its `id` (else its `name`) field. */
|
|
70
|
+
const CollectionEntry = zod_1.z.union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean(), zod_1.z.record(zod_1.z.string(), zod_1.z.unknown())]);
|
|
71
|
+
/**
|
|
72
|
+
* The key of one collection entry (spec-003 § "Collections"): the entry itself for a scalar, the
|
|
73
|
+
* entry's `id` field, else its `name` field, for a map. `null` when a map entry has neither as a
|
|
74
|
+
* scalar.
|
|
75
|
+
*/
|
|
76
|
+
function collectionEntryKey(entry) {
|
|
77
|
+
if (typeof entry !== 'object' || entry === null)
|
|
78
|
+
return String(entry);
|
|
79
|
+
const key = entry['id'] ?? entry['name'];
|
|
80
|
+
return typeof key === 'string' || typeof key === 'number' ? String(key) : null;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* A named collection: a list of entries, in declared order. Its key rules (a key per entry, unique,
|
|
84
|
+
* in spec-009's ID characters) are a loader row, not part of this structural pass
|
|
85
|
+
* ({@link collectionKeyIssues}; approver ruling D1 (a), 2026-10-05), so a bad key leaves the rest of
|
|
86
|
+
* the file decided.
|
|
87
|
+
*/
|
|
88
|
+
const Collection = zod_1.z.array(CollectionEntry);
|
|
89
|
+
/**
|
|
90
|
+
* The key problems of one collection (spec-003 § "Collections"), in entry order: a map entry with no
|
|
91
|
+
* `id` / `name`, a key outside spec-009's ID characters, a key already used by an earlier entry.
|
|
92
|
+
*/
|
|
93
|
+
function collectionKeyIssues(entries) {
|
|
94
|
+
const issues = [];
|
|
95
|
+
const seen = new Set();
|
|
96
|
+
entries.forEach((entry, index) => {
|
|
97
|
+
const key = collectionEntryKey(entry);
|
|
98
|
+
if (key === null) {
|
|
99
|
+
issues.push({ index, message: 'a collection entry map needs an id or name field' });
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (!ID_RE.test(key))
|
|
103
|
+
issues.push({ index, message: `collection key '${key}' is outside the ID characters [${id_1.ID_CHAR_CLASS}]` });
|
|
104
|
+
if (seen.has(key))
|
|
105
|
+
issues.push({ index, message: `duplicate collection key '${key}'` });
|
|
106
|
+
seen.add(key);
|
|
107
|
+
});
|
|
108
|
+
return issues;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Layer 3 — `.wingfoil/workflows/bindings.yaml`. Optional: an absent file is no bindings. A `dl-149` file
|
|
112
|
+
* kind (`dl-153` (A)): `format` is optional (absent = 1), and a newer one is refused by the loader before
|
|
113
|
+
* this structural pass.
|
|
114
|
+
*/
|
|
115
|
+
exports.BindingsYaml = zod_1.z
|
|
116
|
+
.object({
|
|
117
|
+
version: zod_1.z.number().positive().optional(),
|
|
118
|
+
format: (0, format_1.formatField)(format_1.BINDINGS_YAML_FORMAT),
|
|
119
|
+
checks: zod_1.z.record(zod_1.z.string(), exports.CheckBinding).optional(),
|
|
120
|
+
actions: zod_1.z.record(zod_1.z.string(), exports.ActionBinding).optional(),
|
|
121
|
+
collections: zod_1.z.record(zod_1.z.string(), Collection).optional(),
|
|
122
|
+
})
|
|
123
|
+
.passthrough();
|
|
124
|
+
/**
|
|
125
|
+
* The name of an action or check token: the text before its first `(` or `:`, trimmed
|
|
126
|
+
* (`memory.add(type: adr)` → `memory.add`; `tests.coverage(min: 80)` → `tests.coverage`;
|
|
127
|
+
* `frontmatter.required: [title]` → `frontmatter.required`). A prose check keeps its prose, which no
|
|
128
|
+
* binding key names, so it stays unbound.
|
|
129
|
+
*/
|
|
130
|
+
function tokenName(token) {
|
|
131
|
+
const cut = token.search(/[(:]/);
|
|
132
|
+
return (cut === -1 ? token : token.slice(0, cut)).trim();
|
|
133
|
+
}
|
|
134
|
+
/** The `type:` argument of a `memory.add(...)` token, or `null` (`memory.add(type: tech-spec)` → `tech-spec`). */
|
|
135
|
+
function memoryAddType(token) {
|
|
136
|
+
if (tokenName(token) !== 'memory.add')
|
|
137
|
+
return null;
|
|
138
|
+
const match = /\btype\s*:\s*["']?([^"',)\s]+)/.exec(token);
|
|
139
|
+
return match ? match[1] : null;
|
|
140
|
+
}
|
|
141
|
+
const MEMORY_VERB_TOKENS = {
|
|
142
|
+
'memory.add': 'add',
|
|
143
|
+
'memory.submit': 'submit',
|
|
144
|
+
'memory.approve': 'approve',
|
|
145
|
+
'memory.reject': 'reject',
|
|
146
|
+
'memory.deprecate': 'deprecate',
|
|
147
|
+
};
|
|
148
|
+
/** `<type>.set_state` / `<type>.sync_state` — `element` included, as the workflow's own element. */
|
|
149
|
+
const TYPED_STATE_RE = /^([a-z][a-z0-9-]*)\.(set_state|sync_state)$/;
|
|
150
|
+
/**
|
|
151
|
+
* The Memory type a typed state action names — the `T` of `<T>.set_state(…)` / `<T>.sync_state(…)` —
|
|
152
|
+
* or `null` for `element.set_state` / `element.sync_state` (the workflow's own element, not a type) and
|
|
153
|
+
* for any other token. The core check `E_WORKFLOW_ELEMENT_TYPE_UNKNOWN` (spec-003, `bug-282`) checks it
|
|
154
|
+
* against `memory.yaml`.
|
|
155
|
+
*/
|
|
156
|
+
function typedStateType(token) {
|
|
157
|
+
const typed = TYPED_STATE_RE.exec(tokenName(token));
|
|
158
|
+
return typed && typed[1] !== 'element' ? typed[1] : null;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Whether `name` (a {@link tokenName}) is a **built-in** token (spec-003's built-in table):
|
|
162
|
+
* `memory.add|submit|approve|reject|deprecate`, `element.set_state`, `<type>.set_state`,
|
|
163
|
+
* `<type>.sync_state`, `element.set_release`, `config.init` and every `agent.*`. A project may not
|
|
164
|
+
* rebind one (`E_BINDING_BUILTIN_TOKEN`).
|
|
165
|
+
*/
|
|
166
|
+
function isBuiltinToken(name) {
|
|
167
|
+
return (name in MEMORY_VERB_TOKENS ||
|
|
168
|
+
TYPED_STATE_RE.test(name) ||
|
|
169
|
+
name === 'element.set_release' ||
|
|
170
|
+
name === 'config.init' ||
|
|
171
|
+
name.startsWith('agent.'));
|
|
172
|
+
}
|
|
173
|
+
/** The built-in binding of an action token, or `null` when `name` is not built in. */
|
|
174
|
+
function builtinBinding(token, name) {
|
|
175
|
+
const verb = MEMORY_VERB_TOKENS[name];
|
|
176
|
+
if (verb !== undefined) {
|
|
177
|
+
const type = memoryAddType(token);
|
|
178
|
+
const argv = ['wingfoil', 'memory', verb, ...(verb === 'add' && type !== null ? ['--type', type] : [])];
|
|
179
|
+
return { kind: 'wingfoil', source: 'built-in', argv, expectedCommit: { type: verb === 'add' ? type : null, verbs: [verb] } };
|
|
180
|
+
}
|
|
181
|
+
const typed = TYPED_STATE_RE.exec(name);
|
|
182
|
+
if (typed) {
|
|
183
|
+
const type = typed[1] === 'element' ? null : typed[1];
|
|
184
|
+
const verbs = typed[2] === 'set_state' ? ['approve', 'finalize', 'start'] : ['sync'];
|
|
185
|
+
return { kind: 'manual', source: 'built-in', expectedCommit: { type, verbs } };
|
|
186
|
+
}
|
|
187
|
+
if (name === 'element.set_release')
|
|
188
|
+
return { kind: 'manual', source: 'built-in', expectedCommit: { type: null, verbs: ['assign'] } };
|
|
189
|
+
if (name === 'config.init')
|
|
190
|
+
return { kind: 'wingfoil', source: 'built-in', argv: ['wingfoil', 'init'] };
|
|
191
|
+
if (name.startsWith('agent.'))
|
|
192
|
+
return { kind: 'agent', source: 'built-in', argv: ['wingfoil', 'agent', 'execute'] };
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Resolve one token to its binding (spec-003 § "Action expressions" built-in table, Layer 3): an
|
|
197
|
+
* action resolves through the built-in table first, then `bindings.actions`; a check only through
|
|
198
|
+
* `bindings.checks` (no check is built in, and none may be bound to an agent). An unresolved token is
|
|
199
|
+
* `{ kind: 'unbound', source: 'none' }`. Pure and total: the same inputs give the same answer.
|
|
200
|
+
*
|
|
201
|
+
* @param token - The token as written in `actions:` / `checks:` / `awaits.evidence`, arguments included.
|
|
202
|
+
* @param role - Whether the token is an action or a check.
|
|
203
|
+
* @param bindings - The validated `bindings.yaml`, or `null` when the project has none.
|
|
204
|
+
*/
|
|
205
|
+
function resolveToken(token, role, bindings) {
|
|
206
|
+
const name = tokenName(token);
|
|
207
|
+
if (role === 'action') {
|
|
208
|
+
const builtin = builtinBinding(token, name);
|
|
209
|
+
if (builtin)
|
|
210
|
+
return builtin;
|
|
211
|
+
const bound = bindings?.actions?.[name];
|
|
212
|
+
if (bound)
|
|
213
|
+
return bound.manual === true ? { kind: 'manual', source: 'project' } : { kind: 'run', source: 'project', argv: bound.run };
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
const bound = bindings?.checks?.[name];
|
|
217
|
+
if (bound)
|
|
218
|
+
return { kind: 'run', source: 'project', argv: bound.run, severity: bound.severity };
|
|
219
|
+
}
|
|
220
|
+
return { kind: 'unbound', source: 'none' };
|
|
221
|
+
}
|
|
222
|
+
/** A `{…}` placeholder anywhere in a string. */
|
|
223
|
+
const PLACEHOLDER_RE = /\{[^{}]*\}/;
|
|
224
|
+
/** A string that is one whole placeholder and nothing else. */
|
|
225
|
+
const WHOLE_PLACEHOLDER_RE = /^\{[^{}]+\}$/;
|
|
226
|
+
/** Whether one `run` element interpolates only as a whole element (`dl-090` Q3 (a)). */
|
|
227
|
+
function isWholeInterpolation(element) {
|
|
228
|
+
return !PLACEHOLDER_RE.test(element) || WHOLE_PLACEHOLDER_RE.test(element);
|
|
229
|
+
}
|
|
230
|
+
/** The basename of a program path (`/usr/bin/wingfoil` → `wingfoil`; `dist/cli.js` → `cli.js`). */
|
|
231
|
+
function basename(program) {
|
|
232
|
+
return program.slice(program.lastIndexOf('/') + 1);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Whether an argument vector runs `wingfoil agent execute` (`E_BINDING_AGENT_CHECK`, `dl-090` Q6): an
|
|
236
|
+
* `agent`, `execute` pair after a `wingfoil` program — called directly, through `npx`, or as the
|
|
237
|
+
* built `cli.js`.
|
|
238
|
+
*/
|
|
239
|
+
function runsAgentExecute(run) {
|
|
240
|
+
const wingfoilAt = run.findIndex((element) => basename(element) === 'wingfoil' || basename(element) === 'cli.js');
|
|
241
|
+
if (wingfoilAt === -1)
|
|
242
|
+
return false;
|
|
243
|
+
for (let i = wingfoilAt + 1; i < run.length - 1; i += 1) {
|
|
244
|
+
if (run[i] === 'agent' && run[i + 1] === 'execute')
|
|
245
|
+
return true;
|
|
246
|
+
}
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=bindings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../src/workflow/bindings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** What `workflow create` writes, after `--kind` has been read as the two booleans. */
|
|
2
|
+
export interface NewWorkflow {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly startable: boolean;
|
|
5
|
+
readonly includable: boolean;
|
|
6
|
+
readonly element?: string;
|
|
7
|
+
readonly description?: string;
|
|
8
|
+
}
|
|
9
|
+
/** The phase every created workflow starts with (`spec-017` §7.7). */
|
|
10
|
+
export declare const FIRST_PHASE_NAME = "step-1";
|
|
11
|
+
/** The text of `.wingfoil/workflows/custom/<name>.yaml` for `workflow`, keys in a fixed order. Pure. */
|
|
12
|
+
export declare function renderCustomWorkflow(workflow: NewWorkflow): string;
|
|
13
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/workflow/create.ts"],"names":[],"mappings":"AAaA,uFAAuF;AACvF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAWzC,wGAAwG;AACxG,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAQlE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FIRST_PHASE_NAME = void 0;
|
|
4
|
+
exports.renderCustomWorkflow = renderCustomWorkflow;
|
|
5
|
+
/**
|
|
6
|
+
* The scaffold `wingfoil workflow create` writes (task-211, `spec-017` §7.7, P4.8). The Workflow pillar owns
|
|
7
|
+
* what a new workflow file *contains*; `src/core`'s `workflowCreate` composes it with the identity pre-flight,
|
|
8
|
+
* the uniqueness checks, the manifest edit and the commit. Pure (REQ-SYS-07): the same request always yields
|
|
9
|
+
* byte-identical text.
|
|
10
|
+
*
|
|
11
|
+
* The file is the smallest one `spec-003` Layer 2 accepts: `name`, the startable/includable declaration as the
|
|
12
|
+
* two booleans `dl-109` K1 (a) makes canonical (`--kind` maps onto them before this is called), the optional
|
|
13
|
+
* `description` and `element`, `version: 1.0`, and one phase `step-1` (Layer 2 requires one; it has no role, so
|
|
14
|
+
* it is a checkpoint until the author replaces it).
|
|
15
|
+
*/
|
|
16
|
+
const schema_1 = require("./schema");
|
|
17
|
+
/** The phase every created workflow starts with (`spec-017` §7.7). */
|
|
18
|
+
exports.FIRST_PHASE_NAME = 'step-1';
|
|
19
|
+
/**
|
|
20
|
+
* A YAML scalar for `value`: plain when it is a name of `spec-003`'s class (nothing YAML could read otherwise),
|
|
21
|
+
* else double-quoted. JSON's string syntax is a subset of YAML's double-quoted scalar, so `JSON.stringify`
|
|
22
|
+
* escapes quotes, backslashes and control characters the way the YAML reader undoes them.
|
|
23
|
+
*/
|
|
24
|
+
function scalar(value) {
|
|
25
|
+
return schema_1.WORKFLOW_NAME_RE.test(value) ? value : JSON.stringify(value);
|
|
26
|
+
}
|
|
27
|
+
/** The text of `.wingfoil/workflows/custom/<name>.yaml` for `workflow`, keys in a fixed order. Pure. */
|
|
28
|
+
function renderCustomWorkflow(workflow) {
|
|
29
|
+
const lines = [`name: ${workflow.name}`];
|
|
30
|
+
if (workflow.startable)
|
|
31
|
+
lines.push('startable: true');
|
|
32
|
+
if (workflow.includable)
|
|
33
|
+
lines.push('includable: true');
|
|
34
|
+
if (workflow.description !== undefined)
|
|
35
|
+
lines.push(`description: ${JSON.stringify(workflow.description)}`);
|
|
36
|
+
if (workflow.element !== undefined)
|
|
37
|
+
lines.push(`element: ${scalar(workflow.element)}`);
|
|
38
|
+
lines.push('version: 1.0', 'phases:', ` - name: ${exports.FIRST_PHASE_NAME}`);
|
|
39
|
+
return `${lines.join('\n')}\n`;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/workflow/create.ts"],"names":[],"mappings":";;;AAmCA,oDAQC;AA3CD;;;;;;;;;;GAUG;AACH,qCAA4C;AAW5C,sEAAsE;AACzD,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAEzC;;;;GAIG;AACH,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,yBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED,wGAAwG;AACxG,SAAgB,oBAAoB,CAAC,QAAqB;IACxD,MAAM,KAAK,GAAG,CAAC,SAAS,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,IAAI,QAAQ,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACxD,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC3G,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvF,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,aAAa,wBAAgB,EAAE,CAAC,CAAC;IACvE,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC"}
|