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
package/dist/workflow/schema.js
CHANGED
|
@@ -1,29 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Workflow = exports.Phase = exports.WorkflowsYaml = void 0;
|
|
3
|
+
exports.Workflow = exports.RESERVED_PHASE_NAMES = exports.WORKFLOW_NAME_RE = exports.Phase = exports.PATH_PATTERN_RE = exports.Produces = exports.Cadence = exports.CADENCE_SHAPE_MESSAGE = exports.CADENCE_EVENT_RE = exports.CRON_EXPRESSION_RE = exports.INDEPENDENT_ROLES = exports.PHASE_MODES = exports.WorkflowsYaml = void 0;
|
|
4
|
+
exports.cadenceShapeMessage = cadenceShapeMessage;
|
|
5
|
+
exports.producesPath = producesPath;
|
|
6
|
+
exports.invalidKindMessage = invalidKindMessage;
|
|
7
|
+
exports.workflowFacts = workflowFacts;
|
|
4
8
|
/**
|
|
5
9
|
* `workflows.yaml` manifest (Layer 1) + Workflow DSL (Layer 2) schemas
|
|
6
10
|
* (spec-003-workflows-yaml-schema, P4.1). This is one of the three independent per-pillar schemas
|
|
7
11
|
* task-004-decoupled-pillars keeps decoupled (REQ-SYS-02): neither layer depends on `memory.yaml`'s
|
|
8
|
-
* or `dna.yaml`'s schema.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* or `dna.yaml`'s schema. This module holds the **structural** (Zod) shape only, plus the name class
|
|
13
|
+
* and the startable/includable reading the loader's checks share ({@link WORKFLOW_NAME_RE},
|
|
14
|
+
* {@link workflowFacts}). Every check spec-003 § "Diagnostics" runs *in the loader* — names, the
|
|
15
|
+
* startable/includable rules, phase `include` resolution, element compatibility, include cycles,
|
|
16
|
+
* `fallback.step` — needs the other loaded files or emits a named code, so per
|
|
17
|
+
* spec-009-validation-strategy §1 it lives in `src/core/loaders.ts`, not here. The one structural
|
|
18
|
+
* refusal with a named code is an unknown `kind` (`E_WORKFLOW_INVALID_KIND`, BDD P4.1 sc. 3), whose
|
|
19
|
+
* message this schema carries.
|
|
14
20
|
*
|
|
15
|
-
* Every object node is `.passthrough()` per spec-009 §2
|
|
21
|
+
* Every object node is `.passthrough()` per spec-009 §2, except a phase `cadence`, a closed union whose
|
|
22
|
+
* objects are `.strict()` (spec-003 § "Recurring phases": exactly one trigger, no unknown key; task-185).
|
|
16
23
|
*/
|
|
17
24
|
const zod_1 = require("zod");
|
|
25
|
+
const format_1 = require("../validation/format");
|
|
26
|
+
const id_1 = require("../validation/id");
|
|
18
27
|
/**
|
|
19
28
|
* Layer 1 — the main manifest (`.wingfoil/workflows.yaml`). `include` (singular) is the canonical
|
|
20
29
|
* key per spec-003's required rename from the legacy plural `includes:`; a document that still uses
|
|
21
30
|
* `includes:` fails Pass 1 here (missing required `include`) and `includes` itself is preserved only
|
|
22
|
-
* as an unknown, passed-through key.
|
|
31
|
+
* as an unknown, passed-through key. `format` is the manifest's format (`dl-149`, task-251: absent = 1).
|
|
23
32
|
*/
|
|
24
33
|
exports.WorkflowsYaml = zod_1.z
|
|
25
34
|
.object({
|
|
26
35
|
version: zod_1.z.number().positive().optional(),
|
|
36
|
+
format: (0, format_1.formatField)(format_1.WORKFLOWS_YAML_FORMAT),
|
|
27
37
|
include: zod_1.z.array(zod_1.z.string()).min(1),
|
|
28
38
|
})
|
|
29
39
|
.passthrough();
|
|
@@ -35,10 +45,134 @@ const WhereValue = zod_1.z.union([
|
|
|
35
45
|
zod_1.z.boolean(),
|
|
36
46
|
zod_1.z.array(zod_1.z.union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean()])),
|
|
37
47
|
]);
|
|
48
|
+
/** A `memory.add(...)` action string (`dl-107` S3 (a)). */
|
|
49
|
+
const MEMORY_ADD_ACTION_RE = /^\s*memory\.add\s*\(/;
|
|
50
|
+
/** The `id_pattern:` argument of an action, double- or single-quoted. */
|
|
51
|
+
const ID_PATTERN_ARG_RE = /\bid_pattern\s*:\s*(?:"([^"]*)"|'([^']*)')/;
|
|
52
|
+
/**
|
|
53
|
+
* A phase's `actions` list. Actions stay free-form strings (spec-003), with one checked argument: a
|
|
54
|
+
* `memory.add(...)` action may override its type's `id_pattern` for that one add
|
|
55
|
+
* (`spec-001-memory-yaml-schema` "Per-action override", `dl-107` S3 (a), task-110), and that override
|
|
56
|
+
* is validated like any other pattern — `idPatternIssues` (`src/validation/id.ts`). A dotted token
|
|
57
|
+
* such as `{release.version}` is refused until `dl-090` defines how it resolves. Every other argument,
|
|
58
|
+
* and every other action, is left as it was.
|
|
59
|
+
*/
|
|
60
|
+
const Actions = zod_1.z.array(zod_1.z.string()).superRefine((actions, ctx) => {
|
|
61
|
+
actions.forEach((action, index) => {
|
|
62
|
+
if (!MEMORY_ADD_ACTION_RE.test(action))
|
|
63
|
+
return;
|
|
64
|
+
const match = ID_PATTERN_ARG_RE.exec(action);
|
|
65
|
+
if (match === null)
|
|
66
|
+
return;
|
|
67
|
+
const pattern = match[1] ?? match[2] ?? '';
|
|
68
|
+
for (const issue of (0, id_1.idPatternIssues)(pattern)) {
|
|
69
|
+
ctx.addIssue({ code: 'custom', path: [index], message: `memory.add id_pattern "${pattern}": ${issue}` });
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
// ---- task-185: executor attributes (`mode`, `distinct_from`) and phase `cadence` -------------------
|
|
74
|
+
// spec-003 § "Execution independence" (`dl-134` §4 (c), `dl-135` points 3–4) and § "Recurring phases"
|
|
75
|
+
// (`dl-105` R1). The loader rules on the raw declaration (`E_PHASE_DISTINCT_FROM_UNKNOWN`,
|
|
76
|
+
// `E_PHASE_DISTINCT_FROM_SELF`, `E_PHASE_MODE_NOT_INDEPENDENT`, `E_PHASE_EXECUTOR_WITHOUT_ROLE`) live in
|
|
77
|
+
// `src/core/workflow-diagnostics.ts`; here is only the structural shape.
|
|
78
|
+
/**
|
|
79
|
+
* The execution modes a phase may allow (spec-003 § "Execution independence"). One value per phase
|
|
80
|
+
* (spec-003 open question 5); an absent `mode` reads as `fresh` but stays absent in the parsed phase,
|
|
81
|
+
* so the loader's checks see the raw declaration (open question 4).
|
|
82
|
+
*/
|
|
83
|
+
exports.PHASE_MODES = ['fresh', 'resume', 'reference'];
|
|
84
|
+
/** Roles whose phases judge independently, so `fresh` is mandatory there (`dl-135` point 3). */
|
|
85
|
+
exports.INDEPENDENT_ROLES = ['reviewer', 'qa'];
|
|
86
|
+
/**
|
|
87
|
+
* One five-field cron expression, the string a GitHub Actions `on: schedule` trigger takes
|
|
88
|
+
* (spec-003 § "Recurring phases"): five fields of digits, names, `*`, `,`, `-` and `/`, separated by
|
|
89
|
+
* spaces or tabs (a line break or other whitespace is refused: the expression is one line). The
|
|
90
|
+
* field values themselves are not range-checked.
|
|
91
|
+
*/
|
|
92
|
+
exports.CRON_EXPRESSION_RE = /^[0-9A-Za-z*,/-]+([ \t]+[0-9A-Za-z*,/-]+){4}$/;
|
|
93
|
+
/**
|
|
94
|
+
* The shape of a cadence event, `<memory-type>-<state>` (spec-003 open question 3): lower-case
|
|
95
|
+
* segments joined by single hyphens, at least two of them. Both the type and the state may contain
|
|
96
|
+
* hyphens (`release-line-in-progress`), so where the type ends is decided against `memory.yaml` by
|
|
97
|
+
* the core check of task-194, not here.
|
|
98
|
+
*/
|
|
99
|
+
exports.CADENCE_EVENT_RE = /^[a-z][a-z0-9]*(-[a-z0-9]+)+$/;
|
|
100
|
+
/** `{ recurring: { cron } | { on } }`: exactly one trigger, no other key at either level. */
|
|
101
|
+
const RecurringCadence = zod_1.z
|
|
102
|
+
.object({
|
|
103
|
+
recurring: zod_1.z
|
|
104
|
+
.object({
|
|
105
|
+
cron: zod_1.z
|
|
106
|
+
.string()
|
|
107
|
+
.regex(exports.CRON_EXPRESSION_RE, { message: 'cron must be a five-field cron expression (e.g. "0 6 * * 1")' })
|
|
108
|
+
.optional(),
|
|
109
|
+
on: zod_1.z
|
|
110
|
+
.string()
|
|
111
|
+
.regex(exports.CADENCE_EVENT_RE, { message: 'on must be an event named <memory-type>-<state> (e.g. release-released)' })
|
|
112
|
+
.optional(),
|
|
113
|
+
})
|
|
114
|
+
.strict()
|
|
115
|
+
.superRefine((trigger, ctx) => {
|
|
116
|
+
if ((trigger.cron === undefined) === (trigger.on === undefined)) {
|
|
117
|
+
ctx.addIssue({ code: 'custom', message: 'recurring cadence takes exactly one trigger: cron or on' });
|
|
118
|
+
}
|
|
119
|
+
}),
|
|
120
|
+
})
|
|
121
|
+
.strict();
|
|
122
|
+
/** The refusal of a `cadence` that matches neither shape, as spec-003 § "Recurring phases" words it. */
|
|
123
|
+
exports.CADENCE_SHAPE_MESSAGE = 'cadence must be once or { recurring: { cron } | { on } } with no other key';
|
|
124
|
+
function isMap(value) {
|
|
125
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* The message of a `cadence` that matches neither shape: {@link CADENCE_SHAPE_MESSAGE}, naming the
|
|
129
|
+
* first unknown key in declared order — beside `recurring` first, then inside it — when there is one.
|
|
130
|
+
*/
|
|
131
|
+
function cadenceShapeMessage(input) {
|
|
132
|
+
if (!isMap(input))
|
|
133
|
+
return exports.CADENCE_SHAPE_MESSAGE;
|
|
134
|
+
const outer = Object.keys(input).find((key) => key !== 'recurring');
|
|
135
|
+
if (outer !== undefined)
|
|
136
|
+
return `${exports.CADENCE_SHAPE_MESSAGE} (unknown key '${outer}')`;
|
|
137
|
+
const recurring = input['recurring'];
|
|
138
|
+
const inner = isMap(recurring) ? Object.keys(recurring).find((key) => key !== 'cron' && key !== 'on') : undefined;
|
|
139
|
+
return inner === undefined ? exports.CADENCE_SHAPE_MESSAGE : `${exports.CADENCE_SHAPE_MESSAGE} (unknown key 'recurring.${inner}')`;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* A phase's cadence (`dl-105` R1): `once` (the default) or recurring on one trigger. A value that
|
|
143
|
+
* matches neither branch is refused at the `cadence` path with {@link cadenceShapeMessage}; a bad
|
|
144
|
+
* `cron` / `on` value or a trigger count other than one keeps its own, deeper path and message.
|
|
145
|
+
*/
|
|
146
|
+
exports.Cadence = zod_1.z.union([zod_1.z.literal('once'), RecurringCadence], { error: (issue) => cadenceShapeMessage(issue.input) });
|
|
147
|
+
// ---- end task-185 -----------------------------------------------------------------------------------
|
|
148
|
+
// --- task-175: phase evidence (dl-104 D3, D4; spec-003 § "Evidence") ---
|
|
149
|
+
/**
|
|
150
|
+
* One `produces` entry (`dl-104` D3): a path pattern owned by the workflow's `element` (a string), or
|
|
151
|
+
* `{ type: T, path }`, owned by the elements of type `T` the phase creates. Whether each path is a
|
|
152
|
+
* path pattern, and whether the phase creates `T`, are loader checks (`E_PHASE_PRODUCES_NOT_A_PATH`,
|
|
153
|
+
* `E_PHASE_PRODUCES_OWNER_NOT_CREATED`), so the rest of the file is still checked.
|
|
154
|
+
*/
|
|
155
|
+
exports.Produces = zod_1.z.union([zod_1.z.string(), zod_1.z.object({ type: zod_1.z.string(), path: zod_1.z.string() }).strict()]);
|
|
156
|
+
/**
|
|
157
|
+
* `awaits` (`dl-104` D4): the phase waits on an actor outside the project — `party` names it,
|
|
158
|
+
* `evidence` is a check token (Layer 3) that observes the outcome. Evaluated from v1.0 (P4.12).
|
|
159
|
+
*/
|
|
160
|
+
const Awaits = zod_1.z.object({ party: zod_1.z.string().min(1), evidence: Check }).strict();
|
|
161
|
+
/**
|
|
162
|
+
* A path pattern (spec-003 § "Evidence"): the characters `[A-Za-z0-9._/{}-]`, no whitespace — a
|
|
163
|
+
* repository-relative file or directory path, either with `{…}` tokens. Anything else is prose.
|
|
164
|
+
*/
|
|
165
|
+
exports.PATH_PATTERN_RE = /^[A-Za-z0-9._/{}-]+$/;
|
|
166
|
+
/** The path of one `produces` entry, whichever form it takes. */
|
|
167
|
+
function producesPath(entry) {
|
|
168
|
+
return typeof entry === 'string' ? entry : entry.path;
|
|
169
|
+
}
|
|
170
|
+
// --- end task-175 ---
|
|
38
171
|
/**
|
|
39
172
|
* One `phases[]` entry of a Layer-2 workflow definition (spec-003) — a named step with its optional
|
|
40
|
-
* `role`, `actions`, `include`, `iterate_over`/`where`, `produces`, `
|
|
41
|
-
* `fallback
|
|
173
|
+
* `role`, `actions`, `include`, `iterate_over`/`where`, `produces`, `awaits` (task-175), `checks`,
|
|
174
|
+
* `approval`, `fallback`, the executor attributes `mode` / `distinct_from` and the `cadence`
|
|
175
|
+
* (task-185). `.passthrough()` per spec-009 §2, except the closed `cadence` union.
|
|
42
176
|
*/
|
|
43
177
|
exports.Phase = zod_1.z
|
|
44
178
|
.object({
|
|
@@ -46,28 +180,68 @@ exports.Phase = zod_1.z
|
|
|
46
180
|
description: zod_1.z.string().optional(),
|
|
47
181
|
role: zod_1.z.string().optional(),
|
|
48
182
|
optional: zod_1.z.boolean().default(false),
|
|
49
|
-
actions:
|
|
183
|
+
actions: Actions.optional(),
|
|
50
184
|
include: zod_1.z.string().optional(),
|
|
51
185
|
iterate_over: zod_1.z.string().optional(),
|
|
52
186
|
where: zod_1.z.record(zod_1.z.string(), WhereValue).optional(),
|
|
53
|
-
produces: zod_1.z.array(
|
|
187
|
+
produces: zod_1.z.array(exports.Produces).optional(), // task-175: string | { type, path } (dl-104 D3)
|
|
188
|
+
awaits: Awaits.optional(), // task-175: dl-104 D4
|
|
54
189
|
checks: zod_1.z
|
|
55
190
|
.object({ pre: zod_1.z.array(Check).optional(), post: zod_1.z.array(Check).optional() })
|
|
56
191
|
.passthrough()
|
|
57
192
|
.optional(),
|
|
58
|
-
|
|
193
|
+
// task-194: exactly one of `by_role` / `by_person` (spec-003 Layer 2 `approval`, BDD P4.14 sc. 2); the
|
|
194
|
+
// core checks resolve each against `dna.yaml` (E_PHASE_ROLE_UNKNOWN, E_PHASE_APPROVER_UNKNOWN).
|
|
195
|
+
approval: zod_1.z.union([zod_1.z.object({ by_role: zod_1.z.string() }).strict(), zod_1.z.object({ by_person: zod_1.z.string() }).strict()]).optional(),
|
|
59
196
|
fallback: zod_1.z.object({ step: zod_1.z.string(), set_state: zod_1.z.string().optional() }).passthrough().optional(),
|
|
197
|
+
// task-185 (spec-003 § "Execution independence", § "Recurring phases"):
|
|
198
|
+
mode: zod_1.z.enum(exports.PHASE_MODES).optional(),
|
|
199
|
+
distinct_from: zod_1.z.array(zod_1.z.string()).optional(),
|
|
200
|
+
cadence: exports.Cadence.default('once'),
|
|
60
201
|
})
|
|
61
202
|
.passthrough();
|
|
62
|
-
/**
|
|
203
|
+
/**
|
|
204
|
+
* The name class of workflows and phases (spec-003 § "Names"): `[a-z][a-z0-9-]*`, so
|
|
205
|
+
* `<workflow>.<phase>` splits at its first `.` and a phase name is a legal run-id segment
|
|
206
|
+
* (`spec-016`). Checked by the loader (`E_WORKFLOW_NAME_INVALID`, `E_PHASE_NAME_INVALID`), not by
|
|
207
|
+
* Zod, so a bad name gets its own code and the rest of the file is still checked.
|
|
208
|
+
*/
|
|
209
|
+
exports.WORKFLOW_NAME_RE = /^[a-z][a-z0-9-]*$/;
|
|
210
|
+
/** Phase names no workflow may declare: `adhoc` names a run without a step (`spec-016`). */
|
|
211
|
+
exports.RESERVED_PHASE_NAMES = ['adhoc'];
|
|
212
|
+
/** The message of BDD `P4.1-workflow-config.feature` sc. 3, verbatim (`E_WORKFLOW_INVALID_KIND`). */
|
|
213
|
+
function invalidKindMessage(kind) {
|
|
214
|
+
return `invalid workflow kind '${String(kind)}' (allowed: main, sub)`;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Layer 2 — one workflow-definition file (`.wingfoil/workflows/**\/*.yaml`). `version` is the file's
|
|
218
|
+
* content revision; `format` its format (`dl-149`, task-251: absent = 1).
|
|
219
|
+
*/
|
|
63
220
|
exports.Workflow = zod_1.z
|
|
64
221
|
.object({
|
|
65
222
|
name: zod_1.z.string(),
|
|
66
|
-
|
|
223
|
+
/** Alias kept readable during v0.3 (`dl-109` K1 (a)): see {@link workflowFacts}. */
|
|
224
|
+
kind: zod_1.z.enum(['main', 'sub'], { error: (issue) => invalidKindMessage(issue.input) }).optional(),
|
|
225
|
+
startable: zod_1.z.boolean().optional(),
|
|
226
|
+
includable: zod_1.z.boolean().optional(),
|
|
67
227
|
description: zod_1.z.string().optional(),
|
|
68
228
|
version: zod_1.z.number().positive().optional(),
|
|
229
|
+
format: (0, format_1.formatField)(format_1.WORKFLOW_FORMAT),
|
|
69
230
|
element: zod_1.z.string().optional(),
|
|
70
231
|
phases: zod_1.z.array(exports.Phase).min(1),
|
|
71
232
|
})
|
|
72
233
|
.passthrough();
|
|
234
|
+
/**
|
|
235
|
+
* Read a workflow's two facts (spec-003 Layer 2, `dl-109` K1 (a)): `kind: main` is startable only,
|
|
236
|
+
* `kind: sub` includable only; otherwise each boolean as declared, an absent one reading `false`.
|
|
237
|
+
* A workflow that declares `kind` together with a boolean is refused by the loader
|
|
238
|
+
* (`E_WORKFLOW_KIND_CONFLICT`); here `kind` wins, so the reading stays total.
|
|
239
|
+
*/
|
|
240
|
+
function workflowFacts(workflow) {
|
|
241
|
+
if (workflow.kind === 'main')
|
|
242
|
+
return { startable: true, includable: false };
|
|
243
|
+
if (workflow.kind === 'sub')
|
|
244
|
+
return { startable: false, includable: true };
|
|
245
|
+
return { startable: workflow.startable === true, includable: workflow.includable === true };
|
|
246
|
+
}
|
|
73
247
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/workflow/schema.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/workflow/schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wingfoil",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "WingFoil — the repo-native intent layer for AI-native software engineering",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Roberto Pompermaier <robypomper@gmail.com>",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/
|
|
9
|
+
"url": "git+https://github.com/wingfoil/wingfoil.git"
|
|
10
10
|
},
|
|
11
|
-
"homepage": "https://github.
|
|
11
|
+
"homepage": "https://wingfoil.github.io/wingfoil/",
|
|
12
12
|
"bugs": {
|
|
13
|
-
"url": "https://github.com/
|
|
13
|
+
"url": "https://github.com/wingfoil/wingfoil/issues"
|
|
14
14
|
},
|
|
15
15
|
"engines": {
|
|
16
16
|
"node": ">=22.12.0"
|
|
@@ -30,21 +30,45 @@
|
|
|
30
30
|
"provenance": true
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
|
-
"build": "tsc -p tsconfig.build.json",
|
|
33
|
+
"build": "tsc -p tsconfig.build.json && node scripts/write-build-info.cjs",
|
|
34
34
|
"prepack": "npm run build",
|
|
35
35
|
"prepublishOnly": "npm run build && npm test && npm run lint",
|
|
36
36
|
"publish:staging": "node scripts/publish-staging.cjs",
|
|
37
37
|
"check:lockfile": "node scripts/check-lockfile-pins.cjs",
|
|
38
|
+
"check:audit": "npm audit --omit=dev --audit-level=high",
|
|
39
|
+
"check:audit:all": "npm audit --audit-level=high",
|
|
38
40
|
"lint": "eslint .",
|
|
41
|
+
"typecheck": "tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.build.json",
|
|
39
42
|
"docs:api": "typedoc --options typedoc.json",
|
|
40
|
-
"test": "
|
|
41
|
-
"test:coverage": "jest --coverage"
|
|
43
|
+
"test": "node scripts/run-tests.cjs",
|
|
44
|
+
"test:coverage": "jest --coverage",
|
|
45
|
+
"test:report": "jest --coverage --json --outputFile=coverage/jest-results.json",
|
|
46
|
+
"test:latency": "jest -c jest.latency.config.js",
|
|
47
|
+
"test:no-identity": "node scripts/test-no-identity.cjs",
|
|
48
|
+
"wingfoil": "node node_modules/wingfoil-released/dist/cli.js",
|
|
49
|
+
"check:mcp": "node scripts/check-mcp-registration.cjs",
|
|
50
|
+
"check:governance": "node scripts/check-governance.cjs",
|
|
51
|
+
"check:role-directives": "node scripts/check-role-directives.cjs",
|
|
52
|
+
"lint:claims": "node scripts/lint-claims.cjs"
|
|
42
53
|
},
|
|
43
54
|
"keywords": [
|
|
44
55
|
"wingfoil",
|
|
56
|
+
"mcp",
|
|
57
|
+
"model-context-protocol",
|
|
58
|
+
"mcp-server",
|
|
59
|
+
"ai-agents",
|
|
45
60
|
"ai-assisted-development",
|
|
61
|
+
"claude-code",
|
|
62
|
+
"cli",
|
|
63
|
+
"workflow",
|
|
64
|
+
"governance",
|
|
65
|
+
"spec-driven-development",
|
|
66
|
+
"intent-engineering",
|
|
67
|
+
"context-engineering",
|
|
68
|
+
"developer-tools",
|
|
46
69
|
"determinism"
|
|
47
70
|
],
|
|
71
|
+
"mcpName": "io.github.wingfoil/wingfoil",
|
|
48
72
|
"//devDependencies:@emnapi": "task-104 / bug-063. @emnapi/core and @emnapi/runtime are NOT imported by anything in this repository. They are declared here, at the exact version the overrides block below pins, because an overrides pin binds a version but does not make npm record a node: under npm 11.x a plain `npm install` prunes both hoisted entries out of package-lock.json and reports `up to date`, which silently reverts task-080 and makes `npm ci` fail again under the npm 10.9.x that the pipeline's pinned Node 22.12.0 bundles (bug-056). A DIRECT dependency is never pruned, so declaring them is what makes the lock entries survive an ordinary install. Keep the two versions here equal to the overrides pins - `npm run check:lockfile` (scripts/check-lockfile-pins.cjs) fails if they drift, if either entry leaves the lock, or if these declarations are removed. Being devDependencies, they are never installed by a consumer of the published package.",
|
|
49
73
|
"devDependencies": {
|
|
50
74
|
"@emnapi/core": "1.11.3",
|
|
@@ -53,19 +77,19 @@
|
|
|
53
77
|
"@types/jest": "^30.0.0",
|
|
54
78
|
"@types/js-yaml": "^4.0.9",
|
|
55
79
|
"@types/node": "^22.20.4",
|
|
80
|
+
"ajv": "^8.20.0",
|
|
56
81
|
"eslint": "^10.6.0",
|
|
57
82
|
"jest": "^30.4.2",
|
|
58
83
|
"ts-jest": "^29.4.11",
|
|
59
84
|
"typedoc": "^0.28.20",
|
|
60
85
|
"typescript": "^6.0.3",
|
|
61
|
-
"typescript-eslint": "^8.62.1"
|
|
86
|
+
"typescript-eslint": "^8.62.1",
|
|
87
|
+
"wingfoil-released": "npm:wingfoil@0.2.2"
|
|
62
88
|
},
|
|
63
89
|
"dependencies": {
|
|
64
|
-
"@
|
|
65
|
-
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
66
|
-
"chalk": "^4.1.2",
|
|
90
|
+
"@modelcontextprotocol/sdk": "^1.32.0",
|
|
67
91
|
"commander": "^15.0.0",
|
|
68
|
-
"js-yaml": "^4.3.
|
|
92
|
+
"js-yaml": "^4.3.2",
|
|
69
93
|
"zod": "^4.4.3"
|
|
70
94
|
},
|
|
71
95
|
"//overrides": "task-080 / bug-056 / dl-069 option (b). @napi-rs/wasm-runtime (dev, optional, reached through eslint -> @unrs/resolver) declares @emnapi/core and @emnapi/runtime as REQUIRED peers, and npm recorded no hoisted entry for either - so npm resolved them from the registry on every install and `npm ci` then rejected the lock for missing what it had just resolved. That is invisible under npm 11.x and fatal under the npm 10.9.0 that the pipeline's pinned Node 22.12.0 bundles, which is why it surfaced only in the release gate. These exact pins make both peers resolve from package-lock.json instead of the registry. Scoped to @napi-rs/wasm-runtime on purpose: the nested @emnapi/core@1.10.0 under @unrs/resolver-binding-wasm32-wasi is a different edge and stays where it is. Revisit on any eslint / @unrs/resolver bump; test/cli/lockfile-peer-overrides.test.ts fails if the lock stops carrying these. task-104 amends this: the overrides block alone did NOT keep the entries in the lock - see the //devDependencies:@emnapi note above.",
|