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/mcp/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `mcp-server` module — agent interface (MCP over stdio,
|
|
2
|
+
* `mcp-server` module — agent interface (MCP over stdio, `@modelcontextprotocol/sdk`); Resources, Prompts, Tools.
|
|
3
3
|
* Path is `src/mcp` per `dna.yaml`'s module entry (`name: mcp-server`, `path: src/mcp`).
|
|
4
4
|
*
|
|
5
5
|
* task-006-dual-interface-shared-core adds the thin adapter (spec-006 §2, spec-004): `registerCoreModules`
|
|
@@ -11,9 +11,10 @@
|
|
|
11
11
|
* channel (REQ-INT-01 / REQ-SEC-05): `registerMemoryResources` (`wingfoil://memory/{type}`,
|
|
12
12
|
* `wingfoil://memory/{type}/{id}` — REPLACING task-009-mcp-resource-fetch-latency's placeholder
|
|
13
13
|
* `wingfoil://memory/{id}` adapter), `registerDnaResources` (`wingfoil://dna`, `wingfoil://dna/{section}`),
|
|
14
|
-
* `registerWorkflowResources` (`wingfoil://workflows`, `wingfoil://workflows/{name}
|
|
14
|
+
* `registerWorkflowResources` (`wingfoil://workflows`, `wingfoil://workflows/{name}`; task-239 adds
|
|
15
|
+
* `registerWorkflowStateResources`, `wingfoil://workflows/-/next` and `-/status`), and
|
|
15
16
|
* `registerWriteRefusalHandler` (the structural `resources/write` refusal, spec-004 §2.3).
|
|
16
|
-
* `registerReadOnlyResources` wires all
|
|
17
|
+
* `registerReadOnlyResources` wires all five together — the one call a future production entry point
|
|
17
18
|
* (`task-030-implement-mcp-resources`'s `StdioServerTransport`/`wingfoil mcp` command, out of this
|
|
18
19
|
* task's scope) needs alongside `registerCoreModules`. See `./read-only.ts` for the shared
|
|
19
20
|
* write-refusal/not-found conventions every one of these Resources follows.
|
|
@@ -27,11 +28,13 @@ export { registerMemoryResources, MEMORY_COLLECTION_URI_TEMPLATE, MEMORY_DOCUMEN
|
|
|
27
28
|
export type { RegisterMemoryResourcesOptions } from './memory-resource';
|
|
28
29
|
export { registerDnaResources, DNA_WHOLE_URI, DNA_SECTION_URI_TEMPLATE } from './dna-resource';
|
|
29
30
|
export type { RegisterDnaResourcesOptions } from './dna-resource';
|
|
30
|
-
export { registerWorkflowResources, WORKFLOWS_COLLECTION_URI, WORKFLOW_DOCUMENT_URI_TEMPLATE, } from './workflow-resource';
|
|
31
|
+
export { registerWorkflowResources, registerWorkflowStateResources, WORKFLOWS_COLLECTION_URI, WORKFLOW_DOCUMENT_URI_TEMPLATE, WORKFLOW_NEXT_URI, WORKFLOW_STATUS_URI, } from './workflow-resource';
|
|
31
32
|
export type { RegisterWorkflowResourcesOptions } from './workflow-resource';
|
|
32
33
|
export { registerWriteRefusalHandler, refuseIfWriteIntent, resourceNotFoundError, WRITE_REFUSAL_MESSAGE, WRITE_INTENT_META_KEY, } from './read-only';
|
|
33
34
|
export { registerRolePrompts, roleSessionPromptName } from './prompt';
|
|
34
35
|
export type { RegisterRolePromptsOptions } from './prompt';
|
|
36
|
+
export { registerSessionContextResource, SESSION_CONTEXT_URI_TEMPLATE } from './session-resource';
|
|
37
|
+
export type { RegisterSessionContextResourceOptions } from './session-resource';
|
|
35
38
|
/** Options for {@link registerReadOnlyResources}. */
|
|
36
39
|
export interface RegisterReadOnlyResourcesOptions {
|
|
37
40
|
/** Resolves the project root each Resource read is served from (an ambient concern, not a request parameter). */
|
|
@@ -39,7 +42,8 @@ export interface RegisterReadOnlyResourcesOptions {
|
|
|
39
42
|
}
|
|
40
43
|
/**
|
|
41
44
|
* Wire the full spec-004 §2 read-only Resources channel onto `server` in one call: the Memory, DNA,
|
|
42
|
-
* and Workflow Resources
|
|
45
|
+
* and Workflow Resources — the two workflow-state Resources `wingfoil://workflows/-/next` and `-/status`
|
|
46
|
+
* included (task-239, `spec-017` §9) — plus the structural `resources/write` refusal. Deliberately does not touch
|
|
43
47
|
* `registerCoreModules`/`CORE_MODULES` — a caller building a real server still calls that separately
|
|
44
48
|
* for the (today, zero) Tools/legacy-shaped Resources it derives from `src/core`.
|
|
45
49
|
*/
|
package/dist/mcp/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,yGAAyG;AACzG,eAAO,MAAM,WAAW,EAAG,YAAqB,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC3F,YAAY,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/F,YAAY,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,wBAAwB,EACxB,8BAA8B,EAC9B,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,YAAY,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAK3D,OAAO,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClG,YAAY,EAAE,qCAAqC,EAAE,MAAM,oBAAoB,CAAC;AAOhF,qDAAqD;AACrD,MAAM,WAAW,gCAAgC;IAC/C,iHAAiH;IACjH,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC;CACpC;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,gCAAgC,GAAG,IAAI,CAM5G;AAMD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/mcp/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.startMcpServer = exports.createMcpServer = exports.roleSessionPromptName = exports.registerRolePrompts = exports.WRITE_INTENT_META_KEY = exports.WRITE_REFUSAL_MESSAGE = exports.resourceNotFoundError = exports.refuseIfWriteIntent = exports.registerWriteRefusalHandler = exports.WORKFLOW_DOCUMENT_URI_TEMPLATE = exports.WORKFLOWS_COLLECTION_URI = exports.registerWorkflowResources = exports.DNA_SECTION_URI_TEMPLATE = exports.DNA_WHOLE_URI = exports.registerDnaResources = exports.MEMORY_DOCUMENT_URI_TEMPLATE = exports.MEMORY_COLLECTION_URI_TEMPLATE = exports.registerMemoryResources = exports.deriveMcpResourceUri = exports.deriveMcpToolName = exports.registerCoreModules = exports.MODULE_NAME = void 0;
|
|
3
|
+
exports.startMcpServer = exports.createMcpServer = exports.SESSION_CONTEXT_URI_TEMPLATE = exports.registerSessionContextResource = exports.roleSessionPromptName = exports.registerRolePrompts = exports.WRITE_INTENT_META_KEY = exports.WRITE_REFUSAL_MESSAGE = exports.resourceNotFoundError = exports.refuseIfWriteIntent = exports.registerWriteRefusalHandler = exports.WORKFLOW_STATUS_URI = exports.WORKFLOW_NEXT_URI = exports.WORKFLOW_DOCUMENT_URI_TEMPLATE = exports.WORKFLOWS_COLLECTION_URI = exports.registerWorkflowStateResources = exports.registerWorkflowResources = exports.DNA_SECTION_URI_TEMPLATE = exports.DNA_WHOLE_URI = exports.registerDnaResources = exports.MEMORY_DOCUMENT_URI_TEMPLATE = exports.MEMORY_COLLECTION_URI_TEMPLATE = exports.registerMemoryResources = exports.deriveMcpResourceUri = exports.deriveMcpToolName = exports.registerCoreModules = exports.MODULE_NAME = void 0;
|
|
4
4
|
exports.registerReadOnlyResources = registerReadOnlyResources;
|
|
5
5
|
/** This module's `dna.yaml` name (`mcp-server`) — the stable identifier surfaces and tests key it by. */
|
|
6
6
|
exports.MODULE_NAME = 'mcp-server';
|
|
@@ -18,8 +18,11 @@ Object.defineProperty(exports, "DNA_WHOLE_URI", { enumerable: true, get: functio
|
|
|
18
18
|
Object.defineProperty(exports, "DNA_SECTION_URI_TEMPLATE", { enumerable: true, get: function () { return dna_resource_1.DNA_SECTION_URI_TEMPLATE; } });
|
|
19
19
|
var workflow_resource_1 = require("./workflow-resource");
|
|
20
20
|
Object.defineProperty(exports, "registerWorkflowResources", { enumerable: true, get: function () { return workflow_resource_1.registerWorkflowResources; } });
|
|
21
|
+
Object.defineProperty(exports, "registerWorkflowStateResources", { enumerable: true, get: function () { return workflow_resource_1.registerWorkflowStateResources; } });
|
|
21
22
|
Object.defineProperty(exports, "WORKFLOWS_COLLECTION_URI", { enumerable: true, get: function () { return workflow_resource_1.WORKFLOWS_COLLECTION_URI; } });
|
|
22
23
|
Object.defineProperty(exports, "WORKFLOW_DOCUMENT_URI_TEMPLATE", { enumerable: true, get: function () { return workflow_resource_1.WORKFLOW_DOCUMENT_URI_TEMPLATE; } });
|
|
24
|
+
Object.defineProperty(exports, "WORKFLOW_NEXT_URI", { enumerable: true, get: function () { return workflow_resource_1.WORKFLOW_NEXT_URI; } });
|
|
25
|
+
Object.defineProperty(exports, "WORKFLOW_STATUS_URI", { enumerable: true, get: function () { return workflow_resource_1.WORKFLOW_STATUS_URI; } });
|
|
23
26
|
var read_only_1 = require("./read-only");
|
|
24
27
|
Object.defineProperty(exports, "registerWriteRefusalHandler", { enumerable: true, get: function () { return read_only_1.registerWriteRefusalHandler; } });
|
|
25
28
|
Object.defineProperty(exports, "refuseIfWriteIntent", { enumerable: true, get: function () { return read_only_1.refuseIfWriteIntent; } });
|
|
@@ -34,13 +37,20 @@ Object.defineProperty(exports, "WRITE_INTENT_META_KEY", { enumerable: true, get:
|
|
|
34
37
|
var prompt_1 = require("./prompt");
|
|
35
38
|
Object.defineProperty(exports, "registerRolePrompts", { enumerable: true, get: function () { return prompt_1.registerRolePrompts; } });
|
|
36
39
|
Object.defineProperty(exports, "roleSessionPromptName", { enumerable: true, get: function () { return prompt_1.roleSessionPromptName; } });
|
|
40
|
+
// task-236: the same execution context as the `{role}-session` Prompt with `element` and `state`, served also
|
|
41
|
+
// as the read-only Resource template `wingfoil://session/{role}/{element}/{state}` (spec-004 §2.1), because an
|
|
42
|
+
// agent CLI may let its model read Resources but not get Prompts. See `./session-resource.ts`.
|
|
43
|
+
var session_resource_1 = require("./session-resource");
|
|
44
|
+
Object.defineProperty(exports, "registerSessionContextResource", { enumerable: true, get: function () { return session_resource_1.registerSessionContextResource; } });
|
|
45
|
+
Object.defineProperty(exports, "SESSION_CONTEXT_URI_TEMPLATE", { enumerable: true, get: function () { return session_resource_1.SESSION_CONTEXT_URI_TEMPLATE; } });
|
|
37
46
|
const dna_resource_2 = require("./dna-resource");
|
|
38
47
|
const memory_resource_2 = require("./memory-resource");
|
|
39
48
|
const read_only_2 = require("./read-only");
|
|
40
49
|
const workflow_resource_2 = require("./workflow-resource");
|
|
41
50
|
/**
|
|
42
51
|
* Wire the full spec-004 §2 read-only Resources channel onto `server` in one call: the Memory, DNA,
|
|
43
|
-
* and Workflow Resources
|
|
52
|
+
* and Workflow Resources — the two workflow-state Resources `wingfoil://workflows/-/next` and `-/status`
|
|
53
|
+
* included (task-239, `spec-017` §9) — plus the structural `resources/write` refusal. Deliberately does not touch
|
|
44
54
|
* `registerCoreModules`/`CORE_MODULES` — a caller building a real server still calls that separately
|
|
45
55
|
* for the (today, zero) Tools/legacy-shaped Resources it derives from `src/core`.
|
|
46
56
|
*/
|
|
@@ -49,6 +59,7 @@ function registerReadOnlyResources(server, options) {
|
|
|
49
59
|
(0, memory_resource_2.registerMemoryResources)(server, options);
|
|
50
60
|
(0, dna_resource_2.registerDnaResources)(server, options);
|
|
51
61
|
(0, workflow_resource_2.registerWorkflowResources)(server, options);
|
|
62
|
+
(0, workflow_resource_2.registerWorkflowStateResources)(server, options);
|
|
52
63
|
}
|
|
53
64
|
// The production stdio entry point (task-030-implement-mcp-resources, spec-014-mcp-server-entry-point):
|
|
54
65
|
// `createMcpServer` builds a real `McpServer` with the read-only Resources and Prompts channels above wired on,
|
package/dist/mcp/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";;;AAyFA,8DAMC;AAxED,yGAAyG;AAC5F,QAAA,WAAW,GAAG,YAAqB,CAAC;AAEjD,yCAA2F;AAAlF,gHAAA,mBAAmB,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAGrE,qDAI2B;AAHzB,0HAAA,uBAAuB,OAAA;AACvB,iIAAA,8BAA8B,OAAA;AAC9B,+HAAA,4BAA4B,OAAA;AAI9B,+CAA+F;AAAtF,oHAAA,oBAAoB,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,wHAAA,wBAAwB,OAAA;AAGtE,yDAO6B;AAN3B,8HAAA,yBAAyB,OAAA;AACzB,mIAAA,8BAA8B,OAAA;AAC9B,6HAAA,wBAAwB,OAAA;AACxB,mIAAA,8BAA8B,OAAA;AAC9B,sHAAA,iBAAiB,OAAA;AACjB,wHAAA,mBAAmB,OAAA;AAIrB,yCAMqB;AALnB,wHAAA,2BAA2B,OAAA;AAC3B,gHAAA,mBAAmB,OAAA;AACnB,kHAAA,qBAAqB,OAAA;AACrB,kHAAA,qBAAqB,OAAA;AACrB,kHAAA,qBAAqB,OAAA;AAGvB,+FAA+F;AAC/F,8FAA8F;AAC9F,sGAAsG;AACtG,gFAAgF;AAChF,8EAA8E;AAC9E,mCAAsE;AAA7D,6GAAA,mBAAmB,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAGnD,8GAA8G;AAC9G,+GAA+G;AAC/G,+FAA+F;AAC/F,uDAAkG;AAAzF,kIAAA,8BAA8B,OAAA;AAAE,gIAAA,4BAA4B,OAAA;AAGrE,iDAAsD;AACtD,uDAA4D;AAC5D,2CAA0D;AAC1D,2DAAgG;AAQhG;;;;;;GAMG;AACH,SAAgB,yBAAyB,CAAC,MAAiB,EAAE,OAAyC;IACpG,IAAA,uCAA2B,EAAC,MAAM,CAAC,CAAC;IACpC,IAAA,yCAAuB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,IAAA,mCAAoB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,IAAA,6CAAyB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAA,kDAA8B,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,wGAAwG;AACxG,gHAAgH;AAChH,sGAAsG;AACtG,4DAA4D;AAC5D,mCAA2D;AAAlD,yGAAA,eAAe,OAAA;AAAE,wGAAA,cAAc,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-resource.d.ts","sourceRoot":"","sources":["../../src/mcp/memory-resource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory-resource.d.ts","sourceRoot":"","sources":["../../src/mcp/memory-resource.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBzE,mDAAmD;AACnD,MAAM,WAAW,8BAA8B;IAC7C,wHAAwH;IACxH,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC;CACpC;AAED,wEAAwE;AACxE,eAAO,MAAM,8BAA8B,6BAA6B,CAAC;AACzE,0EAA0E;AAC1E,eAAO,MAAM,4BAA4B,kCAAkC,CAAC;AAE5E;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,8BAA8B,GAAG,IAAI,CAmGxG"}
|
|
@@ -18,7 +18,10 @@ exports.registerMemoryResources = registerMemoryResources;
|
|
|
18
18
|
* an agent browsing a type is never handed a replaced or retired decision as if it were current — the
|
|
19
19
|
* same guarantee `wingfoil://memory/search` and default `memory search` already give. The
|
|
20
20
|
* **single-document** Resource does **not** filter: addressing a document by its id is explicit
|
|
21
|
-
* retrieval, which REQ-STATE-06 preserves ("remaining present on disk and in git history").
|
|
21
|
+
* retrieval, which REQ-STATE-06 preserves ("remaining present on disk and in git history"). Since
|
|
22
|
+
* task-171 (`dl-038` option 1) the primitives exclude archived content by default, so the collection
|
|
23
|
+
* inherits its filter and the single-document Resource asks for archived content with
|
|
24
|
+
* `includeArchived: true`. It is the
|
|
22
25
|
* MCP counterpart of `memory search --status deprecated` on the CLI, whose own opt-in
|
|
23
26
|
* (`memorySearchFn`, `src/core/index.ts`) is gated on the same `isArchivedStatus`. `draft` is not
|
|
24
27
|
* archived and is withheld by neither handler; only the *context* path (`src/core/relevance.ts`)
|
|
@@ -41,8 +44,8 @@ const path_1 = require("path");
|
|
|
41
44
|
const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
|
|
42
45
|
const core_1 = require("../core");
|
|
43
46
|
const query_1 = require("../memory/query");
|
|
44
|
-
const state_machine_1 = require("../memory/state-machine");
|
|
45
47
|
const storage_1 = require("../storage");
|
|
48
|
+
const validation_1 = require("../validation");
|
|
46
49
|
const read_only_1 = require("./read-only");
|
|
47
50
|
/** spec-004 §2.1 — collection listing (frontmatter only, no `{id}`). */
|
|
48
51
|
exports.MEMORY_COLLECTION_URI_TEMPLATE = 'wingfoil://memory/{type}';
|
|
@@ -55,7 +58,7 @@ exports.MEMORY_DOCUMENT_URI_TEMPLATE = 'wingfoil://memory/{type}/{id}';
|
|
|
55
58
|
*/
|
|
56
59
|
function registerMemoryResources(server, options) {
|
|
57
60
|
const collectionTemplate = new mcp_js_1.ResourceTemplate(exports.MEMORY_COLLECTION_URI_TEMPLATE, { list: undefined });
|
|
58
|
-
server.registerResource('memory.list', collectionTemplate, { description: 'Memory documents of one type, frontmatter only (read-only)' },
|
|
61
|
+
server.registerResource('memory.list', collectionTemplate, { description: 'Memory documents of one type, frontmatter only (read-only)' }, (uri, variables, extra) => (0, read_only_1.withRefusalDetails)(() => {
|
|
59
62
|
(0, read_only_1.refuseIfWriteIntent)(extra._meta);
|
|
60
63
|
const root = options.resolveRoot();
|
|
61
64
|
const memoryYaml = (0, core_1.loadMemoryYaml)(root);
|
|
@@ -68,25 +71,22 @@ function registerMemoryResources(server, options) {
|
|
|
68
71
|
throw (0, read_only_1.resourceNotFoundError)(`memory/${type}`);
|
|
69
72
|
// REQ-STATE-06 / `dl-028-archived-states-excluded-from-context` (`bug-010`): this collection is
|
|
70
73
|
// an agent-facing read path, so archived documents — `{deprecated, superseded}`, per the shared
|
|
71
|
-
// `isArchivedStatus` — are withheld
|
|
72
|
-
//
|
|
73
|
-
//
|
|
74
|
-
// the
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
// id-ascending order (REQ-SYS-07).
|
|
78
|
-
const summaries = (0, query_1.listMemoryDocumentsByType)(root, memoryYaml, type)
|
|
79
|
-
.filter(({ status }) => !(0, state_machine_1.isArchivedStatus)(status))
|
|
74
|
+
// `isArchivedStatus` — are withheld. Since task-171 (`dl-038` option 1) the primitive withholds
|
|
75
|
+
// them by default, so this call site no longer filters: omitting a filter fails closed.
|
|
76
|
+
// A document the scan leaves out (unreadable, a link, a newer `format:`) is reported, and the
|
|
77
|
+
// report reaches the client as `warnings` (task-195, `bug-231`), as the CLI prints it.
|
|
78
|
+
const diagnostics = [];
|
|
79
|
+
const summaries = (0, query_1.listMemoryDocumentsByType)(root, memoryYaml, type, { onDiagnostic: (diagnostic) => diagnostics.push(diagnostic) })
|
|
80
80
|
.map(({ id, title, status, tags }) => ({
|
|
81
81
|
id,
|
|
82
82
|
title,
|
|
83
83
|
status,
|
|
84
84
|
tags,
|
|
85
85
|
}));
|
|
86
|
-
return (0, read_only_1.jsonResourceResult)(uri, summaries);
|
|
87
|
-
});
|
|
86
|
+
return (0, read_only_1.withWarnings)((0, read_only_1.jsonResourceResult)(uri, summaries), diagnostics.map(validation_1.formatDiagnostic));
|
|
87
|
+
}));
|
|
88
88
|
const documentTemplate = new mcp_js_1.ResourceTemplate(exports.MEMORY_DOCUMENT_URI_TEMPLATE, { list: undefined });
|
|
89
|
-
server.registerResource('memory.show', documentTemplate, { description: 'one Memory document, full content + metadata (read-only)' },
|
|
89
|
+
server.registerResource('memory.show', documentTemplate, { description: 'one Memory document, full content + metadata (read-only)' }, (uri, variables, extra) => (0, read_only_1.withRefusalDetails)(() => {
|
|
90
90
|
(0, read_only_1.refuseIfWriteIntent)(extra._meta);
|
|
91
91
|
const root = options.resolveRoot();
|
|
92
92
|
const memoryYaml = (0, core_1.loadMemoryYaml)(root);
|
|
@@ -94,9 +94,20 @@ function registerMemoryResources(server, options) {
|
|
|
94
94
|
const id = variables.id;
|
|
95
95
|
if (!(type in memoryYaml.types))
|
|
96
96
|
throw (0, read_only_1.resourceNotFoundError)(`memory/${type}/${id}`);
|
|
97
|
-
|
|
97
|
+
// `includeArchived: true`, said here on purpose (task-171, `dl-038` option 1): REQ-STATE-06 keeps
|
|
98
|
+
// an archived document "present on disk and in git history", and this Resource is how an agent
|
|
99
|
+
// retrieves one explicitly.
|
|
100
|
+
// The lookup reports the files it could not read on its way (task-195, `bug-231`): beside the
|
|
101
|
+
// document on success, and as the refusal's details when it found nothing, since the document
|
|
102
|
+
// may be one of them.
|
|
103
|
+
const diagnostics = [];
|
|
104
|
+
const doc = (0, query_1.findMemoryDocumentByTypeAndId)(root, memoryYaml, type, id, {
|
|
105
|
+
includeArchived: true,
|
|
106
|
+
onDiagnostic: (diagnostic) => diagnostics.push(diagnostic),
|
|
107
|
+
});
|
|
108
|
+
const warnings = diagnostics.map(validation_1.formatDiagnostic);
|
|
98
109
|
if (!doc)
|
|
99
|
-
throw (0, read_only_1.resourceNotFoundError)(`memory/${type}/${id}`);
|
|
110
|
+
throw (0, read_only_1.readRefusalError)((0, read_only_1.resourceNotFoundError)(`memory/${type}/${id}`).message, (0, read_only_1.warningDetails)(warnings));
|
|
100
111
|
// spec-004 §2.2 wants the *full file content* (frontmatter + body), not the re-serialized
|
|
101
112
|
// parsed frontmatter `loadMemoryDocumentSummary` already split apart for the scan — so this
|
|
102
113
|
// re-reads the resolved path's raw bytes via `storage.readDocument` (still a read primitive
|
|
@@ -127,7 +138,7 @@ function registerMemoryResources(server, options) {
|
|
|
127
138
|
title: doc.frontmatter.title,
|
|
128
139
|
},
|
|
129
140
|
};
|
|
130
|
-
return result;
|
|
131
|
-
});
|
|
141
|
+
return (0, read_only_1.withWarnings)(result, warnings);
|
|
142
|
+
}));
|
|
132
143
|
}
|
|
133
144
|
//# sourceMappingURL=memory-resource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-resource.js","sourceRoot":"","sources":["../../src/mcp/memory-resource.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"memory-resource.js","sourceRoot":"","sources":["../../src/mcp/memory-resource.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/prompt.d.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { ExecutionContextElement } from '../core';
|
|
2
3
|
/** Options for {@link registerRolePrompts}. */
|
|
3
4
|
export interface RegisterRolePromptsOptions {
|
|
4
5
|
/**
|
|
5
|
-
* Resolves the project root each `prompts/get` is served from — invoked per request by the
|
|
6
|
-
*
|
|
7
|
-
* that function's note on the two different timings spec-004 §3.1 and §3.2 mandate).
|
|
6
|
+
* Resolves the project root each `prompts/get` is served from — invoked per request by the
|
|
7
|
+
* `prompts/get` handler, which resolves the role's directives then (spec-004 §3.2).
|
|
8
8
|
*/
|
|
9
9
|
readonly resolveRoot: () => string;
|
|
10
|
+
/**
|
|
11
|
+
* The DNA role set (`dna.yaml` `team.roles[].name`, declaration order), read once before the server
|
|
12
|
+
* starts — by `wingfoil mcp`'s pre-flight (`loadDnaRoleSet`, `dl-049` (b)) — and fixed for the
|
|
13
|
+
* server's life: spec-004 §3.1's "fixed set derived from DNA at server start".
|
|
14
|
+
*/
|
|
15
|
+
readonly roles: readonly string[];
|
|
10
16
|
}
|
|
11
17
|
/**
|
|
12
18
|
* `{role}-session` — spec-004 §3.1's prompt naming convention, as a function so the wire-visible name
|
|
@@ -15,32 +21,63 @@ export interface RegisterRolePromptsOptions {
|
|
|
15
21
|
*/
|
|
16
22
|
export declare function roleSessionPromptName(role: string): string;
|
|
17
23
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* for
|
|
24
|
+
* A request refusal — of `prompts/get`, or of the session Resource's read (`./session-resource.ts`, task-236) —
|
|
25
|
+
* whose JSON-RPC error carries `message` **verbatim** with code `InvalidParams` (-32602, the code the MCP SDK
|
|
26
|
+
* itself uses for an unknown prompt name or resource).
|
|
21
27
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
* Deliberately a plain `Error` with a `code`, not the SDK's `McpError`: `McpError`'s constructor
|
|
29
|
+
* prefixes its own message with `MCP error <code>: `, and the SDK serializes `error.message` as-is, so a
|
|
30
|
+
* client — which adds that prefix again when it rebuilds the error — would read the prefix twice.
|
|
31
|
+
*/
|
|
32
|
+
export declare function promptRequestError(message: string): Error;
|
|
33
|
+
/** The execution context for `(role, element, state)`, as text, with the diagnostics that ride beside it. */
|
|
34
|
+
export interface SessionContext {
|
|
35
|
+
/** `assembleExecutionContext`'s `spec-012` §7 payload, as returned. */
|
|
36
|
+
readonly text: string;
|
|
37
|
+
/** The directive-resolution warnings, then the builder's notes, then the `W_MEMORY_UNREADABLE` lines. */
|
|
38
|
+
readonly warnings: readonly string[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The execution context for `role`, `element` and `state` (task-195, spec-004 §3.2): `assembleExecutionContext`'s
|
|
42
|
+
* §7 payload, as returned — never re-serialized, and never indexed by its body markers (`bug-265`). `state` is
|
|
43
|
+
* resolved once, here, and the builder reads everything at that sha, so neither a later commit nor an uncommitted
|
|
44
|
+
* edit changes the answer. ONE builder for both carriers: the `{role}-session` Prompt wraps it in `messages`
|
|
45
|
+
* ({@link buildContextPrompt}), the session Resource in `contents` (`./session-resource.ts`, task-236), so the two
|
|
46
|
+
* answer the same bytes for the same arguments.
|
|
47
|
+
*
|
|
48
|
+
* The diagnostics: the directive-resolution warnings (`spec-012` §5.1 order), then the builder's notes (§3 stage
|
|
49
|
+
* order), then the `W_MEMORY_UNREADABLE` lines of the files the scan left out (path order, task-171).
|
|
50
|
+
*
|
|
51
|
+
* Refusals (spec-004 §3.4): a `state` that is not a commit and an element the commit does not hold are request
|
|
52
|
+
* errors, `-32602` — the latter with the unreadable files as `error.data.details`, so a subject that does not parse
|
|
53
|
+
* is not reported as merely absent. Every other refusal is about the repository (an archived subject, one in a
|
|
54
|
+
* newer `format:`, a missing pillar file) and is a failed read, as a failed Resource read is: the core message with
|
|
55
|
+
* its details.
|
|
56
|
+
*/
|
|
57
|
+
export declare function buildSessionContext(root: string, role: string, element: ExecutionContextElement, state: string): SessionContext;
|
|
58
|
+
/**
|
|
59
|
+
* Register the role-scoped Prompts channel: one `{role}-session` Prompt per role in `options.roles`
|
|
60
|
+
* (spec-004 §3.1), each embedding that role's directives (§3.2), and the refusals of §3.4.
|
|
27
61
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
62
|
+
* **The role set is fixed; the directives are not** (`dl-049` (b), task-174). `options.roles` is the
|
|
63
|
+
* DNA role set `wingfoil mcp` read once, in its pre-flight, before the server started; it is copied
|
|
64
|
+
* here and never re-read, so `prompts/list` and the undefined-role check read nothing, and a role added
|
|
65
|
+
* to `dna.yaml` while the server runs is served after a restart. The Prompts capability is therefore
|
|
66
|
+
* declared without `listChanged`: the list cannot change during a session. What a Prompt *embeds* is
|
|
67
|
+
* still resolved per request — `roles.yaml` and the directive files are read on every `prompts/get`
|
|
68
|
+
* (spec-004 §3.2, REQ-INT-02's "a newly assigned directive appears on the next session start"). This
|
|
69
|
+
* function itself reads nothing, so `createMcpServer` keeps spec-014 §2's "no I/O at construction".
|
|
34
70
|
*
|
|
35
71
|
* **Why the low-level handlers, not `McpServer.registerPrompt`.** The high-level API answers an
|
|
36
72
|
* unregistered name with its own `Prompt <name> not found` before any WingFoil code runs, so the BDD's
|
|
37
|
-
* `no prompt for undefined role 'wizard'` cannot be expressed through it
|
|
38
|
-
*
|
|
39
|
-
* `
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
73
|
+
* `no prompt for undefined role 'wizard'` cannot be expressed through it. This function therefore owns
|
|
74
|
+
* `prompts/list` and `prompts/get` on `server.server` — the same pattern `./read-only.ts`'s
|
|
75
|
+
* `registerWriteRefusalHandler` uses — and a later `registerPrompt` on the same server fails loudly ("A
|
|
76
|
+
* request handler for prompts/list already exists") instead of being silently shadowed. spec-004 §3.4's
|
|
77
|
+
* two refusals, both `-32602`: a `{role}-session` name whose role is not in the set is `no prompt for
|
|
78
|
+
* undefined role '<role>'`; a name that is not `{role}-session`-shaped names no role and keeps the SDK's
|
|
79
|
+
* `Prompt <name> not found`. A read that fails while a Prompt is built carries the loader's details as
|
|
80
|
+
* `error.data.details`, as a failed Resource read does (`withRefusalDetails`, `bug-184`).
|
|
44
81
|
*
|
|
45
82
|
* Call before the server is connected (MCP capabilities cannot be registered after connecting).
|
|
46
83
|
*/
|
package/dist/mcp/prompt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/mcp/prompt.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/mcp/prompt.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,OAAO,KAAK,EAA4B,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAMjF,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAEzD;AAuCD,6GAA6G;AAC7G,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yGAAyG;IACzG,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAmB/H;AA6HD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,0BAA0B,GAAG,IAAI,CAyChG"}
|