@arimakouyou/spec-workflow-mcp 2.2.7
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/.claude-plugin/.mcp.json +8 -0
- package/.claude-plugin/agents/code-simplifier.md +80 -0
- package/.claude-plugin/agents/integ-test-auditor.md +91 -0
- package/.claude-plugin/agents/integ-test-worker.md +73 -0
- package/.claude-plugin/agents/parallel-worker.md +136 -0
- package/.claude-plugin/agents/review-worker.md +279 -0
- package/.claude-plugin/agents/unit-test-engineer.md +148 -0
- package/.claude-plugin/agents/wave-harness-worker.md +158 -0
- package/.claude-plugin/hooks/hooks.json +16 -0
- package/.claude-plugin/hooks/tasks-read-guard.sh +17 -0
- package/.claude-plugin/marketplace.json +33 -0
- package/.claude-plugin/plugin.json +11 -0
- package/.claude-plugin/rules/axum.md +154 -0
- package/.claude-plugin/rules/cargo-toml.md +63 -0
- package/.claude-plugin/rules/context7.md +17 -0
- package/.claude-plugin/rules/design-conformance.md +82 -0
- package/.claude-plugin/rules/design-principles.md +53 -0
- package/.claude-plugin/rules/diesel.md +176 -0
- package/.claude-plugin/rules/feedback-loop.md +33 -0
- package/.claude-plugin/rules/leptos.md +319 -0
- package/.claude-plugin/rules/project-architecture.md +134 -0
- package/.claude-plugin/rules/quality-checks.md +265 -0
- package/.claude-plugin/rules/rust-style.md +242 -0
- package/.claude-plugin/rules/security.md +67 -0
- package/.claude-plugin/rules/spec-workflow-enforcement.md +47 -0
- package/.claude-plugin/rules/valkey.md +167 -0
- package/.claude-plugin/skills/integration-test/SKILL.md +230 -0
- package/.claude-plugin/skills/integration-test/references/auditor-prompt.md +78 -0
- package/.claude-plugin/skills/integration-test/references/external-api-mock.md +98 -0
- package/.claude-plugin/skills/integration-test/references/fixture-catalog.md +155 -0
- package/.claude-plugin/skills/integration-test/references/parallel-execution.md +124 -0
- package/.claude-plugin/skills/integration-test/references/quality-gate.md +80 -0
- package/.claude-plugin/skills/integration-test/references/test-case-design.md +88 -0
- package/.claude-plugin/skills/integration-test/references/test-patterns.md +215 -0
- package/.claude-plugin/skills/integration-test/references/whiteboard-template.md +81 -0
- package/.claude-plugin/skills/integration-test/references/worker-prompt.md +70 -0
- package/.claude-plugin/skills/knowhow-capture/SKILL.md +143 -0
- package/.claude-plugin/skills/phase-review-team/SKILL.md +380 -0
- package/.claude-plugin/skills/spec-design/SKILL.md +282 -0
- package/.claude-plugin/skills/spec-e2e-implement/SKILL.md +259 -0
- package/.claude-plugin/skills/spec-impl-code/SKILL.md +101 -0
- package/.claude-plugin/skills/spec-impl-review/SKILL.md +115 -0
- package/.claude-plugin/skills/spec-impl-test-run/SKILL.md +98 -0
- package/.claude-plugin/skills/spec-impl-test-write/SKILL.md +121 -0
- package/.claude-plugin/skills/spec-implement/SKILL.md +822 -0
- package/.claude-plugin/skills/spec-requirements/SKILL.md +130 -0
- package/.claude-plugin/skills/spec-review/SKILL.md +274 -0
- package/.claude-plugin/skills/spec-tasks/SKILL.md +372 -0
- package/.claude-plugin/skills/spec-test-design/SKILL.md +233 -0
- package/.claude-plugin/skills/tdd-skills/SKILL.md +95 -0
- package/.claude-plugin/skills/tdd-skills/references/advanced-techniques.md +49 -0
- package/.claude-plugin/skills/tdd-skills/references/green-strategies.md +70 -0
- package/.claude-plugin/skills/tdd-skills/references/tdd-and-design.md +48 -0
- package/.claude-plugin/skills/tdd-skills/references/test-design.md +43 -0
- package/.claude-plugin/skills/tdd-skills/references/test-doubles.md +53 -0
- package/.claude-plugin/skills/tdd-skills/references/test-patterns.md +40 -0
- package/.claude-plugin/skills/tdd-skills-rust/SKILL.md +128 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/advanced-techniques.md +205 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/green-strategies.md +166 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/tdd-and-design.md +215 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/test-design.md +128 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/test-doubles.md +208 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/test-patterns.md +223 -0
- package/.claude-plugin/with-dashboard/.mcp.json +8 -0
- package/.claude-plugin/with-dashboard/plugin.json +10 -0
- package/CHANGELOG.md +1007 -0
- package/LICENSE +674 -0
- package/README.ja.md +380 -0
- package/README.md +437 -0
- package/dist/__tests__/config.test.d.ts +2 -0
- package/dist/__tests__/config.test.d.ts.map +1 -0
- package/dist/__tests__/config.test.js +264 -0
- package/dist/__tests__/config.test.js.map +1 -0
- package/dist/__tests__/index-args.test.d.ts +2 -0
- package/dist/__tests__/index-args.test.d.ts.map +1 -0
- package/dist/__tests__/index-args.test.js +43 -0
- package/dist/__tests__/index-args.test.js.map +1 -0
- package/dist/__tests__/index-entrypoint.test.d.ts +2 -0
- package/dist/__tests__/index-entrypoint.test.d.ts.map +1 -0
- package/dist/__tests__/index-entrypoint.test.js +23 -0
- package/dist/__tests__/index-entrypoint.test.js.map +1 -0
- package/dist/config.d.ts +26 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +188 -0
- package/dist/config.js.map +1 -0
- package/dist/core/__tests__/git-utils.test.d.ts +2 -0
- package/dist/core/__tests__/git-utils.test.d.ts.map +1 -0
- package/dist/core/__tests__/git-utils.test.js +179 -0
- package/dist/core/__tests__/git-utils.test.js.map +1 -0
- package/dist/core/__tests__/mdx-validator.test.d.ts +2 -0
- package/dist/core/__tests__/mdx-validator.test.d.ts.map +1 -0
- package/dist/core/__tests__/mdx-validator.test.js +42 -0
- package/dist/core/__tests__/mdx-validator.test.js.map +1 -0
- package/dist/core/__tests__/path-utils.test.d.ts +2 -0
- package/dist/core/__tests__/path-utils.test.d.ts.map +1 -0
- package/dist/core/__tests__/path-utils.test.js +342 -0
- package/dist/core/__tests__/path-utils.test.js.map +1 -0
- package/dist/core/__tests__/project-registry.test.d.ts +2 -0
- package/dist/core/__tests__/project-registry.test.d.ts.map +1 -0
- package/dist/core/__tests__/project-registry.test.js +62 -0
- package/dist/core/__tests__/project-registry.test.js.map +1 -0
- package/dist/core/__tests__/security-utils.test.d.ts +2 -0
- package/dist/core/__tests__/security-utils.test.d.ts.map +1 -0
- package/dist/core/__tests__/security-utils.test.js +657 -0
- package/dist/core/__tests__/security-utils.test.js.map +1 -0
- package/dist/core/__tests__/task-parser.test.d.ts +2 -0
- package/dist/core/__tests__/task-parser.test.d.ts.map +1 -0
- package/dist/core/__tests__/task-parser.test.js +222 -0
- package/dist/core/__tests__/task-parser.test.js.map +1 -0
- package/dist/core/__tests__/task-validator.test.d.ts +2 -0
- package/dist/core/__tests__/task-validator.test.d.ts.map +1 -0
- package/dist/core/__tests__/task-validator.test.js +308 -0
- package/dist/core/__tests__/task-validator.test.js.map +1 -0
- package/dist/core/archive-service.d.ts +10 -0
- package/dist/core/archive-service.d.ts.map +1 -0
- package/dist/core/archive-service.js +99 -0
- package/dist/core/archive-service.js.map +1 -0
- package/dist/core/dashboard-session.d.ts +49 -0
- package/dist/core/dashboard-session.d.ts.map +1 -0
- package/dist/core/dashboard-session.js +132 -0
- package/dist/core/dashboard-session.js.map +1 -0
- package/dist/core/git-utils.d.ts +25 -0
- package/dist/core/git-utils.d.ts.map +1 -0
- package/dist/core/git-utils.js +87 -0
- package/dist/core/git-utils.js.map +1 -0
- package/dist/core/global-dir.d.ts +44 -0
- package/dist/core/global-dir.d.ts.map +1 -0
- package/dist/core/global-dir.js +74 -0
- package/dist/core/global-dir.js.map +1 -0
- package/dist/core/implementation-log-migrator.d.ts +41 -0
- package/dist/core/implementation-log-migrator.d.ts.map +1 -0
- package/dist/core/implementation-log-migrator.js +258 -0
- package/dist/core/implementation-log-migrator.js.map +1 -0
- package/dist/core/mdx-validator.d.ts +14 -0
- package/dist/core/mdx-validator.d.ts.map +1 -0
- package/dist/core/mdx-validator.js +34 -0
- package/dist/core/mdx-validator.js.map +1 -0
- package/dist/core/parser.d.ts +11 -0
- package/dist/core/parser.d.ts.map +1 -0
- package/dist/core/parser.js +128 -0
- package/dist/core/parser.js.map +1 -0
- package/dist/core/path-utils.d.ts +68 -0
- package/dist/core/path-utils.d.ts.map +1 -0
- package/dist/core/path-utils.js +302 -0
- package/dist/core/path-utils.js.map +1 -0
- package/dist/core/project-registry.d.ts +94 -0
- package/dist/core/project-registry.d.ts.map +1 -0
- package/dist/core/project-registry.js +297 -0
- package/dist/core/project-registry.js.map +1 -0
- package/dist/core/security-utils.d.ts +99 -0
- package/dist/core/security-utils.d.ts.map +1 -0
- package/dist/core/security-utils.js +275 -0
- package/dist/core/security-utils.js.map +1 -0
- package/dist/core/task-parser.d.ts +90 -0
- package/dist/core/task-parser.d.ts.map +1 -0
- package/dist/core/task-parser.js +477 -0
- package/dist/core/task-parser.js.map +1 -0
- package/dist/core/task-validator.d.ts +37 -0
- package/dist/core/task-validator.d.ts.map +1 -0
- package/dist/core/task-validator.js +499 -0
- package/dist/core/task-validator.js.map +1 -0
- package/dist/core/workspace-initializer.d.ts +16 -0
- package/dist/core/workspace-initializer.d.ts.map +1 -0
- package/dist/core/workspace-initializer.js +168 -0
- package/dist/core/workspace-initializer.js.map +1 -0
- package/dist/dashboard/__tests__/approval-storage-path-resolution.test.d.ts +2 -0
- package/dist/dashboard/__tests__/approval-storage-path-resolution.test.d.ts.map +1 -0
- package/dist/dashboard/__tests__/approval-storage-path-resolution.test.js +78 -0
- package/dist/dashboard/__tests__/approval-storage-path-resolution.test.js.map +1 -0
- package/dist/dashboard/__tests__/multi-server-approvals-content.test.d.ts +2 -0
- package/dist/dashboard/__tests__/multi-server-approvals-content.test.d.ts.map +1 -0
- package/dist/dashboard/__tests__/multi-server-approvals-content.test.js +115 -0
- package/dist/dashboard/__tests__/multi-server-approvals-content.test.js.map +1 -0
- package/dist/dashboard/__tests__/watcher-error-handling.test.d.ts +2 -0
- package/dist/dashboard/__tests__/watcher-error-handling.test.d.ts.map +1 -0
- package/dist/dashboard/__tests__/watcher-error-handling.test.js +118 -0
- package/dist/dashboard/__tests__/watcher-error-handling.test.js.map +1 -0
- package/dist/dashboard/approval-storage.d.ts +139 -0
- package/dist/dashboard/approval-storage.d.ts.map +1 -0
- package/dist/dashboard/approval-storage.js +608 -0
- package/dist/dashboard/approval-storage.js.map +1 -0
- package/dist/dashboard/execution-history-manager.d.ts +52 -0
- package/dist/dashboard/execution-history-manager.d.ts.map +1 -0
- package/dist/dashboard/execution-history-manager.js +161 -0
- package/dist/dashboard/execution-history-manager.js.map +1 -0
- package/dist/dashboard/implementation-log-manager.d.ts +97 -0
- package/dist/dashboard/implementation-log-manager.d.ts.map +1 -0
- package/dist/dashboard/implementation-log-manager.js +617 -0
- package/dist/dashboard/implementation-log-manager.js.map +1 -0
- package/dist/dashboard/job-scheduler.d.ts +91 -0
- package/dist/dashboard/job-scheduler.d.ts.map +1 -0
- package/dist/dashboard/job-scheduler.js +321 -0
- package/dist/dashboard/job-scheduler.js.map +1 -0
- package/dist/dashboard/multi-server.d.ts +42 -0
- package/dist/dashboard/multi-server.d.ts.map +1 -0
- package/dist/dashboard/multi-server.js +1460 -0
- package/dist/dashboard/multi-server.js.map +1 -0
- package/dist/dashboard/parser.d.ts +18 -0
- package/dist/dashboard/parser.d.ts.map +1 -0
- package/dist/dashboard/parser.js +269 -0
- package/dist/dashboard/parser.js.map +1 -0
- package/dist/dashboard/project-manager.d.ts +82 -0
- package/dist/dashboard/project-manager.d.ts.map +1 -0
- package/dist/dashboard/project-manager.js +257 -0
- package/dist/dashboard/project-manager.js.map +1 -0
- package/dist/dashboard/public/assets/Inter-Bold-CD3Pr7BX.woff2 +0 -0
- package/dist/dashboard/public/assets/Inter-Medium-B_8v_WHh.woff2 +0 -0
- package/dist/dashboard/public/assets/Inter-Regular-DRVdRqcI.woff2 +0 -0
- package/dist/dashboard/public/assets/Inter-SemiBold-CtskMddL.woff2 +0 -0
- package/dist/dashboard/public/assets/JetBrainsMono-Bold-D4WEaHbo.woff2 +0 -0
- package/dist/dashboard/public/assets/JetBrainsMono-Medium-3S3k2nMz.woff2 +0 -0
- package/dist/dashboard/public/assets/JetBrainsMono-Regular-BQaDgvhP.woff2 +0 -0
- package/dist/dashboard/public/assets/Tableau10-B-NsZVaP.js +1 -0
- package/dist/dashboard/public/assets/apl-B4CMkyY2.js +1 -0
- package/dist/dashboard/public/assets/arc-a5wW942W.js +1 -0
- package/dist/dashboard/public/assets/array-BKyUJesY.js +1 -0
- package/dist/dashboard/public/assets/asciiarmor-Df11BRmG.js +1 -0
- package/dist/dashboard/public/assets/asn1-EdZsLKOL.js +1 -0
- package/dist/dashboard/public/assets/asterisk-B-8jnY81.js +1 -0
- package/dist/dashboard/public/assets/blockDiagram-c4efeb88-CvjTuK-w.js +118 -0
- package/dist/dashboard/public/assets/brainfuck-C4LP7Hcl.js +1 -0
- package/dist/dashboard/public/assets/c4Diagram-c83219d4-NwVQo5kf.js +10 -0
- package/dist/dashboard/public/assets/channel-Bi16YZhk.js +1 -0
- package/dist/dashboard/public/assets/classDiagram-beda092f-BmSeXDdU.js +2 -0
- package/dist/dashboard/public/assets/classDiagram-v2-2358418a-D7GvvuPr.js +2 -0
- package/dist/dashboard/public/assets/clike-B9uivgTg.js +1 -0
- package/dist/dashboard/public/assets/clojure-BMjYHr_A.js +1 -0
- package/dist/dashboard/public/assets/clone-BpKTiq7P.js +1 -0
- package/dist/dashboard/public/assets/cmake-BQqOBYOt.js +1 -0
- package/dist/dashboard/public/assets/cobol-CWcv1MsR.js +1 -0
- package/dist/dashboard/public/assets/coffeescript-S37ZYGWr.js +1 -0
- package/dist/dashboard/public/assets/commonlisp-DBKNyK5s.js +1 -0
- package/dist/dashboard/public/assets/createText-1719965b-qASbqHUP.js +7 -0
- package/dist/dashboard/public/assets/crystal-SjHAIU92.js +1 -0
- package/dist/dashboard/public/assets/css-BnMrqG3P.js +1 -0
- package/dist/dashboard/public/assets/cypher-C_CwsFkJ.js +1 -0
- package/dist/dashboard/public/assets/d-pRatUO7H.js +1 -0
- package/dist/dashboard/public/assets/diff-DbItnlRl.js +1 -0
- package/dist/dashboard/public/assets/dockerfile-BKs6k2Af.js +1 -0
- package/dist/dashboard/public/assets/dtd-DF_7sFjM.js +1 -0
- package/dist/dashboard/public/assets/dylan-DwRh75JA.js +1 -0
- package/dist/dashboard/public/assets/ebnf-CDyGwa7X.js +1 -0
- package/dist/dashboard/public/assets/ecl-Cabwm37j.js +1 -0
- package/dist/dashboard/public/assets/edges-96097737-BItTSnH7.js +4 -0
- package/dist/dashboard/public/assets/eiffel-CnydiIhH.js +1 -0
- package/dist/dashboard/public/assets/elm-vLlmbW-K.js +1 -0
- package/dist/dashboard/public/assets/erDiagram-0228fc6a-DT224olg.js +51 -0
- package/dist/dashboard/public/assets/erlang-BNw1qcRV.js +1 -0
- package/dist/dashboard/public/assets/factor-kuTfRLto.js +1 -0
- package/dist/dashboard/public/assets/fcl-Kvtd6kyn.js +1 -0
- package/dist/dashboard/public/assets/flowDb-c6c81e3f-D9_ukKtv.js +10 -0
- package/dist/dashboard/public/assets/flowDiagram-50d868cf-CylE8siG.js +4 -0
- package/dist/dashboard/public/assets/flowDiagram-v2-4f6560a1-B2O3JN7Y.js +1 -0
- package/dist/dashboard/public/assets/flowchart-elk-definition-6af322e1-BCaqFKf3.js +139 -0
- package/dist/dashboard/public/assets/forth-Ffai-XNe.js +1 -0
- package/dist/dashboard/public/assets/fortran-DYz_wnZ1.js +1 -0
- package/dist/dashboard/public/assets/ganttDiagram-a2739b55-WQUL1QW_.js +257 -0
- package/dist/dashboard/public/assets/gas-Bneqetm1.js +1 -0
- package/dist/dashboard/public/assets/gherkin-heZmZLOM.js +1 -0
- package/dist/dashboard/public/assets/gitGraphDiagram-82fe8481-CttZrdmr.js +70 -0
- package/dist/dashboard/public/assets/graph-Ch-rVueN.js +1 -0
- package/dist/dashboard/public/assets/groovy-D9Dt4D0W.js +1 -0
- package/dist/dashboard/public/assets/haskell-Cw1EW3IL.js +1 -0
- package/dist/dashboard/public/assets/haxe-H-WmDvRZ.js +1 -0
- package/dist/dashboard/public/assets/http-DBlCnlav.js +1 -0
- package/dist/dashboard/public/assets/idl-BEugSyMb.js +1 -0
- package/dist/dashboard/public/assets/index--kbPpDKv.js +1 -0
- package/dist/dashboard/public/assets/index-3scDwWm6.js +1 -0
- package/dist/dashboard/public/assets/index-5325376f-BL2zVOJU.js +1 -0
- package/dist/dashboard/public/assets/index-BZdjbO25.js +1 -0
- package/dist/dashboard/public/assets/index-BmA_batZ.js +1 -0
- package/dist/dashboard/public/assets/index-Bu0u99kF.js +2 -0
- package/dist/dashboard/public/assets/index-Ch-lr7F4.js +1 -0
- package/dist/dashboard/public/assets/index-ClgWbdoq.js +1 -0
- package/dist/dashboard/public/assets/index-CzLwOMQ_.js +3 -0
- package/dist/dashboard/public/assets/index-DAOEjGO7.js +1 -0
- package/dist/dashboard/public/assets/index-DXqf0B9c.js +1 -0
- package/dist/dashboard/public/assets/index-DegWdR16.js +1 -0
- package/dist/dashboard/public/assets/index-DiHyYGim.js +1 -0
- package/dist/dashboard/public/assets/index-DlZtG7I5.js +1 -0
- package/dist/dashboard/public/assets/index-DmhGE2M8.js +1 -0
- package/dist/dashboard/public/assets/index-QEGvld4x.js +1 -0
- package/dist/dashboard/public/assets/index-RfZPGAJu.js +1 -0
- package/dist/dashboard/public/assets/index-UybBj_7u.js +319 -0
- package/dist/dashboard/public/assets/index-bVekzPnl.js +7 -0
- package/dist/dashboard/public/assets/index-f5bysQzW.css +1 -0
- package/dist/dashboard/public/assets/infoDiagram-8eee0895-DjzkkE3o.js +7 -0
- package/dist/dashboard/public/assets/init-Gi6I4Gst.js +1 -0
- package/dist/dashboard/public/assets/javascript-iXu5QeM3.js +1 -0
- package/dist/dashboard/public/assets/journeyDiagram-c64418c1-CxPZkNdB.js +139 -0
- package/dist/dashboard/public/assets/julia-DuME0IfC.js +1 -0
- package/dist/dashboard/public/assets/katex-XbL3y5x-.js +261 -0
- package/dist/dashboard/public/assets/layout-DX7DNTRm.js +1 -0
- package/dist/dashboard/public/assets/line-DfvpmKOn.js +1 -0
- package/dist/dashboard/public/assets/linear-gQbBPHO5.js +1 -0
- package/dist/dashboard/public/assets/livescript-BwQOo05w.js +1 -0
- package/dist/dashboard/public/assets/lua-BgMRiT3U.js +1 -0
- package/dist/dashboard/public/assets/mathematica-DTrFuWx2.js +1 -0
- package/dist/dashboard/public/assets/mbox-CNhZ1qSd.js +1 -0
- package/dist/dashboard/public/assets/mindmap-definition-8da855dc-CNxmpyG6.js +415 -0
- package/dist/dashboard/public/assets/mirc-CjQqDB4T.js +1 -0
- package/dist/dashboard/public/assets/mllike-CXdrOF99.js +1 -0
- package/dist/dashboard/public/assets/modelica-Dc1JOy9r.js +1 -0
- package/dist/dashboard/public/assets/mscgen-BA5vi2Kp.js +1 -0
- package/dist/dashboard/public/assets/mumps-BT43cFF4.js +1 -0
- package/dist/dashboard/public/assets/nginx-DdIZxoE0.js +1 -0
- package/dist/dashboard/public/assets/nsis-LdVXkNf5.js +1 -0
- package/dist/dashboard/public/assets/ntriples-BfvgReVJ.js +1 -0
- package/dist/dashboard/public/assets/octave-Ck1zUtKM.js +1 -0
- package/dist/dashboard/public/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/dashboard/public/assets/oz-BzwKVEFT.js +1 -0
- package/dist/dashboard/public/assets/pascal--L3eBynH.js +1 -0
- package/dist/dashboard/public/assets/path-CbwjOpE9.js +1 -0
- package/dist/dashboard/public/assets/perl-CdXCOZ3F.js +1 -0
- package/dist/dashboard/public/assets/pieDiagram-a8764435-D-xy_NSA.js +35 -0
- package/dist/dashboard/public/assets/pig-CevX1Tat.js +1 -0
- package/dist/dashboard/public/assets/powershell-CFHJl5sT.js +1 -0
- package/dist/dashboard/public/assets/properties-C78fOPTZ.js +1 -0
- package/dist/dashboard/public/assets/protobuf-ChK-085T.js +1 -0
- package/dist/dashboard/public/assets/pug-DeIclll2.js +1 -0
- package/dist/dashboard/public/assets/puppet-DMA9R1ak.js +1 -0
- package/dist/dashboard/public/assets/python-BuPzkPfP.js +1 -0
- package/dist/dashboard/public/assets/q-pXgVlZs6.js +1 -0
- package/dist/dashboard/public/assets/quadrantDiagram-1e28029f-BoL2wzz0.js +7 -0
- package/dist/dashboard/public/assets/r-B6wPVr8A.js +1 -0
- package/dist/dashboard/public/assets/requirementDiagram-08caed73-BujFz0q1.js +52 -0
- package/dist/dashboard/public/assets/rpm-CTu-6PCP.js +1 -0
- package/dist/dashboard/public/assets/ruby-B2Rjki9n.js +1 -0
- package/dist/dashboard/public/assets/sankeyDiagram-a04cb91d-D03_NARm.js +8 -0
- package/dist/dashboard/public/assets/sas-B4kiWyti.js +1 -0
- package/dist/dashboard/public/assets/scheme-C41bIUwD.js +1 -0
- package/dist/dashboard/public/assets/sequenceDiagram-c5b8d532-B65eFcaT.js +122 -0
- package/dist/dashboard/public/assets/shell-CjFT_Tl9.js +1 -0
- package/dist/dashboard/public/assets/sieve-C3Gn_uJK.js +1 -0
- package/dist/dashboard/public/assets/simple-mode-GW_nhZxv.js +1 -0
- package/dist/dashboard/public/assets/smalltalk-CnHTOXQT.js +1 -0
- package/dist/dashboard/public/assets/solr-DehyRSwq.js +1 -0
- package/dist/dashboard/public/assets/sparql-DkYu6x3z.js +1 -0
- package/dist/dashboard/public/assets/spreadsheet-BCZA_wO0.js +1 -0
- package/dist/dashboard/public/assets/sql-D0XecflT.js +1 -0
- package/dist/dashboard/public/assets/stateDiagram-1ecb1508-BDbqu0Vl.js +1 -0
- package/dist/dashboard/public/assets/stateDiagram-v2-c2b004d7-CBHvk4b8.js +1 -0
- package/dist/dashboard/public/assets/stex-C3f8Ysf7.js +1 -0
- package/dist/dashboard/public/assets/styles-b4e223ce-CELsPqaO.js +160 -0
- package/dist/dashboard/public/assets/styles-ca3715f6-BRqMqT6F.js +207 -0
- package/dist/dashboard/public/assets/styles-d45a18b0-e8N-oLPy.js +116 -0
- package/dist/dashboard/public/assets/stylus-B533Al4x.js +1 -0
- package/dist/dashboard/public/assets/svgDrawCommon-b86b1483-vNDtmQc-.js +1 -0
- package/dist/dashboard/public/assets/swift-BzpIVaGY.js +1 -0
- package/dist/dashboard/public/assets/tcl-DVfN8rqt.js +1 -0
- package/dist/dashboard/public/assets/textile-CnDTJFAw.js +1 -0
- package/dist/dashboard/public/assets/tiddlywiki-DO-Gjzrf.js +1 -0
- package/dist/dashboard/public/assets/tiki-DGYXhP31.js +1 -0
- package/dist/dashboard/public/assets/timeline-definition-faaaa080-Dh2_A5VU.js +61 -0
- package/dist/dashboard/public/assets/toml-Bm5Em-hy.js +1 -0
- package/dist/dashboard/public/assets/troff-wAsdV37c.js +1 -0
- package/dist/dashboard/public/assets/ttcn-CfJYG6tj.js +1 -0
- package/dist/dashboard/public/assets/ttcn-cfg-B9xdYoR4.js +1 -0
- package/dist/dashboard/public/assets/turtle-B1tBg_DP.js +1 -0
- package/dist/dashboard/public/assets/vb-CmGdzxic.js +1 -0
- package/dist/dashboard/public/assets/vbscript-BuJXcnF6.js +1 -0
- package/dist/dashboard/public/assets/velocity-D8B20fx6.js +1 -0
- package/dist/dashboard/public/assets/verilog-C6RDOZhf.js +1 -0
- package/dist/dashboard/public/assets/vhdl-lSbBsy5d.js +1 -0
- package/dist/dashboard/public/assets/webidl-ZXfAyPTL.js +1 -0
- package/dist/dashboard/public/assets/xquery-DzFWVndE.js +1 -0
- package/dist/dashboard/public/assets/xychartDiagram-f5964ef8-B76v1AVF.js +7 -0
- package/dist/dashboard/public/assets/yacas-BJ4BC0dw.js +1 -0
- package/dist/dashboard/public/assets/z80-Hz9HOZM7.js +1 -0
- package/dist/dashboard/public/claude-icon-dark.svg +1 -0
- package/dist/dashboard/public/claude-icon.svg +1 -0
- package/dist/dashboard/public/index.html +16 -0
- package/dist/dashboard/settings-manager.d.ts +47 -0
- package/dist/dashboard/settings-manager.d.ts.map +1 -0
- package/dist/dashboard/settings-manager.js +180 -0
- package/dist/dashboard/settings-manager.js.map +1 -0
- package/dist/dashboard/utils.d.ts +31 -0
- package/dist/dashboard/utils.d.ts.map +1 -0
- package/dist/dashboard/utils.js +102 -0
- package/dist/dashboard/utils.js.map +1 -0
- package/dist/dashboard/watcher.d.ts +32 -0
- package/dist/dashboard/watcher.d.ts.map +1 -0
- package/dist/dashboard/watcher.js +173 -0
- package/dist/dashboard/watcher.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +380 -0
- package/dist/index.js.map +1 -0
- package/dist/markdown/templates/design-template.md +126 -0
- package/dist/markdown/templates/product-template.md +51 -0
- package/dist/markdown/templates/requirements-template.md +50 -0
- package/dist/markdown/templates/structure-template.md +145 -0
- package/dist/markdown/templates/tasks-template.md +100 -0
- package/dist/markdown/templates/tech-template.md +99 -0
- package/dist/markdown/templates/test-design-template.md +221 -0
- package/dist/prompts/create-spec.d.ts +3 -0
- package/dist/prompts/create-spec.d.ts.map +1 -0
- package/dist/prompts/create-spec.js +97 -0
- package/dist/prompts/create-spec.js.map +1 -0
- package/dist/prompts/create-steering-doc.d.ts +3 -0
- package/dist/prompts/create-steering-doc.d.ts.map +1 -0
- package/dist/prompts/create-steering-doc.js +75 -0
- package/dist/prompts/create-steering-doc.js.map +1 -0
- package/dist/prompts/implement-task.d.ts +3 -0
- package/dist/prompts/implement-task.d.ts.map +1 -0
- package/dist/prompts/implement-task.js +174 -0
- package/dist/prompts/implement-task.js.map +1 -0
- package/dist/prompts/index.d.ts +20 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +103 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/inject-spec-workflow-guide.d.ts +3 -0
- package/dist/prompts/inject-spec-workflow-guide.d.ts.map +1 -0
- package/dist/prompts/inject-spec-workflow-guide.js +60 -0
- package/dist/prompts/inject-spec-workflow-guide.js.map +1 -0
- package/dist/prompts/inject-steering-guide.d.ts +3 -0
- package/dist/prompts/inject-steering-guide.d.ts.map +1 -0
- package/dist/prompts/inject-steering-guide.js +64 -0
- package/dist/prompts/inject-steering-guide.js.map +1 -0
- package/dist/prompts/refresh-tasks.d.ts +3 -0
- package/dist/prompts/refresh-tasks.d.ts.map +1 -0
- package/dist/prompts/refresh-tasks.js +237 -0
- package/dist/prompts/refresh-tasks.js.map +1 -0
- package/dist/prompts/spec-status.d.ts +3 -0
- package/dist/prompts/spec-status.d.ts.map +1 -0
- package/dist/prompts/spec-status.js +77 -0
- package/dist/prompts/spec-status.js.map +1 -0
- package/dist/prompts/types.d.ts +13 -0
- package/dist/prompts/types.d.ts.map +1 -0
- package/dist/prompts/types.js +2 -0
- package/dist/prompts/types.js.map +1 -0
- package/dist/server.d.ts +17 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +175 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/__tests__/log-implementation-review-process.test.d.ts +2 -0
- package/dist/tools/__tests__/log-implementation-review-process.test.d.ts.map +1 -0
- package/dist/tools/__tests__/log-implementation-review-process.test.js +190 -0
- package/dist/tools/__tests__/log-implementation-review-process.test.js.map +1 -0
- package/dist/tools/__tests__/projectPath.test.d.ts +2 -0
- package/dist/tools/__tests__/projectPath.test.d.ts.map +1 -0
- package/dist/tools/__tests__/projectPath.test.js +187 -0
- package/dist/tools/__tests__/projectPath.test.js.map +1 -0
- package/dist/tools/approvals.d.ts +14 -0
- package/dist/tools/approvals.d.ts.map +1 -0
- package/dist/tools/approvals.js +505 -0
- package/dist/tools/approvals.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +52 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/log-implementation.d.ts +5 -0
- package/dist/tools/log-implementation.d.ts.map +1 -0
- package/dist/tools/log-implementation.js +498 -0
- package/dist/tools/log-implementation.js.map +1 -0
- package/dist/tools/spec-status.d.ts +5 -0
- package/dist/tools/spec-status.d.ts.map +1 -0
- package/dist/tools/spec-status.js +192 -0
- package/dist/tools/spec-status.js.map +1 -0
- package/dist/tools/spec-workflow-guide.d.ts +5 -0
- package/dist/tools/spec-workflow-guide.d.ts.map +1 -0
- package/dist/tools/spec-workflow-guide.js +116 -0
- package/dist/tools/spec-workflow-guide.js.map +1 -0
- package/dist/tools/steering-guide.d.ts +5 -0
- package/dist/tools/steering-guide.d.ts.map +1 -0
- package/dist/tools/steering-guide.js +192 -0
- package/dist/tools/steering-guide.js.map +1 -0
- package/dist/types.d.ts +183 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -0
- package/package.json +106 -0
|
@@ -0,0 +1,505 @@
|
|
|
1
|
+
import { ApprovalStorage } from '../dashboard/approval-storage.js';
|
|
2
|
+
import { join, isAbsolute } from 'path';
|
|
3
|
+
import { validateProjectPath, PathUtils } from '../core/path-utils.js';
|
|
4
|
+
import { readFile } from 'fs/promises';
|
|
5
|
+
import { validateTasksMarkdown, formatValidationErrors } from '../core/task-validator.js';
|
|
6
|
+
import { validateMarkdownForMdx, formatMdxValidationIssues } from '../core/mdx-validator.js';
|
|
7
|
+
/**
|
|
8
|
+
* Safely translate a path, with defensive checks to provide better error messages
|
|
9
|
+
* in case of module loading issues.
|
|
10
|
+
*
|
|
11
|
+
* Note: The original issue reported "PathUtils.translatePath is not a function" on Windows.
|
|
12
|
+
* While we couldn't reproduce it, this defensive check ensures a clear error message
|
|
13
|
+
* is provided if such edge cases occur.
|
|
14
|
+
*/
|
|
15
|
+
function safeTranslatePath(path) {
|
|
16
|
+
// Defensive check: ensure translatePath method exists and is callable
|
|
17
|
+
// This handles edge cases where the class might be partially initialized
|
|
18
|
+
if (typeof PathUtils?.translatePath !== 'function') {
|
|
19
|
+
throw new Error(`PathUtils.translatePath is not available (got ${typeof PathUtils?.translatePath}). ` +
|
|
20
|
+
'This may indicate a module loading issue. Please reinstall the package with: ' +
|
|
21
|
+
'npm uninstall @arimakouyou/spec-workflow-mcp && npm install @arimakouyou/spec-workflow-mcp');
|
|
22
|
+
}
|
|
23
|
+
return PathUtils.translatePath(path);
|
|
24
|
+
}
|
|
25
|
+
export const approvalsTool = {
|
|
26
|
+
name: 'approvals',
|
|
27
|
+
description: `Manage approval requests through the dashboard interface.
|
|
28
|
+
|
|
29
|
+
# Instructions
|
|
30
|
+
Use this tool to request, check status, or delete approval requests. The action parameter determines the operation:
|
|
31
|
+
- 'request': Create a new approval request after creating each document
|
|
32
|
+
- 'status': Check the current status of an approval request
|
|
33
|
+
- 'delete': Clean up completed, rejected, or needs-revision approval requests (cannot delete pending requests)
|
|
34
|
+
|
|
35
|
+
CRITICAL: Only provide filePath parameter for requests - the dashboard reads files directly. Never include document content. Wait for user to review and approve before continuing.`,
|
|
36
|
+
inputSchema: {
|
|
37
|
+
type: 'object',
|
|
38
|
+
properties: {
|
|
39
|
+
action: {
|
|
40
|
+
type: 'string',
|
|
41
|
+
enum: ['request', 'status', 'delete'],
|
|
42
|
+
description: 'The action to perform: request, status, or delete'
|
|
43
|
+
},
|
|
44
|
+
projectPath: {
|
|
45
|
+
type: 'string',
|
|
46
|
+
description: 'Absolute path to the project root (optional - uses server context path if not provided)'
|
|
47
|
+
},
|
|
48
|
+
approvalId: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
description: 'The ID of the approval request (required for status and delete actions)'
|
|
51
|
+
},
|
|
52
|
+
title: {
|
|
53
|
+
type: 'string',
|
|
54
|
+
description: 'Brief title describing what needs approval (required for request action)'
|
|
55
|
+
},
|
|
56
|
+
filePath: {
|
|
57
|
+
type: 'string',
|
|
58
|
+
description: 'Path to the file that needs approval, relative to project root (required for request action)'
|
|
59
|
+
},
|
|
60
|
+
type: {
|
|
61
|
+
type: 'string',
|
|
62
|
+
enum: ['document', 'action'],
|
|
63
|
+
description: 'Type of approval request - "document" for content approval, "action" for action approval (required for request)'
|
|
64
|
+
},
|
|
65
|
+
category: {
|
|
66
|
+
type: 'string',
|
|
67
|
+
enum: ['spec', 'steering'],
|
|
68
|
+
description: 'Category of the approval request - "spec" for specifications, "steering" for steering documents (required for request)'
|
|
69
|
+
},
|
|
70
|
+
categoryName: {
|
|
71
|
+
type: 'string',
|
|
72
|
+
description: 'Name of the spec or "steering" for steering documents (required for request)'
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
required: ['action']
|
|
76
|
+
},
|
|
77
|
+
annotations: {
|
|
78
|
+
title: 'Approvals',
|
|
79
|
+
destructiveHint: true,
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
// Type guard functions
|
|
83
|
+
function isRequestApproval(args) {
|
|
84
|
+
return args.action === 'request';
|
|
85
|
+
}
|
|
86
|
+
function isStatusApproval(args) {
|
|
87
|
+
return args.action === 'status';
|
|
88
|
+
}
|
|
89
|
+
function isDeleteApproval(args) {
|
|
90
|
+
return args.action === 'delete';
|
|
91
|
+
}
|
|
92
|
+
export async function approvalsHandler(args, context) {
|
|
93
|
+
// Cast to discriminated union type
|
|
94
|
+
const typedArgs = args;
|
|
95
|
+
switch (typedArgs.action) {
|
|
96
|
+
case 'request':
|
|
97
|
+
if (isRequestApproval(typedArgs)) {
|
|
98
|
+
// Validate required fields for request
|
|
99
|
+
if (!args.title || !args.filePath || !args.type || !args.category || !args.categoryName) {
|
|
100
|
+
return {
|
|
101
|
+
success: false,
|
|
102
|
+
message: 'Missing required fields for request action. Required: title, filePath, type, category, categoryName'
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
return handleRequestApproval(typedArgs, context);
|
|
106
|
+
}
|
|
107
|
+
break;
|
|
108
|
+
case 'status':
|
|
109
|
+
if (isStatusApproval(typedArgs)) {
|
|
110
|
+
// Validate required fields for status
|
|
111
|
+
if (!args.approvalId) {
|
|
112
|
+
return {
|
|
113
|
+
success: false,
|
|
114
|
+
message: 'Missing required field for status action. Required: approvalId'
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
return handleGetApprovalStatus(typedArgs, context);
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
120
|
+
case 'delete':
|
|
121
|
+
if (isDeleteApproval(typedArgs)) {
|
|
122
|
+
// Validate required fields for delete
|
|
123
|
+
if (!args.approvalId) {
|
|
124
|
+
return {
|
|
125
|
+
success: false,
|
|
126
|
+
message: 'Missing required field for delete action. Required: approvalId'
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return handleDeleteApproval(typedArgs, context);
|
|
130
|
+
}
|
|
131
|
+
break;
|
|
132
|
+
default:
|
|
133
|
+
return {
|
|
134
|
+
success: false,
|
|
135
|
+
message: `Unknown action: ${args.action}. Use 'request', 'status', or 'delete'.`
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
// This should never be reached due to exhaustive type checking
|
|
139
|
+
return {
|
|
140
|
+
success: false,
|
|
141
|
+
message: 'Invalid action configuration'
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
async function handleRequestApproval(args, context) {
|
|
145
|
+
// Use context projectPath as default, allow override via args
|
|
146
|
+
const projectPath = args.projectPath || context.projectPath;
|
|
147
|
+
if (!projectPath) {
|
|
148
|
+
return {
|
|
149
|
+
success: false,
|
|
150
|
+
message: 'Project path is required but not provided in context or arguments'
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
try {
|
|
154
|
+
// Validate and resolve project path
|
|
155
|
+
const validatedProjectPath = await validateProjectPath(projectPath);
|
|
156
|
+
// Translate path at tool entry point (ApprovalStorage expects pre-translated paths)
|
|
157
|
+
const translatedPath = safeTranslatePath(validatedProjectPath);
|
|
158
|
+
const approvalStorage = new ApprovalStorage(translatedPath, {
|
|
159
|
+
originalPath: validatedProjectPath,
|
|
160
|
+
fileResolutionPath: translatedPath
|
|
161
|
+
});
|
|
162
|
+
await approvalStorage.start();
|
|
163
|
+
// Security: Validate filePath to prevent arbitrary file reads
|
|
164
|
+
if (isAbsolute(args.filePath)) {
|
|
165
|
+
await approvalStorage.stop();
|
|
166
|
+
return {
|
|
167
|
+
success: false,
|
|
168
|
+
message: 'Security error: absolute paths are not allowed for filePath. Use a path relative to the project root.'
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
if (args.filePath.includes('..')) {
|
|
172
|
+
await approvalStorage.stop();
|
|
173
|
+
return {
|
|
174
|
+
success: false,
|
|
175
|
+
message: 'Security error: path traversal (..) is not allowed in filePath. Use a path relative to the project root.'
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
const isMarkdownFile = args.filePath.toLowerCase().endsWith('.md');
|
|
179
|
+
let markdownContent;
|
|
180
|
+
if (isMarkdownFile) {
|
|
181
|
+
try {
|
|
182
|
+
const fullPath = PathUtils.safeJoin(validatedProjectPath, args.filePath);
|
|
183
|
+
markdownContent = await readFile(fullPath, 'utf-8');
|
|
184
|
+
}
|
|
185
|
+
catch (fileError) {
|
|
186
|
+
await approvalStorage.stop();
|
|
187
|
+
const errorMessage = fileError instanceof Error ? fileError.message : String(fileError);
|
|
188
|
+
return {
|
|
189
|
+
success: false,
|
|
190
|
+
message: `Failed to read markdown file for validation: ${errorMessage}`
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
const mdxValidation = await validateMarkdownForMdx(markdownContent);
|
|
194
|
+
if (!mdxValidation.valid) {
|
|
195
|
+
await approvalStorage.stop();
|
|
196
|
+
const formattedIssues = formatMdxValidationIssues(mdxValidation.issues);
|
|
197
|
+
return {
|
|
198
|
+
success: false,
|
|
199
|
+
message: 'Markdown file has MDX compatibility errors that must be fixed before approval',
|
|
200
|
+
data: {
|
|
201
|
+
errorCount: mdxValidation.issues.length,
|
|
202
|
+
summary: {
|
|
203
|
+
totalIssues: mdxValidation.issues.length,
|
|
204
|
+
rules: [...new Set(mdxValidation.issues.map(issue => issue.ruleId))]
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
nextSteps: [
|
|
208
|
+
'Fix MDX compatibility issues listed below',
|
|
209
|
+
'For literal comparisons (for example "<5%"), use "<5%" or inline code (`<5%`)',
|
|
210
|
+
'Re-request approval after fixing',
|
|
211
|
+
...formattedIssues
|
|
212
|
+
]
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
// Validate tasks.md format before allowing approval request
|
|
217
|
+
if (args.filePath.endsWith('tasks.md')) {
|
|
218
|
+
const content = markdownContent ?? await readFile(PathUtils.safeJoin(validatedProjectPath, args.filePath), 'utf-8');
|
|
219
|
+
const validationResult = validateTasksMarkdown(content);
|
|
220
|
+
if (!validationResult.valid) {
|
|
221
|
+
await approvalStorage.stop();
|
|
222
|
+
const errorMessages = formatValidationErrors(validationResult);
|
|
223
|
+
return {
|
|
224
|
+
success: false,
|
|
225
|
+
message: 'Tasks document has format errors that must be fixed before approval',
|
|
226
|
+
data: {
|
|
227
|
+
errorCount: validationResult.errors.length,
|
|
228
|
+
warningCount: validationResult.warnings.length,
|
|
229
|
+
summary: validationResult.summary
|
|
230
|
+
},
|
|
231
|
+
nextSteps: [
|
|
232
|
+
'Fix the format errors listed below',
|
|
233
|
+
'Ensure each task has: checkbox (- [ ]), numeric ID (1.1), description',
|
|
234
|
+
'Ensure metadata uses underscores: _Requirements: ..._',
|
|
235
|
+
'Ensure _Prompt ends with underscore',
|
|
236
|
+
'Re-request approval after fixing',
|
|
237
|
+
...errorMessages
|
|
238
|
+
]
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
// If there are warnings, include them but allow approval to proceed
|
|
242
|
+
if (validationResult.warnings.length > 0) {
|
|
243
|
+
// Warnings don't block approval, but will be included in the response
|
|
244
|
+
// This allows the user to see potential issues while still proceeding
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
const approvalId = await approvalStorage.createApproval(args.title, args.filePath, args.category, args.categoryName, args.type);
|
|
248
|
+
await approvalStorage.stop();
|
|
249
|
+
// Build deeplink URL that navigates directly to this specific approval
|
|
250
|
+
const deeplink = context.dashboardUrl
|
|
251
|
+
? `${context.dashboardUrl}/approvals?id=${encodeURIComponent(approvalId)}`
|
|
252
|
+
: undefined;
|
|
253
|
+
return {
|
|
254
|
+
success: true,
|
|
255
|
+
message: `Approval request created successfully. Please review in dashboard: ${deeplink || 'Start with: spec-workflow-mcp --dashboard'}`,
|
|
256
|
+
data: {
|
|
257
|
+
approvalId,
|
|
258
|
+
title: args.title,
|
|
259
|
+
filePath: args.filePath,
|
|
260
|
+
type: args.type,
|
|
261
|
+
status: 'pending',
|
|
262
|
+
dashboardUrl: deeplink
|
|
263
|
+
},
|
|
264
|
+
nextSteps: [
|
|
265
|
+
'BLOCKING - Dashboard approval required',
|
|
266
|
+
'VERBAL APPROVAL NOT ACCEPTED',
|
|
267
|
+
'Do not proceed on verbal confirmation',
|
|
268
|
+
deeplink ? `Use dashboard: ${deeplink}` : 'Start the dashboard with: spec-workflow-mcp --dashboard',
|
|
269
|
+
`Poll status with: approvals action:"status" approvalId:"${approvalId}"`
|
|
270
|
+
],
|
|
271
|
+
projectContext: {
|
|
272
|
+
projectPath: validatedProjectPath,
|
|
273
|
+
workflowRoot: join(validatedProjectPath, '.spec-workflow'),
|
|
274
|
+
dashboardUrl: deeplink
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
280
|
+
return {
|
|
281
|
+
success: false,
|
|
282
|
+
message: `Failed to create approval request: ${errorMessage}`
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
async function handleGetApprovalStatus(args, context) {
|
|
287
|
+
// approvalId is guaranteed by type
|
|
288
|
+
try {
|
|
289
|
+
// Use provided projectPath or fall back to context
|
|
290
|
+
const projectPath = args.projectPath || context.projectPath;
|
|
291
|
+
if (!projectPath) {
|
|
292
|
+
return {
|
|
293
|
+
success: false,
|
|
294
|
+
message: 'Project path is required. Please provide projectPath parameter.'
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
// Validate and resolve project path
|
|
298
|
+
const validatedProjectPath = await validateProjectPath(projectPath);
|
|
299
|
+
// Translate path at tool entry point (ApprovalStorage expects pre-translated paths)
|
|
300
|
+
const translatedPath = safeTranslatePath(validatedProjectPath);
|
|
301
|
+
const approvalStorage = new ApprovalStorage(translatedPath, {
|
|
302
|
+
originalPath: validatedProjectPath,
|
|
303
|
+
fileResolutionPath: translatedPath
|
|
304
|
+
});
|
|
305
|
+
await approvalStorage.start();
|
|
306
|
+
const approval = await approvalStorage.getApproval(args.approvalId);
|
|
307
|
+
if (!approval) {
|
|
308
|
+
await approvalStorage.stop();
|
|
309
|
+
return {
|
|
310
|
+
success: false,
|
|
311
|
+
message: `Approval request not found: ${args.approvalId}`
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
await approvalStorage.stop();
|
|
315
|
+
const isCompleted = approval.status === 'approved' || approval.status === 'rejected';
|
|
316
|
+
const canProceed = approval.status === 'approved';
|
|
317
|
+
const mustWait = approval.status !== 'approved';
|
|
318
|
+
const nextSteps = [];
|
|
319
|
+
if (approval.status === 'pending') {
|
|
320
|
+
nextSteps.push('BLOCKED - Do not proceed');
|
|
321
|
+
nextSteps.push('VERBAL APPROVAL NOT ACCEPTED - Use dashboard or VS Code extension only');
|
|
322
|
+
nextSteps.push('Approval must be done via dashboard or VS Code extension');
|
|
323
|
+
nextSteps.push('Continue polling with approvals action:"status"');
|
|
324
|
+
}
|
|
325
|
+
else if (approval.status === 'approved') {
|
|
326
|
+
nextSteps.push('APPROVED - Can proceed');
|
|
327
|
+
nextSteps.push('Run approvals action:"delete" before continuing');
|
|
328
|
+
if (approval.response) {
|
|
329
|
+
nextSteps.push(`Response: ${approval.response}`);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
else if (approval.status === 'rejected') {
|
|
333
|
+
nextSteps.push('BLOCKED - REJECTED');
|
|
334
|
+
nextSteps.push('Do not proceed');
|
|
335
|
+
nextSteps.push('Review feedback and revise');
|
|
336
|
+
if (approval.response) {
|
|
337
|
+
nextSteps.push(`Reason: ${approval.response}`);
|
|
338
|
+
}
|
|
339
|
+
if (approval.annotations) {
|
|
340
|
+
nextSteps.push(`Notes: ${approval.annotations}`);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
else if (approval.status === 'needs-revision') {
|
|
344
|
+
nextSteps.push('BLOCKED - Do not proceed');
|
|
345
|
+
nextSteps.push('Update document with feedback');
|
|
346
|
+
nextSteps.push('Create NEW approval request');
|
|
347
|
+
if (approval.response) {
|
|
348
|
+
nextSteps.push(`Feedback: ${approval.response}`);
|
|
349
|
+
}
|
|
350
|
+
if (approval.annotations) {
|
|
351
|
+
nextSteps.push(`Notes: ${approval.annotations}`);
|
|
352
|
+
}
|
|
353
|
+
if (approval.comments && approval.comments.length > 0) {
|
|
354
|
+
nextSteps.push(`${approval.comments.length} comments for targeted fixes:`);
|
|
355
|
+
// Add each comment to nextSteps for visibility
|
|
356
|
+
approval.comments.forEach((comment, index) => {
|
|
357
|
+
if (comment.type === 'selection' && comment.selectedText) {
|
|
358
|
+
nextSteps.push(` Comment ${index + 1} on "${comment.selectedText.substring(0, 50)}...": ${comment.comment}`);
|
|
359
|
+
}
|
|
360
|
+
else {
|
|
361
|
+
nextSteps.push(` Comment ${index + 1} (general): ${comment.comment}`);
|
|
362
|
+
}
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
return {
|
|
367
|
+
success: true,
|
|
368
|
+
message: approval.status === 'pending'
|
|
369
|
+
? `BLOCKED: Status is ${approval.status}. Verbal approval is NOT accepted. Use dashboard or VS Code extension only.`
|
|
370
|
+
: `Approval status: ${approval.status}`,
|
|
371
|
+
data: {
|
|
372
|
+
approvalId: args.approvalId,
|
|
373
|
+
title: approval.title,
|
|
374
|
+
type: approval.type,
|
|
375
|
+
status: approval.status,
|
|
376
|
+
createdAt: approval.createdAt,
|
|
377
|
+
respondedAt: approval.respondedAt,
|
|
378
|
+
response: approval.response,
|
|
379
|
+
annotations: approval.annotations,
|
|
380
|
+
comments: approval.comments,
|
|
381
|
+
isCompleted,
|
|
382
|
+
canProceed,
|
|
383
|
+
mustWait,
|
|
384
|
+
blockNext: !canProceed,
|
|
385
|
+
dashboardUrl: context.dashboardUrl
|
|
386
|
+
},
|
|
387
|
+
nextSteps,
|
|
388
|
+
projectContext: {
|
|
389
|
+
projectPath: validatedProjectPath,
|
|
390
|
+
workflowRoot: join(validatedProjectPath, '.spec-workflow'),
|
|
391
|
+
dashboardUrl: context.dashboardUrl
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
catch (error) {
|
|
396
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
397
|
+
return {
|
|
398
|
+
success: false,
|
|
399
|
+
message: `Failed to check approval status: ${errorMessage}`
|
|
400
|
+
};
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
async function handleDeleteApproval(args, context) {
|
|
404
|
+
// approvalId is guaranteed by type
|
|
405
|
+
try {
|
|
406
|
+
// Use provided projectPath or fall back to context
|
|
407
|
+
const projectPath = args.projectPath || context.projectPath;
|
|
408
|
+
if (!projectPath) {
|
|
409
|
+
return {
|
|
410
|
+
success: false,
|
|
411
|
+
message: 'Project path is required. Please provide projectPath parameter.'
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
// Validate and resolve project path
|
|
415
|
+
const validatedProjectPath = await validateProjectPath(projectPath);
|
|
416
|
+
// Translate path at tool entry point (ApprovalStorage expects pre-translated paths)
|
|
417
|
+
const translatedPath = safeTranslatePath(validatedProjectPath);
|
|
418
|
+
const approvalStorage = new ApprovalStorage(translatedPath, {
|
|
419
|
+
originalPath: validatedProjectPath,
|
|
420
|
+
fileResolutionPath: translatedPath
|
|
421
|
+
});
|
|
422
|
+
await approvalStorage.start();
|
|
423
|
+
// Check if approval exists and its status
|
|
424
|
+
const approval = await approvalStorage.getApproval(args.approvalId);
|
|
425
|
+
if (!approval) {
|
|
426
|
+
return {
|
|
427
|
+
success: false,
|
|
428
|
+
message: `Approval request "${args.approvalId}" not found`,
|
|
429
|
+
nextSteps: [
|
|
430
|
+
'Verify approval ID',
|
|
431
|
+
'Check status with approvals action:"status"'
|
|
432
|
+
]
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
// Only block deletion of pending requests (still awaiting approval)
|
|
436
|
+
// Allow deletion of: approved, needs-revision, rejected
|
|
437
|
+
if (approval.status === 'pending') {
|
|
438
|
+
return {
|
|
439
|
+
success: false,
|
|
440
|
+
message: `BLOCKED: Cannot delete - status is "${approval.status}". This approval is still awaiting review. VERBAL APPROVAL NOT ACCEPTED. Use dashboard or VS Code extension.`,
|
|
441
|
+
data: {
|
|
442
|
+
approvalId: args.approvalId,
|
|
443
|
+
currentStatus: approval.status,
|
|
444
|
+
title: approval.title,
|
|
445
|
+
blockProgress: true,
|
|
446
|
+
canProceed: false
|
|
447
|
+
},
|
|
448
|
+
nextSteps: [
|
|
449
|
+
'STOP - Cannot delete pending approval',
|
|
450
|
+
'Wait for approval or rejection',
|
|
451
|
+
'Poll with approvals action:"status"',
|
|
452
|
+
'Delete only after status changes to approved, rejected, or needs-revision'
|
|
453
|
+
]
|
|
454
|
+
};
|
|
455
|
+
}
|
|
456
|
+
// Delete the approval
|
|
457
|
+
const deleted = await approvalStorage.deleteApproval(args.approvalId);
|
|
458
|
+
await approvalStorage.stop();
|
|
459
|
+
if (deleted) {
|
|
460
|
+
return {
|
|
461
|
+
success: true,
|
|
462
|
+
message: `Approval request "${args.approvalId}" deleted successfully`,
|
|
463
|
+
data: {
|
|
464
|
+
deletedApprovalId: args.approvalId,
|
|
465
|
+
title: approval.title,
|
|
466
|
+
category: approval.category,
|
|
467
|
+
categoryName: approval.categoryName
|
|
468
|
+
},
|
|
469
|
+
nextSteps: [
|
|
470
|
+
'Cleanup complete',
|
|
471
|
+
'Continue to next phase'
|
|
472
|
+
],
|
|
473
|
+
projectContext: {
|
|
474
|
+
projectPath: validatedProjectPath,
|
|
475
|
+
workflowRoot: join(validatedProjectPath, '.spec-workflow'),
|
|
476
|
+
dashboardUrl: context.dashboardUrl
|
|
477
|
+
}
|
|
478
|
+
};
|
|
479
|
+
}
|
|
480
|
+
else {
|
|
481
|
+
return {
|
|
482
|
+
success: false,
|
|
483
|
+
message: `Failed to delete approval request "${args.approvalId}"`,
|
|
484
|
+
nextSteps: [
|
|
485
|
+
'Check file permissions',
|
|
486
|
+
'Verify approval exists',
|
|
487
|
+
'Retry'
|
|
488
|
+
]
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
catch (error) {
|
|
493
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
494
|
+
return {
|
|
495
|
+
success: false,
|
|
496
|
+
message: `Failed to delete approval: ${errorMessage}`,
|
|
497
|
+
nextSteps: [
|
|
498
|
+
'Check project path',
|
|
499
|
+
'Verify permissions',
|
|
500
|
+
'Check approval system'
|
|
501
|
+
]
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
//# sourceMappingURL=approvals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/tools/approvals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { ToolContext, MCPToolResponse } from '../types.js';
|
|
3
|
+
export declare function registerTools(): Tool[];
|
|
4
|
+
export declare function handleToolCall(name: string, args: any, context: ToolContext): Promise<MCPToolResponse>;
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAM1D,OAAO,EAAE,WAAW,EAAgB,eAAe,EAAiB,MAAM,aAAa,CAAC;AAExF,wBAAgB,aAAa,IAAI,IAAI,EAAE,CAQtC;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAsC5G"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { specWorkflowGuideTool, specWorkflowGuideHandler } from './spec-workflow-guide.js';
|
|
2
|
+
import { specStatusTool, specStatusHandler } from './spec-status.js';
|
|
3
|
+
import { steeringGuideTool, steeringGuideHandler } from './steering-guide.js';
|
|
4
|
+
import { approvalsTool, approvalsHandler } from './approvals.js';
|
|
5
|
+
import { logImplementationTool, logImplementationHandler } from './log-implementation.js';
|
|
6
|
+
import { toMCPResponse } from '../types.js';
|
|
7
|
+
export function registerTools() {
|
|
8
|
+
return [
|
|
9
|
+
specWorkflowGuideTool,
|
|
10
|
+
steeringGuideTool,
|
|
11
|
+
specStatusTool,
|
|
12
|
+
approvalsTool,
|
|
13
|
+
logImplementationTool
|
|
14
|
+
];
|
|
15
|
+
}
|
|
16
|
+
export async function handleToolCall(name, args, context) {
|
|
17
|
+
let response;
|
|
18
|
+
let isError = false;
|
|
19
|
+
try {
|
|
20
|
+
switch (name) {
|
|
21
|
+
case 'spec-workflow-guide':
|
|
22
|
+
response = await specWorkflowGuideHandler(args, context);
|
|
23
|
+
break;
|
|
24
|
+
case 'steering-guide':
|
|
25
|
+
response = await steeringGuideHandler(args, context);
|
|
26
|
+
break;
|
|
27
|
+
case 'spec-status':
|
|
28
|
+
response = await specStatusHandler(args, context);
|
|
29
|
+
break;
|
|
30
|
+
case 'approvals':
|
|
31
|
+
response = await approvalsHandler(args, context);
|
|
32
|
+
break;
|
|
33
|
+
case 'log-implementation':
|
|
34
|
+
response = await logImplementationHandler(args, context);
|
|
35
|
+
break;
|
|
36
|
+
default:
|
|
37
|
+
throw new Error(`Unknown tool: ${name}`);
|
|
38
|
+
}
|
|
39
|
+
// Check if the response indicates an error
|
|
40
|
+
isError = !response.success;
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
44
|
+
response = {
|
|
45
|
+
success: false,
|
|
46
|
+
message: `Tool execution failed: ${errorMessage}`
|
|
47
|
+
};
|
|
48
|
+
isError = true;
|
|
49
|
+
}
|
|
50
|
+
return toMCPResponse(response, isError);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAA8C,aAAa,EAAE,MAAM,aAAa,CAAC;AAExF,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,qBAAqB;QACrB,iBAAiB;QACjB,cAAc;QACd,aAAa;QACb,qBAAqB;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,IAAS,EAAE,OAAoB;IAChF,IAAI,QAAsB,CAAC;IAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IAAI,CAAC;QACH,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,qBAAqB;gBACxB,QAAQ,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACzD,MAAM;YACR,KAAK,gBAAgB;gBACnB,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACrD,MAAM;YACR,KAAK,aAAa;gBAChB,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAClD,MAAM;YACR,KAAK,WAAW;gBACd,QAAQ,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,oBAAoB;gBACvB,QAAQ,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACzD,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,2CAA2C;QAC3C,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;IAE9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,QAAQ,GAAG;YACT,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,0BAA0B,YAAY,EAAE;SAClD,CAAC;QACF,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { ToolContext, ToolResponse } from '../types.js';
|
|
3
|
+
export declare const logImplementationTool: Tool;
|
|
4
|
+
export declare function logImplementationHandler(args: any, context: ToolContext): Promise<ToolResponse>;
|
|
5
|
+
//# sourceMappingURL=log-implementation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-implementation.d.ts","sourceRoot":"","sources":["../../src/tools/log-implementation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAA0B,MAAM,aAAa,CAAC;AAKhF,eAAO,MAAM,qBAAqB,EAAE,IAmUnC,CAAC;AAEF,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,CAAC,CAkMvB"}
|