@sureshdsk/devflow-mcp 3.0.0 → 3.0.1
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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +4 -4
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
- package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +2 -2
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
- package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +14 -13
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -13
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +5 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/projects/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js +2 -2
- package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/specs/[name]/artifacts/[artifactType]/approve/route.js +2 -2
- package/.next/standalone/.next/server/app/api/specs/[name]/artifacts/[artifactType]/approve/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/specs/[name]/artifacts/[artifactType]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/specs/[name]/artifacts/[artifactType]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/specs/[name]/promote/route.js +2 -2
- package/.next/standalone/.next/server/app/api/specs/[name]/promote/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/specs/[name]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/specs/[name]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/specs/route.js +2 -2
- package/.next/standalone/.next/server/app/api/specs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[id]/route.js +2 -2
- package/.next/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/route.js +2 -2
- package/.next/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +15 -14
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -14
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +5 -4
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/page/build-manifest.json +2 -2
- package/.next/standalone/.next/server/app/page.js +2 -2
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/specs/[name]/page/build-manifest.json +2 -2
- package/.next/standalone/.next/server/app/specs/[name]/page.js +2 -2
- package/.next/standalone/.next/server/app/specs/[name]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/specs/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0be0eb8b._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__a9d478ee._.js → [root-of-the-server]__160c54ca._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__17ac51e3._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1bb083e9._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1dc1e944._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__22ecfa2c._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__13a93eb6._.js → [root-of-the-server]__64710c0d._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a2b7e5f2._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__cf302bda._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__d85482cd._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__dfa21757._.js +3 -0
- package/.next/standalone/.next/server/chunks/_3f452afe._.js +2 -2
- package/.next/standalone/.next/server/chunks/src_db_index_ts_a71f50f0._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__023e2c69._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0a1a1435._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0c49a387._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1be1fc5f._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3a2f2efb._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__4693399c._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__937c9212._.js → [root-of-the-server]__72a14301._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__8064ca06._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__8b786d48._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__8c052461._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__8d306066._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__9532fd59._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__a119dd75._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__7fb6ef14._.js → [root-of-the-server]__a57b312b._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__a80bd0ea._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__abe095b3._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__ad3bd783._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1e05fe0e._.js → [root-of-the-server]__ae9f05d6._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__c8781469._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__c8a25070._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__e8c1e595._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0ff3de19._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_01a5cd4b._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_05c6819f._.js +31 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_06c2c30a._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_09efe605._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_ef601841._.js → node_modules_0a439e3b._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_3507b41a._.js → node_modules_0e73ad6c._.js} +3 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0e7ff06d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_0f73e25c._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_14cf9cea._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_19801f01._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_2235b8cf._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_23096c6d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_23db4cf7._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_24381e95._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_24ca0eb6._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_27525793._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_4cfa6360._.js → node_modules_27c20382._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_2c901b92._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_33b818b7._.js +45 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_345d7791._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_36185c24._.js +45 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_3ac7ce09._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_41b77cc7._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_ed317ff6._.js → node_modules_42acd8db._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_434aa5ec._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_54a9e72d._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_54f1273a._.js +26 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_58d64491._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_5e012e3d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_5ea9e4cf._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_5ecf8270._.js +26 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_611c99b5._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_d3-scale_src_e02ef77f._.js → node_modules_6629853d._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_6fe2661c._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_7fe65a84._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_860f971a._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_882f3743._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_8e047938._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_9268cdc4._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_942541c9._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_9d52c0d6._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_@tanstack_query-core_build_modern_21ece5ea._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_ae6841d2._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_ba280bb0._.js +31 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_bffdb8ec._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_c00f1821._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_c142ba86._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_d1a47cde._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_d9b454fe._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_dbe36b1d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_ddbe26b7._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_e76b8bf2._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_e945b74d._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_fbd8a2ee._.js +17 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_katex_dist_katex_mjs_31d456ba._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_katex_dist_katex_mjs_e1edc676._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_lodash-es_33e24dce._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-QXUST7PY_mjs_159fba97._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-S3R3BYOJ_mjs_dbeeb277._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_mermaid_core_mjs_a11916de._.js +9 -0
- package/.next/standalone/.next/server/chunks/ssr/src_66a70595._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/src_components_kanban-board_tsx_7b875e8e._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +2 -2
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +2 -2
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/AGENTS.md +13 -7
- package/.next/standalone/CONTRIBUTING.md +42 -26
- package/.next/standalone/README.md +166 -25
- package/.next/standalone/bin/devflow.js +12 -5
- package/.next/standalone/bun.lock +78 -24
- package/.next/standalone/devflow/project-config.json +4 -0
- package/.next/standalone/devflow/schemas/api-first/schema.yaml +39 -0
- package/.next/standalone/devflow/schemas/api-first/templates/api-design.md +41 -0
- package/.next/standalone/devflow/schemas/api-first/templates/db-design.md +28 -0
- package/.next/standalone/devflow/schemas/api-first/templates/final-architecture.md +31 -0
- package/.next/standalone/devflow/schemas/api-first/templates/proposal.md +22 -0
- package/.next/standalone/devflow/schemas/api-first/templates/tasks.md +16 -0
- package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/.approvals.json +1 -1
- package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/.meta.json +1 -1
- package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/design.md +11 -0
- package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/proposal.md +3 -0
- package/.next/standalone/devflow/specs/autodetect-skill-and-slash-command-installation/tasks.md +34 -2
- package/.next/standalone/devflow/specs/precommit/.approvals.json +26 -0
- package/.next/standalone/devflow/specs/precommit/.meta.json +7 -0
- package/.next/standalone/devflow/specs/precommit/design.md +105 -0
- package/.next/standalone/devflow/specs/precommit/proposal.md +43 -0
- package/.next/standalone/devflow/specs/precommit/specs.md +89 -0
- package/.next/standalone/devflow/specs/precommit/tasks.md +283 -0
- package/.next/standalone/docs/custom-schemas.md +117 -0
- package/.next/standalone/docs/local-dev-guide.md +73 -0
- package/.next/standalone/drizzle.config.ts +7 -7
- package/.next/standalone/eslint.config.mjs +2 -2
- package/.next/standalone/instrumentation.ts +3 -5
- package/.next/standalone/next.config.ts +11 -2
- package/.next/standalone/node_modules/{sharp → libsql}/node_modules/detect-libc/package.json +4 -8
- package/.next/standalone/package-lock.json +5257 -2085
- package/.next/standalone/package.json +16 -7
- package/.next/standalone/postcss.config.mjs +1 -1
- package/.next/standalone/scripts/init-db.js +3 -5
- package/.next/standalone/scripts/init-db.test.js +6 -6
- package/.next/standalone/scripts/init-schema.js +22 -22
- package/.next/standalone/scripts/init-schema.test.js +45 -45
- package/.next/standalone/scripts/install-environments.js +27 -8
- package/.next/standalone/scripts/install-environments.test.js +19 -10
- package/.next/standalone/scripts/install-skills.js +104 -31
- package/.next/standalone/scripts/install-skills.test.js +6 -6
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/app/api/agents/route.ts +2 -2
- package/.next/standalone/src/app/api/projects/[id]/route.ts +10 -19
- package/.next/standalone/src/app/api/projects/route.ts +4 -10
- package/.next/standalone/src/app/api/specs/[name]/artifacts/[artifactType]/approve/route.ts +8 -8
- package/.next/standalone/src/app/api/specs/[name]/artifacts/[artifactType]/route.ts +14 -14
- package/.next/standalone/src/app/api/specs/[name]/promote/route.ts +17 -23
- package/.next/standalone/src/app/api/specs/[name]/route.ts +34 -36
- package/.next/standalone/src/app/api/specs/route.ts +10 -10
- package/.next/standalone/src/app/api/tasks/[id]/route.ts +11 -33
- package/.next/standalone/src/app/api/tasks/route.ts +3 -6
- package/.next/standalone/src/app/globals.css +3 -3
- package/.next/standalone/src/app/layout.tsx +9 -5
- package/.next/standalone/src/app/page.tsx +1 -1
- package/.next/standalone/src/app/specs/[name]/page.tsx +26 -68
- package/.next/standalone/src/components/kanban-board.tsx +78 -157
- package/.next/standalone/src/components/kanban-column.tsx +10 -12
- package/.next/standalone/src/components/markdown-preview.tsx +36 -19
- package/.next/standalone/src/components/providers.tsx +20 -0
- package/.next/standalone/src/components/specs/artifact-dag-status.tsx +12 -14
- package/.next/standalone/src/components/specs/artifact-editor.tsx +55 -26
- package/.next/standalone/src/components/specs/spec-detail.tsx +48 -40
- package/.next/standalone/src/components/specs/spec-kanban-column.tsx +49 -68
- package/.next/standalone/src/components/specs/spec-modal.tsx +119 -83
- package/.next/standalone/src/components/task-card.tsx +34 -38
- package/.next/standalone/src/components/task-dialog.tsx +16 -31
- package/.next/standalone/src/components/ui/badge.tsx +12 -18
- package/.next/standalone/src/components/ui/button.tsx +23 -28
- package/.next/standalone/src/components/ui/card.tsx +42 -62
- package/.next/standalone/src/components/ui/dialog.tsx +17 -35
- package/.next/standalone/src/db/index.ts +10 -10
- package/.next/standalone/src/db/schema.ts +37 -37
- package/.next/standalone/src/hooks/use-queries.ts +81 -0
- package/.next/standalone/src/hooks/use-websocket.ts +74 -0
- package/.next/standalone/src/lib/schema.test.ts +37 -37
- package/.next/standalone/src/lib/schema.ts +77 -31
- package/.next/standalone/src/lib/specs-dir.ts +8 -8
- package/.next/standalone/src/lib/specs.ts +98 -92
- package/.next/standalone/src/lib/utils.ts +2 -2
- package/.next/standalone/src/mcp/server.ts +556 -349
- package/.next/standalone/src/mcp/websocket.ts +26 -23
- package/.next/standalone/src/schemas/backend-api/templates/proposal.md +6 -4
- package/.next/standalone/src/schemas/backend-api/templates/tasks.md +6 -0
- package/.next/standalone/src/schemas/data-engineering/templates/proposal.md +6 -4
- package/.next/standalone/src/schemas/data-engineering/templates/tasks.md +6 -0
- package/.next/standalone/src/schemas/devops-platform/templates/proposal.md +6 -4
- package/.next/standalone/src/schemas/devops-platform/templates/tasks.md +6 -0
- package/.next/standalone/src/schemas/frontend-product/templates/proposal.md +6 -4
- package/.next/standalone/src/schemas/frontend-product/templates/tasks.md +6 -0
- package/.next/standalone/src/schemas/spec-driven/templates/proposal.md +6 -4
- package/.next/standalone/src/schemas/spec-driven/templates/tasks.md +26 -0
- package/.next/standalone/src/websocket/server.ts +20 -18
- package/.next/standalone/tsconfig.json +3 -12
- package/.next/standalone/tsconfig.tsbuildinfo +1 -1
- package/.next/static/chunks/4f23f64d46848f57.js +1 -0
- package/.next/static/chunks/53081dcdcad4f31e.js +1 -0
- package/.next/static/chunks/{6a3d582315f1c214.js → 701cfcbb41e0ab47.js} +1 -1
- package/.next/static/chunks/ac4b6b4d5b7e486e.css +1 -0
- package/.next/static/chunks/d0309ea872db5d9f.js +1 -0
- package/.next/static/chunks/d4cf8893a018e965.js +1 -0
- package/.next/static/chunks/e6c0233269a4bd69.js +13 -0
- package/.next/static/chunks/{7e65cfa9841f66a5.js → e7d83ce855afe416.js} +2 -2
- package/.next/static/chunks/ee7035560fc9e5e9.js +1 -0
- package/.next/static/chunks/{turbopack-f4d3806ab575051d.js → turbopack-8b3b66a22a5e0fb4.js} +2 -2
- package/README.md +166 -25
- package/bin/devflow.js +12 -5
- package/drizzle.config.ts +7 -7
- package/next.config.ts +11 -2
- package/package.json +16 -7
- package/scripts/init-db.js +3 -5
- package/scripts/init-db.test.js +6 -6
- package/scripts/init-schema.js +22 -22
- package/scripts/init-schema.test.js +45 -45
- package/scripts/install-environments.js +27 -8
- package/scripts/install-environments.test.js +19 -10
- package/scripts/install-skills.js +104 -31
- package/scripts/install-skills.test.js +6 -6
- package/src/app/api/agents/route.ts +2 -2
- package/src/app/api/projects/[id]/route.ts +10 -19
- package/src/app/api/projects/route.ts +4 -10
- package/src/app/api/specs/[name]/artifacts/[artifactType]/approve/route.ts +8 -8
- package/src/app/api/specs/[name]/artifacts/[artifactType]/route.ts +14 -14
- package/src/app/api/specs/[name]/promote/route.ts +17 -23
- package/src/app/api/specs/[name]/route.ts +34 -36
- package/src/app/api/specs/route.ts +10 -10
- package/src/app/api/tasks/[id]/route.ts +11 -33
- package/src/app/api/tasks/route.ts +3 -6
- package/src/app/globals.css +3 -3
- package/src/app/layout.tsx +9 -5
- package/src/app/page.tsx +1 -1
- package/src/app/specs/[name]/page.tsx +26 -68
- package/src/components/kanban-board.tsx +78 -157
- package/src/components/kanban-column.tsx +10 -12
- package/src/components/markdown-preview.tsx +36 -19
- package/src/components/providers.tsx +20 -0
- package/src/components/specs/artifact-dag-status.tsx +12 -14
- package/src/components/specs/artifact-editor.tsx +55 -26
- package/src/components/specs/spec-detail.tsx +48 -40
- package/src/components/specs/spec-kanban-column.tsx +49 -68
- package/src/components/specs/spec-modal.tsx +119 -83
- package/src/components/task-card.tsx +34 -38
- package/src/components/task-dialog.tsx +16 -31
- package/src/components/ui/badge.tsx +12 -18
- package/src/components/ui/button.tsx +23 -28
- package/src/components/ui/card.tsx +42 -62
- package/src/components/ui/dialog.tsx +17 -35
- package/src/db/index.ts +10 -10
- package/src/db/schema.ts +37 -37
- package/src/hooks/use-queries.ts +81 -0
- package/src/hooks/use-websocket.ts +74 -0
- package/src/lib/schema.test.ts +37 -37
- package/src/lib/schema.ts +77 -31
- package/src/lib/specs-dir.ts +8 -8
- package/src/lib/specs.ts +98 -92
- package/src/lib/utils.ts +2 -2
- package/src/mcp/server.ts +556 -349
- package/src/mcp/websocket.ts +26 -23
- package/src/schemas/backend-api/templates/proposal.md +6 -4
- package/src/schemas/backend-api/templates/tasks.md +6 -0
- package/src/schemas/data-engineering/templates/proposal.md +6 -4
- package/src/schemas/data-engineering/templates/tasks.md +6 -0
- package/src/schemas/devops-platform/templates/proposal.md +6 -4
- package/src/schemas/devops-platform/templates/tasks.md +6 -0
- package/src/schemas/frontend-product/templates/proposal.md +6 -4
- package/src/schemas/frontend-product/templates/tasks.md +6 -0
- package/src/schemas/spec-driven/templates/proposal.md +6 -4
- package/src/schemas/spec-driven/templates/tasks.md +26 -0
- package/src/types/bun-sqlite.d.ts +1 -1
- package/src/websocket/server.ts +20 -18
- package/tsconfig.json +3 -12
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1be4e4b6._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__492a4a24._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__67c59ae1._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__6cc7aecd._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__83a77b07._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__88d91cb5._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9e095e8._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__b367d327._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__eb413bbc._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b8c072a._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12b2191f._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__15316462._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__19c9c409._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__19e5e22f._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__25b5ccb3._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2f78c3da._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3160b3f4._.js +0 -9
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__319559be._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__34f7cbcb._.js +0 -31
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3abab94b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3b3d8930._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__4250799b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__4c29cbc3._.js +0 -26
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__4e0bb6eb._.js +0 -9
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__5678d2e3._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__673445e0._.js +0 -31
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__934de06b._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__9b6c6f09._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__a1b83a98._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__b00a15c5._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__b8567be3._.js +0 -26
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__ce64536e._.js +0 -45
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__e96d33d2._.js +0 -45
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__fd7ec054._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_16a3f9e7._.js +0 -17
- package/.next/standalone/.next/server/chunks/ssr/node_modules_45bce0e1._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_5e5a372d._.js +0 -17
- package/.next/standalone/.next/server/chunks/ssr/node_modules_6ece6f1e._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_d173e749._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_d3-shape_src_arc_fb1ac087.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_1f73a830._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_663ac803._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-FMBD7UC4_mjs_4f485529._.js +0 -17
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-TZMSLE5B_mjs_8436a62a._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_f78d2dc4._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/src_app_layout_tsx_cc8184fa._.js +0 -3
- package/.next/standalone/devflow/specs/add-default-schema-template-selection/.approvals.json +0 -26
- package/.next/standalone/devflow/specs/add-default-schema-template-selection/.meta.json +0 -8
- package/.next/standalone/devflow/specs/add-default-schema-template-selection/design.md +0 -126
- package/.next/standalone/devflow/specs/add-default-schema-template-selection/proposal.md +0 -65
- package/.next/standalone/devflow/specs/add-default-schema-template-selection/specs.md +0 -107
- package/.next/standalone/devflow/specs/add-default-schema-template-selection/tasks.md +0 -235
- package/.next/standalone/devflow/specs/test-no-project/.approvals.json +0 -17
- package/.next/standalone/devflow/specs/test-no-project/.meta.json +0 -6
- package/.next/standalone/devflow/specs/ui-cleanup/.approvals.json +0 -29
- package/.next/standalone/devflow/specs/ui-cleanup/.meta.json +0 -6
- package/.next/standalone/devflow/specs/ui-cleanup/design.md +0 -49
- package/.next/standalone/devflow/specs/ui-cleanup/proposal.md +0 -34
- package/.next/standalone/devflow/specs/ui-cleanup/specs.md +0 -55
- package/.next/standalone/devflow/specs/ui-cleanup/tasks.md +0 -28
- package/.next/standalone/node_modules/@img/colour/color.cjs +0 -1594
- package/.next/standalone/node_modules/@img/colour/index.cjs +0 -1
- package/.next/standalone/node_modules/@img/colour/package.json +0 -45
- package/.next/standalone/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
- package/.next/standalone/node_modules/@img/sharp-darwin-arm64/package.json +0 -40
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/README.md +0 -46
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/glib-2.0/include/glibconfig.h +0 -220
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/index.js +0 -1
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib +0 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/package.json +0 -36
- package/.next/standalone/node_modules/@img/sharp-libvips-darwin-arm64/versions.json +0 -30
- package/.next/standalone/node_modules/buffer-from/index.js +0 -72
- package/.next/standalone/node_modules/buffer-from/package.json +0 -19
- package/.next/standalone/node_modules/sharp/lib/channel.js +0 -177
- package/.next/standalone/node_modules/sharp/lib/colour.js +0 -195
- package/.next/standalone/node_modules/sharp/lib/composite.js +0 -212
- package/.next/standalone/node_modules/sharp/lib/constructor.js +0 -499
- package/.next/standalone/node_modules/sharp/lib/index.js +0 -16
- package/.next/standalone/node_modules/sharp/lib/input.js +0 -809
- package/.next/standalone/node_modules/sharp/lib/is.js +0 -143
- package/.next/standalone/node_modules/sharp/lib/libvips.js +0 -207
- package/.next/standalone/node_modules/sharp/lib/operation.js +0 -1016
- package/.next/standalone/node_modules/sharp/lib/output.js +0 -1666
- package/.next/standalone/node_modules/sharp/lib/resize.js +0 -595
- package/.next/standalone/node_modules/sharp/lib/sharp.js +0 -121
- package/.next/standalone/node_modules/sharp/lib/utility.js +0 -291
- package/.next/standalone/node_modules/sharp/node_modules/detect-libc/lib/detect-libc.js +0 -313
- package/.next/standalone/node_modules/sharp/node_modules/detect-libc/lib/elf.js +0 -39
- package/.next/standalone/node_modules/sharp/node_modules/detect-libc/lib/filesystem.js +0 -51
- package/.next/standalone/node_modules/sharp/node_modules/detect-libc/lib/process.js +0 -24
- package/.next/standalone/node_modules/sharp/node_modules/semver/classes/comparator.js +0 -143
- package/.next/standalone/node_modules/sharp/node_modules/semver/classes/range.js +0 -557
- package/.next/standalone/node_modules/sharp/node_modules/semver/classes/semver.js +0 -333
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/cmp.js +0 -54
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/coerce.js +0 -62
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/compare.js +0 -7
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/eq.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gt.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gte.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lt.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lte.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/neq.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/parse.js +0 -18
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/satisfies.js +0 -12
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/constants.js +0 -37
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/debug.js +0 -11
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/identifiers.js +0 -29
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/lrucache.js +0 -42
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/parse-options.js +0 -17
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/re.js +0 -223
- package/.next/standalone/node_modules/sharp/node_modules/semver/package.json +0 -78
- package/.next/standalone/node_modules/sharp/package.json +0 -202
- package/.next/standalone/node_modules/source-map/lib/array-set.js +0 -121
- package/.next/standalone/node_modules/source-map/lib/base64-vlq.js +0 -140
- package/.next/standalone/node_modules/source-map/lib/base64.js +0 -67
- package/.next/standalone/node_modules/source-map/lib/binary-search.js +0 -111
- package/.next/standalone/node_modules/source-map/lib/mapping-list.js +0 -79
- package/.next/standalone/node_modules/source-map/lib/quick-sort.js +0 -114
- package/.next/standalone/node_modules/source-map/lib/source-map-consumer.js +0 -1145
- package/.next/standalone/node_modules/source-map/lib/source-map-generator.js +0 -425
- package/.next/standalone/node_modules/source-map/lib/source-node.js +0 -413
- package/.next/standalone/node_modules/source-map/lib/util.js +0 -488
- package/.next/standalone/node_modules/source-map/package.json +0 -73
- package/.next/standalone/node_modules/source-map/source-map.js +0 -8
- package/.next/standalone/node_modules/source-map-support/LICENSE.md +0 -21
- package/.next/standalone/node_modules/source-map-support/README.md +0 -284
- package/.next/standalone/node_modules/source-map-support/browser-source-map-support.js +0 -114
- package/.next/standalone/node_modules/source-map-support/package.json +0 -31
- package/.next/standalone/node_modules/source-map-support/register-hook-require.js +0 -1
- package/.next/standalone/node_modules/source-map-support/register.js +0 -1
- package/.next/standalone/node_modules/source-map-support/source-map-support.js +0 -625
- package/.next/standalone/node_modules/typescript/lib/_tsc.js +0 -133818
- package/.next/standalone/node_modules/typescript/lib/_tsserver.js +0 -659
- package/.next/standalone/node_modules/typescript/lib/_typingsInstaller.js +0 -222
- package/.next/standalone/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/tsc.js +0 -8
- package/.next/standalone/node_modules/typescript/lib/tsserver.js +0 -8
- package/.next/standalone/node_modules/typescript/lib/tsserverlibrary.js +0 -21
- package/.next/standalone/node_modules/typescript/lib/typesMap.json +0 -497
- package/.next/standalone/node_modules/typescript/lib/typescript.js +0 -200276
- package/.next/standalone/node_modules/typescript/lib/typingsInstaller.js +0 -8
- package/.next/standalone/node_modules/typescript/lib/watchGuard.js +0 -53
- package/.next/standalone/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +0 -2122
- package/.next/standalone/node_modules/typescript/package.json +0 -120
- package/.next/standalone/src/components/ui/collapsible.tsx +0 -12
- package/.next/standalone/src/components/ui/sheet.tsx +0 -130
- package/.next/standalone/src/components/ui/tabs.tsx +0 -58
- package/.next/static/chunks/0177331b8adf7346.js +0 -7
- package/.next/static/chunks/06af74e2f3e207c5.js +0 -7
- package/.next/static/chunks/1748d5cd2443723b.css +0 -1
- package/.next/static/chunks/7ae917cb100be2b9.js +0 -7
- package/.next/static/chunks/7c4b901b394c3a8c.js +0 -7
- package/src/components/ui/collapsible.tsx +0 -12
- package/src/components/ui/sheet.tsx +0 -130
- package/src/components/ui/tabs.tsx +0 -58
- /package/.next/standalone/node_modules/{detect-libc → libsql/node_modules/detect-libc}/lib/detect-libc.js +0 -0
- /package/.next/standalone/node_modules/{detect-libc → libsql/node_modules/detect-libc}/lib/filesystem.js +0 -0
- /package/.next/standalone/node_modules/{detect-libc → libsql/node_modules/detect-libc}/lib/process.js +0 -0
- /package/.next/static/{5YFrdIQd1UU2IxLxekrU9 → Ql6qo0GYLL23WRu6ec4N5}/_buildManifest.js +0 -0
- /package/.next/static/{5YFrdIQd1UU2IxLxekrU9 → Ql6qo0GYLL23WRu6ec4N5}/_clientMiddlewareManifest.json +0 -0
- /package/.next/static/{5YFrdIQd1UU2IxLxekrU9 → Ql6qo0GYLL23WRu6ec4N5}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
# Tasks: Setup automatic linting & formatting on git commit
|
|
2
|
+
|
|
3
|
+
## 1. Delivery Overview
|
|
4
|
+
|
|
5
|
+
### 1.1 Objective
|
|
6
|
+
|
|
7
|
+
Add a pre-commit hook pipeline that automatically lints and formats staged files on every `git commit`, ensuring consistent code quality without manual effort.
|
|
8
|
+
|
|
9
|
+
### 1.2 In-Scope Outcomes
|
|
10
|
+
|
|
11
|
+
- Husky pre-commit hook installed automatically on `npm install`
|
|
12
|
+
- lint-staged runs ESLint + Prettier on staged files
|
|
13
|
+
- Prettier config and ignore file in place
|
|
14
|
+
- Full codebase formatted in a baseline commit
|
|
15
|
+
|
|
16
|
+
### 1.3 Non-Goals
|
|
17
|
+
|
|
18
|
+
- CI pipeline changes
|
|
19
|
+
- Commit message linting (commitlint)
|
|
20
|
+
- Pre-push hooks (tests, typecheck)
|
|
21
|
+
- Changing existing ESLint rules
|
|
22
|
+
|
|
23
|
+
### 1.4 Global Constraints
|
|
24
|
+
|
|
25
|
+
- Must not break the existing `postinstall` script
|
|
26
|
+
- Must skip hook installation gracefully in CI (`CI=true`)
|
|
27
|
+
|
|
28
|
+
### 1.5 Shared References
|
|
29
|
+
|
|
30
|
+
- Proposal: `devflow/specs/precommit/proposal.md`
|
|
31
|
+
- Design: `devflow/specs/precommit/design.md`
|
|
32
|
+
- Specs: `devflow/specs/precommit/specs.md`
|
|
33
|
+
- `package.json`
|
|
34
|
+
|
|
35
|
+
## 2. Task Cards
|
|
36
|
+
|
|
37
|
+
**Execution Plan**
|
|
38
|
+
|
|
39
|
+
1. npm install --save-dev husky lint-staged prettier\n2. Add prepare script and lint-staged config to package.json\n3. Validate
|
|
40
|
+
|
|
41
|
+
### 2.1 Task: Install dependencies and configure package.json
|
|
42
|
+
|
|
43
|
+
- [ ] **Status**
|
|
44
|
+
- **Task ID:** `T1`
|
|
45
|
+
- **Owner Type:** `agent`
|
|
46
|
+
- **Priority:** `P0`
|
|
47
|
+
- **Depends On:** `none`
|
|
48
|
+
|
|
49
|
+
**Goal**
|
|
50
|
+
Install husky, lint-staged, and prettier as devDependencies and add the required scripts and config to package.json.
|
|
51
|
+
|
|
52
|
+
**Context**
|
|
53
|
+
The project already has ESLint configured. The `postinstall` script exists and must not be affected. Husky v9 uses a `prepare` script (not `postinstall`) to set up hooks.
|
|
54
|
+
|
|
55
|
+
**Scope**
|
|
56
|
+
|
|
57
|
+
- In scope:
|
|
58
|
+
- `npm install --save-dev husky lint-staged prettier`
|
|
59
|
+
- Add `"prepare": "husky"` to scripts
|
|
60
|
+
- Add `lint-staged` config block to package.json
|
|
61
|
+
- Out of scope:
|
|
62
|
+
- Creating hook files (T2)
|
|
63
|
+
- Prettier config files (T3)
|
|
64
|
+
|
|
65
|
+
**Implementation Targets**
|
|
66
|
+
|
|
67
|
+
- Files to create/update:
|
|
68
|
+
- `package.json`
|
|
69
|
+
|
|
70
|
+
**Execution Steps**
|
|
71
|
+
|
|
72
|
+
1. Run `npm install --save-dev husky lint-staged prettier`
|
|
73
|
+
2. Add `"prepare": "husky"` to the `scripts` section of package.json
|
|
74
|
+
3. Add lint-staged config to package.json:
|
|
75
|
+
```json
|
|
76
|
+
"lint-staged": {
|
|
77
|
+
"*.{ts,tsx}": ["eslint --fix", "prettier --write"],
|
|
78
|
+
"*.{js,json,css,md}": ["prettier --write"]
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Validation**
|
|
83
|
+
|
|
84
|
+
- Commands to run:
|
|
85
|
+
- `npm ls husky lint-staged prettier` — all three listed
|
|
86
|
+
- `node -e "const p=require('./package.json'); console.log(p.scripts.prepare, p['lint-staged'])"` — outputs expected values
|
|
87
|
+
|
|
88
|
+
**Acceptance Criteria**
|
|
89
|
+
|
|
90
|
+
- husky, lint-staged, prettier are in devDependencies
|
|
91
|
+
- `prepare` script is `"husky"`
|
|
92
|
+
- lint-staged config matches the design spec
|
|
93
|
+
|
|
94
|
+
**Task Summary**
|
|
95
|
+
|
|
96
|
+
- Completed: yes
|
|
97
|
+
- What was done: Installed husky, lint-staged, and prettier as devDependencies. Added prepare script and lint-staged config to package.json.
|
|
98
|
+
- Files changed: package.json, package-lock.json
|
|
99
|
+
- Issues encountered: None
|
|
100
|
+
- Follow-ups: None
|
|
101
|
+
**Execution Plan**
|
|
102
|
+
|
|
103
|
+
1. Run npx husky init\n2. Replace .husky/pre-commit contents with npx lint-staged\n3. Validate
|
|
104
|
+
|
|
105
|
+
### 2.2 Task: Initialize husky and create pre-commit hook
|
|
106
|
+
|
|
107
|
+
- [ ] **Status**
|
|
108
|
+
- **Task ID:** `T2`
|
|
109
|
+
- **Owner Type:** `agent`
|
|
110
|
+
- **Priority:** `P0`
|
|
111
|
+
- **Depends On:** `T1`
|
|
112
|
+
|
|
113
|
+
**Goal**
|
|
114
|
+
Initialize husky and create the `.husky/pre-commit` hook that runs lint-staged.
|
|
115
|
+
|
|
116
|
+
**Context**
|
|
117
|
+
Husky v9 uses `npx husky init` which creates `.husky/pre-commit` with a default command. We need to replace it with `npx lint-staged`.
|
|
118
|
+
|
|
119
|
+
**Scope**
|
|
120
|
+
|
|
121
|
+
- In scope:
|
|
122
|
+
- Run `npx husky init`
|
|
123
|
+
- Set `.husky/pre-commit` contents to `npx lint-staged`
|
|
124
|
+
- Out of scope:
|
|
125
|
+
- Other hook types (pre-push, commit-msg)
|
|
126
|
+
|
|
127
|
+
**Implementation Targets**
|
|
128
|
+
|
|
129
|
+
- Files to create/update:
|
|
130
|
+
- `.husky/pre-commit`
|
|
131
|
+
|
|
132
|
+
**Execution Steps**
|
|
133
|
+
|
|
134
|
+
1. Run `npx husky init`
|
|
135
|
+
2. Replace `.husky/pre-commit` contents with `npx lint-staged`
|
|
136
|
+
|
|
137
|
+
**Validation**
|
|
138
|
+
|
|
139
|
+
- Commands to run:
|
|
140
|
+
- `cat .husky/pre-commit` — should contain `npx lint-staged`
|
|
141
|
+
- `ls -la .husky/` — pre-commit file exists
|
|
142
|
+
|
|
143
|
+
**Acceptance Criteria**
|
|
144
|
+
|
|
145
|
+
- `.husky/pre-commit` exists and contains `npx lint-staged`
|
|
146
|
+
- Hook is executable
|
|
147
|
+
|
|
148
|
+
**Task Summary**
|
|
149
|
+
|
|
150
|
+
- Completed: yes
|
|
151
|
+
- What was done: Initialized husky and set .husky/pre-commit to run npx lint-staged.
|
|
152
|
+
- Files changed: .husky/pre-commit
|
|
153
|
+
- Issues encountered: None
|
|
154
|
+
- Follow-ups: None
|
|
155
|
+
**Execution Plan**
|
|
156
|
+
|
|
157
|
+
1. Create .prettierrc\n2. Create .prettierignore\n3. Validate with npx prettier --check src/
|
|
158
|
+
|
|
159
|
+
### 2.3 Task: Add Prettier configuration files
|
|
160
|
+
|
|
161
|
+
- [ ] **Status**
|
|
162
|
+
- **Task ID:** `T3`
|
|
163
|
+
- **Owner Type:** `agent`
|
|
164
|
+
- **Priority:** `P0`
|
|
165
|
+
- **Depends On:** `none`
|
|
166
|
+
|
|
167
|
+
**Goal**
|
|
168
|
+
Create `.prettierrc` and `.prettierignore` with project defaults.
|
|
169
|
+
|
|
170
|
+
**Context**
|
|
171
|
+
No Prettier config exists yet. The design specifies: single quotes, trailing commas, 2-space indent, 100 char print width, semicolons enabled.
|
|
172
|
+
|
|
173
|
+
**Scope**
|
|
174
|
+
|
|
175
|
+
- In scope:
|
|
176
|
+
- Create `.prettierrc`
|
|
177
|
+
- Create `.prettierignore`
|
|
178
|
+
- Out of scope:
|
|
179
|
+
- Running Prettier on the codebase (T4)
|
|
180
|
+
|
|
181
|
+
**Implementation Targets**
|
|
182
|
+
|
|
183
|
+
- Files to create/update:
|
|
184
|
+
- `.prettierrc`
|
|
185
|
+
- `.prettierignore`
|
|
186
|
+
|
|
187
|
+
**Execution Steps**
|
|
188
|
+
|
|
189
|
+
1. Create `.prettierrc`:
|
|
190
|
+
```json
|
|
191
|
+
{
|
|
192
|
+
"semi": true,
|
|
193
|
+
"singleQuote": true,
|
|
194
|
+
"trailingComma": "all",
|
|
195
|
+
"tabWidth": 2,
|
|
196
|
+
"printWidth": 100
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
2. Create `.prettierignore`:
|
|
200
|
+
```
|
|
201
|
+
node_modules
|
|
202
|
+
.next
|
|
203
|
+
dist
|
|
204
|
+
drizzle
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**Validation**
|
|
208
|
+
|
|
209
|
+
- Commands to run:
|
|
210
|
+
- `npx prettier --check src/` — runs without config errors (files may not pass yet)
|
|
211
|
+
|
|
212
|
+
**Acceptance Criteria**
|
|
213
|
+
|
|
214
|
+
- `.prettierrc` exists with the specified settings
|
|
215
|
+
- `.prettierignore` excludes node_modules, .next, dist, drizzle
|
|
216
|
+
|
|
217
|
+
**Task Summary**
|
|
218
|
+
|
|
219
|
+
- Completed: yes
|
|
220
|
+
- What was done: Created .prettierrc with project defaults and .prettierignore excluding node_modules, .next, dist, drizzle.
|
|
221
|
+
- Files changed: .prettierrc, .prettierignore
|
|
222
|
+
- Issues encountered: None
|
|
223
|
+
- Follow-ups: None
|
|
224
|
+
|
|
225
|
+
**Execution Plan**
|
|
226
|
+
|
|
227
|
+
1. Run npx prettier --write .\n2. Verify with npx prettier --check .\n3. Report results — user will commit when ready
|
|
228
|
+
|
|
229
|
+
### 2.4 Task: Run baseline formatting on the full codebase
|
|
230
|
+
- [ ] **Status**
|
|
231
|
+
- **Task ID:** `T4`
|
|
232
|
+
- **Owner Type:** `agent`
|
|
233
|
+
- **Priority:** `P1`
|
|
234
|
+
- **Depends On:** `T1, T3`
|
|
235
|
+
|
|
236
|
+
**Goal**
|
|
237
|
+
Run Prettier across the entire codebase and commit all formatting changes in a single commit, so subsequent commits aren't polluted with formatting noise.
|
|
238
|
+
|
|
239
|
+
**Context**
|
|
240
|
+
The existing code was not written with Prettier. Running it for the first time will touch many files. This must be a standalone commit before the hook is active for the team.
|
|
241
|
+
|
|
242
|
+
**Scope**
|
|
243
|
+
- In scope:
|
|
244
|
+
- Run `npx prettier --write .`
|
|
245
|
+
- Commit all changes as "chore: format codebase with prettier"
|
|
246
|
+
- Out of scope:
|
|
247
|
+
- Fixing any ESLint errors surfaced by formatting
|
|
248
|
+
|
|
249
|
+
**Implementation Targets**
|
|
250
|
+
- Files to create/update:
|
|
251
|
+
- All `.ts`, `.tsx`, `.js`, `.json`, `.css`, `.md` files in the project
|
|
252
|
+
|
|
253
|
+
**Execution Steps**
|
|
254
|
+
1. Run `npx prettier --write .`
|
|
255
|
+
2. Review the diff to ensure no unexpected file changes
|
|
256
|
+
3. Stage and commit: `git add -A && git commit -m "chore: format codebase with prettier"`
|
|
257
|
+
|
|
258
|
+
**Validation**
|
|
259
|
+
- Commands to run:
|
|
260
|
+
- `npx prettier --check .` — should pass with no errors after formatting
|
|
261
|
+
|
|
262
|
+
**Acceptance Criteria**
|
|
263
|
+
- `npx prettier --check .` exits 0
|
|
264
|
+
- All formatting changes are in a single commit
|
|
265
|
+
|
|
266
|
+
**Task Summary**
|
|
267
|
+
- Completed: yes
|
|
268
|
+
- What was done: Ran npx prettier --write . across the full codebase. All files now pass npx prettier --check.
|
|
269
|
+
- Files changed: 52+ files across src/, scripts/, devflow/, docs/, config files
|
|
270
|
+
- Issues encountered: CONTRIBUTING.md needed a second pass
|
|
271
|
+
- Follow-ups: User should commit all changes and verify npm run lint still passes
|
|
272
|
+
|
|
273
|
+
## 3. Cross-Task Verification
|
|
274
|
+
- [ ] `git commit` on a file with formatting issues auto-fixes and commits successfully
|
|
275
|
+
- [ ] `git commit` on a file with a non-fixable ESLint error blocks the commit
|
|
276
|
+
- [ ] `npm install` in a fresh clone installs husky hooks automatically
|
|
277
|
+
- [ ] All scenarios from specs.md are satisfied
|
|
278
|
+
|
|
279
|
+
## 4. Completion Gate
|
|
280
|
+
- [ ] All task cards are checked complete
|
|
281
|
+
- [ ] `npx prettier --check .` passes
|
|
282
|
+
- [ ] `npm run lint` passes
|
|
283
|
+
- [ ] Pre-commit hook is functional end-to-end
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Custom Schemas
|
|
2
|
+
|
|
3
|
+
Schemas define the artifact workflow for a spec — which documents are required,
|
|
4
|
+
their dependencies, and quality rules.
|
|
5
|
+
|
|
6
|
+
## Built-in Schemas
|
|
7
|
+
|
|
8
|
+
DevFlow ships with several schemas: `spec-driven`, `backend-api`,
|
|
9
|
+
`frontend-product`, `data-engineering`, and `devops-platform`. List them with
|
|
10
|
+
the `list_schemas` MCP tool.
|
|
11
|
+
|
|
12
|
+
## Creating a Custom Schema
|
|
13
|
+
|
|
14
|
+
### Using `/df:schema` (recommended)
|
|
15
|
+
|
|
16
|
+
Run the `/df:df-schema` skill in Claude Code. It will interactively ask about
|
|
17
|
+
your project type, workflow stages, and quality preferences, then create the
|
|
18
|
+
schema files for you.
|
|
19
|
+
|
|
20
|
+
### Manual Creation
|
|
21
|
+
|
|
22
|
+
Create a directory under `devflow/schemas/<name>/` with:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
devflow/schemas/my-schema/
|
|
26
|
+
├── schema.yaml
|
|
27
|
+
└── templates/
|
|
28
|
+
├── proposal.md
|
|
29
|
+
├── design.md
|
|
30
|
+
└── tasks.md
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### schema.yaml Structure
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
name: my-schema # Must match directory name
|
|
37
|
+
version: 1
|
|
38
|
+
artifacts:
|
|
39
|
+
- id: proposal # Unique identifier
|
|
40
|
+
generates: proposal.md
|
|
41
|
+
description: Change intent and scope
|
|
42
|
+
template: proposal.md # File in templates/ dir
|
|
43
|
+
requires: [] # No dependencies — this is a root artifact
|
|
44
|
+
- id: design
|
|
45
|
+
generates: design.md
|
|
46
|
+
description: Technical approach
|
|
47
|
+
template: design.md
|
|
48
|
+
requires: [proposal] # Blocked until proposal is approved
|
|
49
|
+
- id: tasks
|
|
50
|
+
generates: tasks.md
|
|
51
|
+
description: Implementation tasks
|
|
52
|
+
template: tasks.md
|
|
53
|
+
requires: [design]
|
|
54
|
+
qualityRules:
|
|
55
|
+
requireRfc2119: true # Enforce MUST/SHOULD/MAY keywords
|
|
56
|
+
minScenariosPerRequirement: 1 # Min test scenarios per requirement
|
|
57
|
+
apply:
|
|
58
|
+
requires: [tasks] # Which artifacts gate promotion to Kanban tasks
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Key Concepts
|
|
62
|
+
|
|
63
|
+
- **Artifact DAG**: Artifacts form a directed acyclic graph via `requires`.
|
|
64
|
+
An artifact is "blocked" until all its dependencies are approved.
|
|
65
|
+
- **Quality rules**: Optional enforcement of RFC 2119 language and scenario
|
|
66
|
+
coverage in specs.
|
|
67
|
+
- **Apply gate**: The `apply.requires` field controls which artifacts must be
|
|
68
|
+
approved before a spec can be promoted to Kanban tasks via `promote_spec`.
|
|
69
|
+
|
|
70
|
+
### Using the `create_schema` MCP Tool
|
|
71
|
+
|
|
72
|
+
You can also create schemas programmatically:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
create_schema({
|
|
76
|
+
name: "ml-pipeline",
|
|
77
|
+
artifacts: [
|
|
78
|
+
{ id: "proposal", generates: "proposal.md", description: "Problem statement", template: "proposal.md", requires: [] },
|
|
79
|
+
{ id: "data-spec", generates: "data-spec.md", description: "Data requirements", template: "data-spec.md", requires: ["proposal"] },
|
|
80
|
+
{ id: "model-design", generates: "model-design.md", description: "Model architecture", template: "model-design.md", requires: ["data-spec"] },
|
|
81
|
+
{ id: "tasks", generates: "tasks.md", description: "Implementation tasks", template: "tasks.md", requires: ["model-design"] }
|
|
82
|
+
],
|
|
83
|
+
qualityRules: { requireRfc2119: true },
|
|
84
|
+
apply: { requires: ["tasks"] },
|
|
85
|
+
templates: {
|
|
86
|
+
"proposal": "# Proposal\n\n## Problem Statement\n...",
|
|
87
|
+
"data-spec": "# Data Specification\n\n## Sources\n...",
|
|
88
|
+
"model-design": "# Model Design\n\n## Architecture\n...",
|
|
89
|
+
"tasks": "# Tasks\n\n- [ ] Task 1\n..."
|
|
90
|
+
}
|
|
91
|
+
})
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Project-local vs Bundled Schemas
|
|
95
|
+
|
|
96
|
+
- **Bundled**: Ship with DevFlow in `src/schemas/`. Cannot be modified by users.
|
|
97
|
+
- **Project-local**: Live in `devflow/schemas/`. Override bundled schemas if
|
|
98
|
+
names conflict. Created by `create_schema` or `/df:df-schema`.
|
|
99
|
+
|
|
100
|
+
## Template Authoring Tips
|
|
101
|
+
|
|
102
|
+
- Use clear section headers that guide the author
|
|
103
|
+
- Include HTML comments (`<!-- ... -->`) with instructions
|
|
104
|
+
- Reference the artifact's purpose from `schema.yaml` description
|
|
105
|
+
- Keep templates focused — each artifact should have a single responsibility
|
|
106
|
+
|
|
107
|
+
## Setting a Default Schema
|
|
108
|
+
|
|
109
|
+
Create or edit `devflow/project-config.json`:
|
|
110
|
+
|
|
111
|
+
```json
|
|
112
|
+
{
|
|
113
|
+
"defaultSchema": "my-schema"
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
New specs created without an explicit `schema` parameter will use this schema.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Local Development Guide
|
|
2
|
+
|
|
3
|
+
## Prerequisites
|
|
4
|
+
|
|
5
|
+
- Node.js 20+
|
|
6
|
+
- Bun 1.0+ (required for the MCP server)
|
|
7
|
+
|
|
8
|
+
## Build & Install Locally
|
|
9
|
+
|
|
10
|
+
### 1. Clone & install dependencies
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
git clone https://github.com/sureshdsk/devflow-mcp.git
|
|
14
|
+
cd devflow-mcp
|
|
15
|
+
npm install
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### 2. Build
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm run build
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
This runs `next build` and produces the `.next/standalone` output.
|
|
25
|
+
|
|
26
|
+
### 3. Install globally (link)
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm link
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
This symlinks the package globally, making `devflow` and `devflow-mcp` commands available in your terminal.
|
|
33
|
+
|
|
34
|
+
### 4. Use it
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
devflow init # Initialize the database
|
|
38
|
+
devflow dev # Start the web UI (default port 3000)
|
|
39
|
+
devflow mcp # Start the MCP server
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Development mode (hot reload)
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm run dev
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Starts Next.js dev server with hot reload on port 3000.
|
|
49
|
+
|
|
50
|
+
### Custom ports
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
DEVFLOW_PORT=4000 DEVFLOW_WS_PORT=4001 devflow dev
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Uninstall
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# From the project directory
|
|
60
|
+
npm unlink
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Or if that doesn't work:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npm unlink -g @sureshdsk/devflow-mcp
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
To verify it's removed:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
which devflow # should return nothing
|
|
73
|
+
```
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { Config } from
|
|
2
|
-
import { join } from
|
|
3
|
-
import { homedir } from
|
|
1
|
+
import type { Config } from 'drizzle-kit';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { homedir } from 'os';
|
|
4
4
|
|
|
5
5
|
export default {
|
|
6
|
-
schema:
|
|
7
|
-
out:
|
|
8
|
-
dialect:
|
|
6
|
+
schema: './src/db/schema.ts',
|
|
7
|
+
out: './drizzle',
|
|
8
|
+
dialect: 'turso',
|
|
9
9
|
dbCredentials: {
|
|
10
|
-
url: `file:${join(homedir(),
|
|
10
|
+
url: `file:${join(homedir(), '.devflow', 'devflow.db')}`,
|
|
11
11
|
},
|
|
12
12
|
} satisfies Config;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
export async function register() {
|
|
2
2
|
// Only run on Node.js server, not during build or on edge runtime
|
|
3
|
-
if (process.env.NEXT_RUNTIME ===
|
|
4
|
-
const { startWebSocketServer } = await import(
|
|
5
|
-
const port = process.env.DEVFLOW_WS_PORT
|
|
6
|
-
? parseInt(process.env.DEVFLOW_WS_PORT, 10)
|
|
7
|
-
: 3001;
|
|
3
|
+
if (process.env.NEXT_RUNTIME === 'nodejs') {
|
|
4
|
+
const { startWebSocketServer } = await import('./src/websocket/server');
|
|
5
|
+
const port = process.env.DEVFLOW_WS_PORT ? parseInt(process.env.DEVFLOW_WS_PORT, 10) : 3001;
|
|
8
6
|
await startWebSocketServer(port);
|
|
9
7
|
}
|
|
10
8
|
}
|
|
@@ -1,7 +1,16 @@
|
|
|
1
|
-
import type { NextConfig } from
|
|
1
|
+
import type { NextConfig } from 'next';
|
|
2
2
|
|
|
3
3
|
const nextConfig: NextConfig = {
|
|
4
|
-
output:
|
|
4
|
+
output: 'standalone',
|
|
5
|
+
images: {
|
|
6
|
+
unoptimized: true,
|
|
7
|
+
},
|
|
8
|
+
env: {
|
|
9
|
+
NEXT_PUBLIC_DEVFLOW_WS_PORT: process.env.DEVFLOW_WS_PORT || '3001',
|
|
10
|
+
},
|
|
11
|
+
outputFileTracingExcludes: {
|
|
12
|
+
'*': ['./node_modules/typescript/**', './node_modules/sharp/**', './node_modules/@img/**'],
|
|
13
|
+
},
|
|
5
14
|
};
|
|
6
15
|
|
|
7
16
|
export default nextConfig;
|
package/.next/standalone/node_modules/{sharp → libsql}/node_modules/detect-libc/package.json
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "detect-libc",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "Node.js module to detect the C standard library (libc) implementation family and version",
|
|
5
5
|
"main": "lib/detect-libc.js",
|
|
6
6
|
"files": [
|
|
@@ -8,14 +8,13 @@
|
|
|
8
8
|
"index.d.ts"
|
|
9
9
|
],
|
|
10
10
|
"scripts": {
|
|
11
|
-
"test": "semistandard && nyc --reporter=
|
|
12
|
-
"changelog": "conventional-changelog -i CHANGELOG.md -s",
|
|
11
|
+
"test": "semistandard && nyc --reporter=lcov --check-coverage --branches=100 ava test/unit.js",
|
|
13
12
|
"bench": "node benchmark/detect-libc",
|
|
14
13
|
"bench:calls": "node benchmark/call-familySync.js && sleep 1 && node benchmark/call-isNonGlibcLinuxSync.js && sleep 1 && node benchmark/call-versionSync.js"
|
|
15
14
|
},
|
|
16
15
|
"repository": {
|
|
17
16
|
"type": "git",
|
|
18
|
-
"url": "git://github.com/lovell/detect-libc
|
|
17
|
+
"url": "git://github.com/lovell/detect-libc"
|
|
19
18
|
},
|
|
20
19
|
"keywords": [
|
|
21
20
|
"libc",
|
|
@@ -31,14 +30,11 @@
|
|
|
31
30
|
"devDependencies": {
|
|
32
31
|
"ava": "^2.4.0",
|
|
33
32
|
"benchmark": "^2.1.4",
|
|
34
|
-
"conventional-changelog-cli": "^5.0.0",
|
|
35
|
-
"eslint-config-standard": "^13.0.1",
|
|
36
33
|
"nyc": "^15.1.0",
|
|
37
34
|
"proxyquire": "^2.1.3",
|
|
38
35
|
"semistandard": "^14.2.3"
|
|
39
36
|
},
|
|
40
37
|
"engines": {
|
|
41
38
|
"node": ">=8"
|
|
42
|
-
}
|
|
43
|
-
"types": "index.d.ts"
|
|
39
|
+
}
|
|
44
40
|
}
|